Class: RUIC
- Inherits:
-
Object
show all
- Defined in:
- lib/ruic.rb,
lib/ruic.rb,
lib/ruic/version.rb
Defined Under Namespace
Modules: SelfInspecting
Constant Summary
collapse
- DEFAULTMETADATA =
'C:/Program Files (x86)/NVIDIA Corporation/UI Composer 8.0/res/DataModelMetadata/en-us/MetaData.xml'
- VERSION =
'0.2.5'
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(metadata = DEFAULTMETADATA) ⇒ RUIC
Returns a new instance of RUIC.
49
50
51
52
|
# File 'lib/ruic.rb', line 49
def initialize( metadata=DEFAULTMETADATA )
@metadata = metadata
@apps = {}
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *a) ⇒ Object
74
75
76
|
# File 'lib/ruic.rb', line 74
def method_missing(name,*a)
@apps[name] || (name=~/^app\d*/ ? "(no #{name} loaded)".extend(SelfInspecting) : super)
end
|
Class Method Details
.run(opts = {}) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/ruic.rb', line 18
def self.run(opts={})
opts = opts
ruic = nil
if opts[:script]
script = File.read(opts[:script],encoding:'utf-8')
Dir.chdir(File.dirname(opts[:script])) do
ruic = self.new
ruic.uia(opts[:uia]) if opts[:uia]
ruic.env.eval(script,opts[:script])
end
end
if opts[:repl]
location = (ruic && ruic.app && ruic.app.respond_to?(:file) && ruic.app.file) || opts[:uia] || opts[:script] || '.'
Dir.chdir( File.dirname(location) ) do
ruic ||= self.new.tap{ |r| r.uia(opts[:uia]) if opts[:uia] }
require 'ripl/irb'
require 'ripl/multi_line'
require 'ripl/multi_line/live_error.rb'
require_relative 'ruic/ripl-after-result'
Ripl::MultiLine.engine = Ripl::MultiLine::LiveError
Ripl::Shell.include Ripl::MultiLine.engine
Ripl::Shell.include Ripl::AfterResult
Ripl.config.merge! prompt:"", result_prompt:'#=> ', multi_line_prompt:' ', irb_verbose:false, after_result:"\n"
ARGV.clear puts "(RUIC v#{RUIC::VERSION} interactive session; 'quit' or ctrl-d to end)"
Ripl.start binding:ruic.env
end
end
end
|
Instance Method Details
#assert(condition = :CONDITIONNOTSUPPLIED, msg = nil, &block) ⇒ Object
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/ruic.rb', line 78
def assert(condition=:CONDITIONNOTSUPPLIED,msg=nil,&block)
if block && condition==:CONDITIONNOTSUPPLIED || condition.is_a?(String)
msg = condition.is_a?(String) ? condition : yield
condition = msg.is_a?(String) ? eval(msg,block.binding) : msg
end
unless condition
file, line, _ = caller.first.split(':')
puts "#{msg && "#{msg} : "}assertion failed (#{file} line #{line})"
exit 1
end
end
|
#env ⇒ Object
64
65
66
|
# File 'lib/ruic.rb', line 64
def env
@env ||= binding
end
|
#inspect ⇒ Object
92
93
94
|
# File 'lib/ruic.rb', line 92
def inspect
"<RUIC #{@apps.empty? ? "(no app loaded)" : Hash[ @apps.map{ |id,app| [id,File.basename(app.file)] } ]}>"
end
|
54
55
56
|
# File 'lib/ruic.rb', line 54
def metadata(path)
@metadata = path
end
|
#show(*a) ⇒ Object
90
|
# File 'lib/ruic.rb', line 90
def show(*a); puts *a.map(&:to_s); end
|
#uia(path) ⇒ Object
58
59
60
61
62
|
# File 'lib/ruic.rb', line 58
def uia(path)
meta = UIC.Meta @metadata
name = @apps.empty? ? :app : :"app#{@apps.length+1}"
@apps[name] = UIC.App(meta,path)
end
|