Module: BoolizeAttr::ClassMethods

Defined in:
lib/boolize_attr.rb

Instance Method Summary collapse

Instance Method Details

#boolize_attr_accessor(*args) ⇒ Object



26
27
28
29
# File 'lib/boolize_attr.rb', line 26

def boolize_attr_accessor(*args)
  attr_accessor(*args)
  boolize_attr_reader(*args)
end

#boolize_attr_reader(*args) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/boolize_attr.rb', line 9

def boolize_attr_reader(*args)
  args.each do |attr|
    remove_method attr if defined?(attr)

    define_method attr do
      value = if instance_variable_defined?(:"@#{attr}")
        instance_variable_get(:"@#{attr}")
      end

      return false if value.nil?
      return value if value.is_a?(TrueClass) || value.is_a?(FalseClass)

      value && value.is_a?(String) && value.to_i == 1
    end
  end
end

#boolize_attr_writer(*args) ⇒ Object



31
32
33
# File 'lib/boolize_attr.rb', line 31

def boolize_attr_writer(*args)
  attr_writer(*args)
end