Module: Usabl::Methodspace::ClassMethods
- Defined in:
- lib/usabl/methodspace.rb
Instance Attribute Summary collapse
-
#dir ⇒ Object
Returns the value of attribute dir.
Instance Method Summary collapse
- #[](name) ⇒ Object
- #class! ⇒ Object
- #class? ⇒ Boolean
- #define(target, name, options = {}, &block) ⇒ Object
- #extensions ⇒ Object
- #load(key) ⇒ Object
- #refinements ⇒ Object
Instance Attribute Details
#dir ⇒ Object
Returns the value of attribute dir.
12 13 14 |
# File 'lib/usabl/methodspace.rb', line 12 def dir @dir end |
Instance Method Details
#[](name) ⇒ Object
22 23 24 |
# File 'lib/usabl/methodspace.rb', line 22 def [](name) refinements[name] end |
#class! ⇒ Object
14 15 16 |
# File 'lib/usabl/methodspace.rb', line 14 def class! @class = true end |
#class? ⇒ Boolean
18 19 20 |
# File 'lib/usabl/methodspace.rb', line 18 def class? !!@class end |
#define(target, name, options = {}, &block) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/usabl/methodspace.rb', line 34 def define(target, name, = {}, &block) if [:class] return singleton_class.define(target.singleton_class, name, .merge(class: false), &block) end ext = extensions[name] = ::Module.new do define_method name, &block end refinements[name] = ::Module.new do refine target do include ext end end end |
#extensions ⇒ Object
30 31 32 |
# File 'lib/usabl/methodspace.rb', line 30 def extensions @extensions ||= Set.new(self) end |
#load(key) ⇒ Object
48 49 50 |
# File 'lib/usabl/methodspace.rb', line 48 def load(key) require "#{dir}/#{class? ? '.' : '#'}#{key}" end |