module RKit::Dsl::Base::Thrust
Protected Instance Methods
thrust_dsl!()
click to toggle source
# File lib/r_kit/dsl/base/thrust.rb, line 4 def thrust_dsl! readonly = self.readonly name = @name @domain.send :define_singleton_method, @name do (instance_variable_get(name.ivar) || instance_variable_set(name.ivar, readonly)) .tap{ |readonly| readonly.base = self } end end
thrust_dsl_callback!()
click to toggle source
# File lib/r_kit/dsl/base/thrust.rb, line 15 def thrust_dsl_callback! @domain.class_eval &readonly.methods[:before] end
thrust_dsl_extend!()
click to toggle source
# File lib/r_kit/dsl/base/thrust.rb, line 49 def thrust_dsl_extend! name = @name @domain.send :define_singleton_method, "try_to_#{ @method }" do |*args, &block| send "#{ name }_params=", *args, &block if send("can_#{ send(name).method }?") && !send("#{ send(name).method }?") send(name).dsls[name] << self instance_eval &send(name).methods[:class] class_eval &send(name).methods[:instance] if respond_to?(:acts_as_decorables?) decorator_class.class_eval &send(name).methods[:decorator] end true end end @domain.send :define_singleton_method, @method do |*args, &block| instance_eval &send(name).methods[:restriction] unless send "try_to_#{ send(name).method }", *args, &block end end
thrust_dsl_interface!()
click to toggle source
# File lib/r_kit/dsl/base/thrust.rb, line 19 def thrust_dsl_interface! name = @name @domain.send :define_singleton_method, "can_#{ @method }?" do instance_eval &send(name).methods[:allowance] end @domain.send :define_singleton_method, "#{ @method }?" do send(name).dsls[name].include? self end @base.send :define_singleton_method, @method do RKit::Dsl::Base.dsls[name] end end
thrust_dsl_options!()
click to toggle source
# File lib/r_kit/dsl/base/thrust.rb, line 35 def thrust_dsl_options! name = @name @domain.send :define_singleton_method, "#{ @name }_params=" do |*args, &block| send(name).try_parameters(*args, &block) send(name).extract_parameters self, *args, &block end @domain.send :define_singleton_method, "#{ @name }_params" do instance_variable_get("@#{ name }_params") || instance_variable_set("@#{ name }_params", send(name).params) end end