Module: Cb::Utils::FluidAttributes

Instance Method Summary collapse

Instance Method Details

#fluid_attr_accessor(*names) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/cb/utils/fluid_attributes.rb', line 14

def fluid_attr_accessor(*names)
  names.each do |name|
    define_method :"#{name}" do |*args|
      return instance_variable_get(:"@#{name}") if args.length == 0

      if args.length == 1
        instance_variable_set(:"@#{name}", args[0])
        return self
      end

      fail ArgumentError.new("Wrong number of arguments (#{args.length} for 1)")
    end

    define_method :"#{name}=" do |*args|
      instance_variable_set(:"@#{name}", args[0]) if args.length == 1
      return self
    end
  end
end