Class: Purple::Script
- Inherits:
-
Object
- Object
- Purple::Script
- Defined in:
- lib/purple/script.rb
Defined Under Namespace
Classes: PackageScript
Instance Attribute Summary collapse
-
#cabinet ⇒ Object
readonly
Returns the value of attribute cabinet.
Class Method Summary collapse
- .dump(cabinet) ⇒ Object
- .open(filename) ⇒ Object
- .parse(string) ⇒ Object
- .write(cabinet, filename) ⇒ Object
Instance Method Summary collapse
- #infer ⇒ Object
- #infer_all ⇒ Object
-
#initialize ⇒ Script
constructor
A new instance of Script.
- #long_name(name) ⇒ Object
- #name(name) ⇒ Object
- #package(name = nil) {|package| ... } ⇒ Object
- #url(url) ⇒ Object
Constructor Details
#initialize ⇒ Script
Returns a new instance of Script.
53 54 55 56 |
# File 'lib/purple/script.rb', line 53 def initialize @cabinet = PurpleCabinet.new @package_scripts = Array.new end |
Instance Attribute Details
#cabinet ⇒ Object (readonly)
Returns the value of attribute cabinet.
57 58 59 |
# File 'lib/purple/script.rb', line 57 def cabinet @cabinet end |
Class Method Details
.dump(cabinet) ⇒ Object
101 102 103 |
# File 'lib/purple/script.rb', line 101 def self.dump cabinet PURPLE_SCRIPT_TEMPLATE.call cabinet end |
.open(filename) ⇒ Object
41 42 43 |
# File 'lib/purple/script.rb', line 41 def self.open filename parse File.open(filename).read end |
.parse(string) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/purple/script.rb', line 45 def self.parse string script = self.new puts "DEBUG Purple::Script##parse: script_string=#{string}" if $DEBUG script.instance_eval string puts "DEBUG Purple::Script##parse: cabinet=#{script.cabinet}" if $DEBUG script.cabinet end |
.write(cabinet, filename) ⇒ Object
96 97 98 99 100 |
# File 'lib/purple/script.rb', line 96 def self.write cabinet, filename File.open filename, 'w' do |f| f.write dump(cabinet) end end |
Instance Method Details
#infer ⇒ Object
79 80 81 82 83 84 85 86 |
# File 'lib/purple/script.rb', line 79 def infer if not @cabinet.long_name @cabinet.long_name = @cabinet.packages[0].long_name end if not @cabinet.name @cabinet.name = @cabinet.packages[0].name end end |
#infer_all ⇒ Object
88 89 90 91 92 93 94 |
# File 'lib/purple/script.rb', line 88 def infer_all @package_scripts.each { |pkg| puts "DEBUG PurpleScript#infer_all" if $DEBUG pkg.infer } infer end |
#long_name(name) ⇒ Object
63 64 65 |
# File 'lib/purple/script.rb', line 63 def long_name name @cabinet.long_name = name end |
#name(name) ⇒ Object
59 60 61 |
# File 'lib/purple/script.rb', line 59 def name name @cabinet.name = name end |
#package(name = nil) {|package| ... } ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/purple/script.rb', line 71 def package name=nil puts "> #package(#{name.inspect})" if $DEBUG package = PackageScript.new @cabinet @package_scripts << package package.name name yield package if block_given? end |
#url(url) ⇒ Object
67 68 69 |
# File 'lib/purple/script.rb', line 67 def url url @cabinet.add_url url end |