Class: Frenetic::Connection
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Frenetic::Connection
- Defined in:
- lib/frenetic/connection.rb
Constant Summary collapse
- ConnectionConfigKeys =
[:url, :params, :headers, :request, :ssl, :proxy]
Instance Attribute Summary collapse
-
#builder_config ⇒ Object
readonly
Returns the value of attribute builder_config.
-
#connection_config ⇒ Object
readonly
Returns the value of attribute connection_config.
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
Instance Method Summary collapse
- #configure_adapter(builder) ⇒ Object
- #configure_authentication(builder) ⇒ Object
- #configure_cache(builder) ⇒ Object
- #configure_responder(builder) ⇒ Object
-
#initialize(config = {}) ⇒ Connection
constructor
A new instance of Connection.
- #process_config(raw_cfg) ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(config = {}) ⇒ Connection
Returns a new instance of Connection.
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/frenetic/connection.rb', line 9 def initialize(config = {}) @errors = {} process_config(config) validate_configuration! connection = Faraday.new(connection_config) do |builder| configure_authentication(builder) configure_responder(builder) configure_cache(builder) configure_adapter(builder) end super(connection) end |
Instance Attribute Details
#builder_config ⇒ Object (readonly)
Returns the value of attribute builder_config.
5 6 7 |
# File 'lib/frenetic/connection.rb', line 5 def builder_config @builder_config end |
#connection_config ⇒ Object (readonly)
Returns the value of attribute connection_config.
5 6 7 |
# File 'lib/frenetic/connection.rb', line 5 def connection_config @connection_config end |
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
5 6 7 |
# File 'lib/frenetic/connection.rb', line 5 def errors @errors end |
Instance Method Details
#configure_adapter(builder) ⇒ Object
56 57 58 |
# File 'lib/frenetic/connection.rb', line 56 def configure_adapter(builder) builder.adapter(builder_config[:adapter]) end |
#configure_authentication(builder) ⇒ Object
40 41 42 43 |
# File 'lib/frenetic/connection.rb', line 40 def configure_authentication(builder) use_basic_auth(builder) if builder_config[:username] use_token_auth(builder) if builder_config[:api_token] end |
#configure_cache(builder) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/frenetic/connection.rb', line 49 def configure_cache(builder) case builder_config[:cache] when :rack then use_rack_cache(builder) when :rails then use_rails_cache(builder) end end |
#configure_responder(builder) ⇒ Object
45 46 47 |
# File 'lib/frenetic/connection.rb', line 45 def configure_responder(builder) builder.response(:hal_json) end |
#process_config(raw_cfg) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/frenetic/connection.rb', line 30 def process_config(raw_cfg) @config = {}.merge(raw_cfg.to_hash) @config[:url] = process_url_config(raw_cfg) cfgs = (@config) [ @builder_config = cfgs[:builder], @connection_config = cfgs[:conn] ] end |
#valid? ⇒ Boolean
23 24 25 26 27 28 |
# File 'lib/frenetic/connection.rb', line 23 def valid? @errors = {} @errors[:adapter] = 'must be present' if !@config[:adapter] @errors[:url] = 'must be present' if !@config[:url] @errors.empty? end |