Class: ProxyPacRb::BasicConfiguration
- Inherits:
-
Object
- Object
- ProxyPacRb::BasicConfiguration
- Includes:
- Contracts
- Defined in:
- lib/proxy_pac_rb/basic_configuration.rb
Overview
Basic configuration for ProxyPacRb
Direct Known Subclasses
Defined Under Namespace
Classes: Option
Class Method Summary collapse
- .known_options ⇒ Object
- .option(name, contract:, default:) ⇒ Object
- .option_reader(name, value: nil) ⇒ Object
- .option_writer(name, contract:, default:) ⇒ Object
Instance Method Summary collapse
- #configure {|Configuration| ... } ⇒ Object
-
#initialize ⇒ BasicConfiguration
constructor
A new instance of BasicConfiguration.
- #option?(name) ⇒ Boolean
-
#set_if_option(name, *args) ⇒ Object
Set if name is option.
Constructor Details
#initialize ⇒ BasicConfiguration
Returns a new instance of BasicConfiguration.
58 59 60 |
# File 'lib/proxy_pac_rb/basic_configuration.rb', line 58 def initialize @local_options = self.class..deep_dup end |
Class Method Details
.known_options ⇒ Object
18 19 20 |
# File 'lib/proxy_pac_rb/basic_configuration.rb', line 18 def @known_options ||= {} end |
.option(name, contract:, default:) ⇒ Object
39 40 41 42 |
# File 'lib/proxy_pac_rb/basic_configuration.rb', line 39 def option(name, contract:, default:) option_writer name, contract: contract, default: default option_reader name end |
.option_reader(name, value: nil) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/proxy_pac_rb/basic_configuration.rb', line 31 def option_reader(name, value: nil) add_option(name, value) define_method(name) { find_option(name).value } self end |
.option_writer(name, contract:, default:) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/proxy_pac_rb/basic_configuration.rb', line 22 def option_writer(name, contract:, default:) add_option(name, default) Contract contract define_method("#{name}=") { |v| find_option(name).value = v } self end |
Instance Method Details
#configure {|Configuration| ... } ⇒ Object
65 66 67 |
# File 'lib/proxy_pac_rb/basic_configuration.rb', line 65 def configure yield self if block_given? end |
#option?(name) ⇒ Boolean
69 70 71 |
# File 'lib/proxy_pac_rb/basic_configuration.rb', line 69 def option?(name) .any? { |_, v| v.name == name } end |
#set_if_option(name, *args) ⇒ Object
Set if name is option
74 75 76 |
# File 'lib/proxy_pac_rb/basic_configuration.rb', line 74 def set_if_option(name, *args) public_send("#{name}=".to_sym, *args) if option? name end |