Class: Music::Arrangement::ClassSpecifier
- Inherits:
-
Object
- Object
- Music::Arrangement::ClassSpecifier
- Includes:
- Hashmake::HashMakeable
- Defined in:
- lib/music-arrangement/class_specifier.rb
Constant Summary collapse
- ARG_SPECS =
hashed-arg specs (for hash-makeable idiom)
{ :requirements => arg_spec_array(:reqd => false, :type => [GemRequirement, FileRequirement]), :qualified_name => arg_spec(:reqd => true, :type => String), }
Instance Method Summary collapse
-
#initialize(args = {}) ⇒ ClassSpecifier
constructor
A new instance of ClassSpecifier.
- #load_requirements ⇒ Object
- #to_class ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ ClassSpecifier
Returns a new instance of ClassSpecifier.
13 14 15 |
# File 'lib/music-arrangement/class_specifier.rb', line 13 def initialize args={} hash_make args, ClassSpecifier::ARG_SPECS end |
Instance Method Details
#load_requirements ⇒ Object
17 18 19 20 21 |
# File 'lib/music-arrangement/class_specifier.rb', line 17 def load_requirements @requirements.each do |req| req.load end end |
#to_class ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/music-arrangement/class_specifier.rb', line 23 def to_class load_requirements tokens = @qualified_name.split(/::/) module_names = tokens[0...-1] class_name = tokens.last cur_module = Kernel module_names.each do |module_name| cur_module = cur_module.const_get(module_name) end return cur_module.const_get(class_name) end |