Module: Ohbjects

Defined in:
lib/ohbjects.rb,
lib/ohbjects/quote.rb,
lib/ohbjects/account.rb,
lib/ohbjects/options.rb

Overview

Adds an object representation to Oh responses:

require "ohbjects"
Ohbjects.activate

Then, any further calls to Oh methods that used to return an XML doc will now return objects such as Ohbjects::Call, Ohbjects::Put, etc.

Defined Under Namespace

Modules: Buildable Classes: Account, AccountBuilder, Call, Option, OptionBuilder, Put, Quote, QuoteBuilder

Constant Summary collapse

REGISTRY =
[]

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.activateObject



58
59
60
# File 'lib/ohbjects.rb', line 58

def activate
  Oh.send :include, self
end

Instance Method Details

#objectify(doc) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/ohbjects.rb', line 38

def objectify(doc)
  qualified_builders = 
    REGISTRY.select { |builder| builder.build?(doc) }

  objects = []

  qualified_builders.each do |builder|
    doc.search(builder.spec).each do |fragment|
      objects.push(*builder.build(fragment))
    end
  end

  objects
end

#post_process_request(result) ⇒ Object



53
54
55
# File 'lib/ohbjects.rb', line 53

def post_process_request(result)
  objectify(result)
end