Class: Amrita2::Core::SpecOptionMeta
Overview
Defined Under Namespace
Modules: CompilerOption, ElementExt, InheritableOption, MetaData, SymbolOption
Constant Summary
collapse
- @@options =
{}
Class Method Summary
collapse
Class Method Details
.check_options(spec) ⇒ Object
745
746
747
748
749
750
751
752
753
754
755
|
# File 'lib/amrita2/core.rb', line 745
def self.check_options(spec)
spec.option.each do |k, v|
meta = @@options[k]
case meta
when nil
raise NameError, "option #{k} was not defined"
else
meta.check_option(spec, k, v)
end
end
end
|
.define_element_ext(spec, name, sym, params, &block) ⇒ Object
778
779
780
781
782
783
|
# File 'lib/amrita2/core.rb', line 778
def self.define_element_ext(spec, name, sym, params, &block)
meta = @@options[name]
if meta
meta.define_element_ext(spec, name, sym, params || {}, &block)
end
end
|
.define_option(name, meta = nil, *args) ⇒ Object
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
|
# File 'lib/amrita2/core.rb', line 727
def self.define_option(name, meta=nil, *args)
case meta
when nil
meta = Object.new
meta.extend MetaData
when MetaData
when Module
m = Object.new
m.extend meta
meta = m
end
args.each do |mod|
meta.extend mod
end
@@options[name] = meta
end
|
723
724
725
|
# File 'lib/amrita2/core.rb', line 723
def self.get_option_meta(name)
@@options[name]
end
|
.inherit_option(spec, child_opt) ⇒ Object
768
769
770
771
772
773
774
775
776
|
# File 'lib/amrita2/core.rb', line 768
def self.inherit_option(spec, child_opt)
spec.option.each do |k, v|
meta = @@options[k]
case meta
when InheritableOption
meta.inherite_option(k, v, child_opt)
end
end
end
|
.setup_compiler(spec, compiler) ⇒ Object
757
758
759
760
761
762
763
764
765
766
|
# File 'lib/amrita2/core.rb', line 757
def self.setup_compiler(spec, compiler)
spec.option.each do |k, v|
next unless v
meta = @@options[k]
case meta
when CompilerOption
compiler.extend meta
end
end
end
|