File: configuration.rb

package info (click to toggle)
ruby-coercible 1.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 704 kB
  • sloc: ruby: 1,734; makefile: 9
file content (33 lines) | stat: -rw-r--r-- 632 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module Coercible

  # Configuration object for global and per coercer type settings
  #
  class Configuration

    # Build a configuration instance
    #
    # @param [Array] list of accessor keys
    #
    # @return [Configuration]
    #
    # @api private
    def self.build(keys, &block)
      config = new
      keys.each do |key|
        config.instance_eval <<-RUBY
          def #{key}
            @#{key}
          end

          def #{key}=(value)
            @#{key} = value
          end
        RUBY
      end
      yield(config) if block_given?
      config
    end

  end # class Configuration

end # module Coercible