Module: VORuby::STC
- Defined in:
- lib/voruby/stc/loader.rb,
lib/voruby/stc/stc_v1_20.rb
Defined Under Namespace
Modules: V1_20
Class Method Summary collapse
- .dispatch_from_element_name(ns, override = nil) ⇒ Object
- .expand_group(sub_groups, group, expanded = []) ⇒ Object
- .group_member_names(group, sub_groups, nsprefix = nil) ⇒ Object
- .group_members(sub_groups, group) ⇒ Object
Class Method Details
.dispatch_from_element_name(ns, override = nil) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/voruby/stc/loader.rb', line 11 def self.dispatch_from_element_name(ns, override=nil) Proc.new{ |xml| name = (override)? override.call(xml.name): xml.name eval("#{ns}::#{name}.load_from_xml(xml)") } end |
.expand_group(sub_groups, group, expanded = []) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/voruby/stc/loader.rb', line 18 def self.(sub_groups, group, =[]) group_name = (group.is_a?(String))? group: group.to_s.split('::')[-1] return if !sub_groups.has_key?(group_name) sub_groups[group_name].each do |klass| .push(klass) klass_name = klass.name.split('::')[-1] if sub_groups.has_key?(klass_name) sub_groups[klass_name].each do |sub_klass| .push(sub_klass) sub_klass_name = sub_klass.name.split('::')[-1] (sub_groups, sub_klass, ) end end end return end |
.group_member_names(group, sub_groups, nsprefix = nil) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/voruby/stc/loader.rb', line 46 def self.group_member_names(group, sub_groups, nsprefix=nil) return STC::group_members(sub_groups, group).collect{ |klass| element_name = klass.name.split('::')[-1] element_name = "#{nsprefix}:#{element_name}" if nsprefix element_name } end |
.group_members(sub_groups, group) ⇒ Object
39 40 41 42 43 44 |
# File 'lib/voruby/stc/loader.rb', line 39 def self.group_members(sub_groups, group) group_name = (group.is_a?(String))? group: group.to_s.split('::')[-1] raise "Substition group #{group_name} does not exist" if !sub_groups.has_key?(group_name) return STC::(sub_groups, group) end |