Sha256: 47f39bbae207355acad6c3e46afee1470ea67a05e8e64ca7371f2d156cd0f044
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
module ExtendWarranties class Client @namespaces = [] @connection = nil ## # Defines a method to access class instance. # def self.namespace(name) converted = name.to_s.split('_').map(&:capitalize).join klass = ExtendWarranties::Api.const_get(converted) @namespaces << klass end namespace :products namespace :plans namespace :contracts namespace :offers def initialize(args = {}) @configuration = ExtendWarranties::Configuration.new(args) @connection = Faraday.new(url: @configuration.base_url) do |conn| conn.request :json conn.headers = @configuration.headers conn.response :json conn.response :logger conn.adapter Faraday.default_adapter end create_instances end private def create_instances namespaces = self.class.instance_variable_get(:@namespaces) namespaces.each do |klass| reader = klass.to_s.split('::').last.underscore self.class.send(:define_method, reader.to_sym) { klass.new @connection } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
extend_warranties-0.1.0 | lib/extend_warranties/client.rb |