class Puree::Extractor::Resource
Resource
extractor.
Public Class Methods
new(config)
click to toggle source
(see Puree::REST::Base#initialize)
# File lib/puree/extractor/resource.rb, line 10 def initialize(config) @config = config end
Private Instance Methods
find(id:, api_resource_type:, xml_extractor_resource_type:)
click to toggle source
@param id [String] @param api_resource_type [Symbol] @param xml_extractor_resource_type [Symbol]
# File lib/puree/extractor/resource.rb, line 19 def find(id:, api_resource_type:, xml_extractor_resource_type:) api_resource = make_api_resource api_resource_type response = api_resource.find id: id return unless response.code === 200 xml_extractor = make_xml_extractor response.body, xml_extractor_resource_type xml_extractor.model end
make_api_resource(resource_type)
click to toggle source
# File lib/puree/extractor/resource.rb, line 27 def make_api_resource(resource_type) resource_class = "Puree::REST::#{Puree::Util::String.titleize(resource_type)}" Object.const_get(resource_class).new @config end
make_xml_extractor(xml, resource_type)
click to toggle source
# File lib/puree/extractor/resource.rb, line 32 def make_xml_extractor(xml, resource_type) resource_class = "Puree::XMLExtractor::#{Puree::Util::String.titleize(resource_type)}" Object.const_get(resource_class).new xml end
random(api_resource_type, params = {})
click to toggle source
# File lib/puree/extractor/resource.rb, line 45 def random(api_resource_type, params = {}) offset = rand(0..record_count(api_resource_type, params)-1) api_resource = make_api_resource api_resource_type params[:size] = 1 params[:offset] = offset response = api_resource.all_complex params: params models = Puree::XMLExtractor::Collection.send "#{api_resource_type}s", response.to_s return nil if models.empty? models[0] end
record_count(api_resource_type, params = {})
click to toggle source
# File lib/puree/extractor/resource.rb, line 37 def record_count(api_resource_type, params = {}) api_resource = make_api_resource api_resource_type params[:size] = 0 response = api_resource.all_complex params: params return unless response.code === 200 Puree::XMLExtractor::Collection.count response.to_s end