From a649c7f4cbc1b7267e89933a3ac0054183001b40 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Fri, 12 Oct 2018 17:18:04 -0400 Subject: [PATCH] add Script class --- lib/rscons.rb | 1 + lib/rscons/script.rb | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 lib/rscons/script.rb diff --git a/lib/rscons.rb b/lib/rscons.rb index 5691fc1..bfe4204 100644 --- a/lib/rscons.rb +++ b/lib/rscons.rb @@ -4,6 +4,7 @@ require_relative "rscons/builder" require_relative "rscons/cache" require_relative "rscons/environment" require_relative "rscons/job_set" +require_relative "rscons/script" require_relative "rscons/threaded_command" require_relative "rscons/varset" require_relative "rscons/version" diff --git a/lib/rscons/script.rb b/lib/rscons/script.rb new file mode 100644 index 0000000..16f905f --- /dev/null +++ b/lib/rscons/script.rb @@ -0,0 +1,27 @@ +module Rscons + + # The Script class encapsulates the state of a build script. It also provides + # the DSL for the build script to use. + class Script + + class << self + + # Load a script from the specified file. + # + # @param path [String] + # File name of the rscons script to load. + # + # @return [Script] + # The loaded script state. + def load(path) + script_contents = File.read(path, mode: "rb") + script = Script.new + script.instance_eval(script_contents, path, 1) + script + end + + end + + end + +end