Synopsys

Class-level configuration DSL

Installation

gem install config_accessor

Examples

require 'config_accessor'

class Remote
  configurable!

  config_accessor :host, :default => "localhost"
  config_accessor :port, :default => "80", :transform => :to_i
  config_accessor :proxy_host, :proxy_port
end

class Local < Remote
  config_accessor :l_port
end

Remote.host        # => "localhost"
Remote.port        # => 80
Remote.proxy_host  # => nil

r = Remote.new

r.port = "81"
r.port             # => 81
Remote.port        # => 80
Remote.port = 82

# next expressions are equivalent
r.port             # => 81
r.config[:port]    # => 81
r.config["port"]   # => 81
r.config.port      # => 81

# It supports inheritance, subclasses cannot change superclasses configurations
Local.port         # => 80

# You can do it with +configure+ method
Local.configure do
  port 81
end

# or
Local.configure do |config|
  config.port 81
end

Required Ruby Version

None

Authors

Alexei Mikhailov

Versions

  1. 0.0.3 December 10, 2011 (7.5 KB)
  2. 0.0.2 December 10, 2011 (7 KB)
Show all versions (3 total)

SHA 256 checksum