Method: Object#dsl_method

Defined in:
lib/mongo_persist/util.rb

#dsl_method(name, &b) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/mongo_persist/util.rb', line 2

def dsl_method(name,&b)
  define_method(name) do |*args|
    if args.empty?
      res = instance_variable_get("@#{name}")
      if res.nil? && block_given?
        res = b.call
        instance_variable_set("@#{name}",res) 
      end
      res
    else
      instance_variable_set("@#{name}",args.first)
    end
  end
end