module Alki::Dsl::ClassHelpers
Public Instance Methods
add_accessor(name,type: :accessor,subclass: nil)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 64 def add_accessor(name,type: :accessor,subclass: nil) (class_builder(subclass)["attr_#{type}s".to_sym]||=[]) << name end
add_class_method(name,context: nil,private: false,subclass: nil,&blk)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 41 def add_class_method (name,context: nil,private: false,subclass: nil,&blk) class_builder(subclass)[:class_methods] ||= {} class_builder(subclass)[:class_methods][name.to_sym] = { body: blk, context: context, private: private } end
add_delegator(name,accessor,method=name,subclass: nil)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 68 def add_delegator(name,accessor,method=name,subclass: nil) (class_builder(subclass)[:delegators]||={})[name] = { accessor: accessor, method: method } end
add_initialize_param(name,opts={},&default)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 50 def add_initialize_param(name,opts={},&default) name = name.to_sym param = default ? [name,default] : name (class_builder(opts[:subclass])[:initialize_params]||=[]) << param end
add_instance_class_proxy(type, name,subclass: nil)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 56 def add_instance_class_proxy(type, name,subclass: nil) (class_builder(subclass)[:instance_class]||={})[name.to_sym] = {type: type} end
add_method(name,context:nil,private: false,subclass: nil, &blk)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 32 def add_method(name,context:nil,private: false,subclass: nil, &blk) class_builder(subclass)[:instance_methods] ||= {} class_builder(subclass)[:instance_methods][name.to_sym] = { body: blk, context: context, private: private } end
add_module(mod,subclass: nil)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 60 def add_module(mod,subclass: nil) (class_builder(subclass)[:modules]||=[]) << mod end
class_builder(subclass = nil)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 4 def class_builder(subclass = nil) unless @ctx[:class_builder] @ctx[:class_builder] = {} %i(module name prefix).each do |attr| @ctx[:class_builder][attr] = @ctx[attr] if @ctx[attr] end end if subclass scs = @ctx[:class_builder][:secondary_classes] ||= [] cb = scs.find { |sc| sc[:subclass] == subclass } unless cb cb = { subclass: subclass } scs << cb end cb else @ctx[:class_builder] end end
create_as_module(subclass: nil)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 24 def create_as_module(subclass: nil) class_builder(subclass)[:type] = :module end
set_super_class(klass,subclass: nil)
click to toggle source
# File lib/alki/dsl/class_helpers.rb, line 28 def set_super_class(klass,subclass: nil) class_builder(subclass)[:super_class] = klass end