Sha256: 5f5503e02781499ed9ccd9153cdd0c9d4bb5bc3c68c716e96be5dd5909fd605b

Contents?: true

Size: 517 Bytes

Versions: 5

Compression:

Stored size: 517 Bytes

Contents

# coding: utf-8

module Retter
  module Configurable
    def configurable(*names)
      names.each do |name|
        define_configurable_method name
        define_instance_shortcut_method name
      end
    end

    def define_configurable_method(name)
      instance_eval <<-EOM
        def #{name}(val = nil)
          val ? @#{name} = val : @#{name}
        end
      EOM
    end

    def define_instance_shortcut_method(name)
      define_method name do
        self.class.send(name)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
retter-0.2.5 lib/retter/configurable.rb
retter-0.2.4 lib/retter/configurable.rb
retter-0.2.3 lib/retter/configurable.rb
retter-0.2.2 lib/retter/configurable.rb
retter-0.2.1 lib/retter/configurable.rb