module WrapIt::Switches
Adds switches functionality
@author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
Public Class Methods
included(base)
click to toggle source
# File lib/wrap_it/switches.rb, line 16 def self.included(base) base == Base || fail( TypeError, "#{self.class.name} can be included only into WrapIt::Base" ) base.extend ClassMethods base.before_initialize { @switches = {} } end
Private Class Methods
setter(name, &block)
click to toggle source
Makes switch setter block @param name [String] switch name
@return [Proc] switch setter block
# File lib/wrap_it/switches.rb, line 106 def self.setter(name, &block) proc do |value| opts = self.class.collect_derived(:@switches, {}, :merge)[name] cb_return = block.nil? || instance_exec(value == true, &block) unless cb_return == false @switches[name] = value == true if value == true opts.key?(:html_class) && html_class << opts[:html_class] else opts.key?(:html_class) && html_class.delete(*opts[:html_class]) end end end end