class RakutenWebService::Travel::AreaClass::Base
Attributes
children[R]
parent[R]
Public Class Methods
[](area_code)
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 47 def [](area_code) AreaClass.search.first unless repository[area_level][area_code] repository[area_level][area_code] end
area_classes()
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 30 def area_classes @@area_classes ||= {} end
inherited(klass)
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 34 def inherited(klass) class_name = klass.to_s.split('::').last area_level = class_name.to_s[/\A(\w*)Class\Z/, 1].downcase class << klass attr_reader :area_level end klass.instance_variable_set(:@area_level, area_level) area_classes[klass.area_level] = klass klass.attribute :"#{area_level}ClassCode", :"#{area_level}ClassName" end
new(*args)
click to toggle source
Calls superclass method
RakutenWebService::Resource::new
# File lib/rakuten_web_service/travel/area_class.rb, line 52 def new(*args) obj = super repository[area_level][obj.class_code] = obj obj end
new(class_data, parent = nil)
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 65 def initialize(class_data, parent = nil) @parent = parent case class_data when Array @params = class_data.shift @children = class_data.shift when Hash @params = class_data @children = nil end parse_children_attributes end
repository()
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 58 def repository @@repository ||= Hash.new { |h, k| h[k] = {} } end
Public Instance Methods
area_level()
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 78 def area_level self.class.area_level end
class_code()
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 82 def class_code self["#{area_level}ClassCode"] end
class_name()
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 86 def class_name self["#{area_level}ClassName"] end
search(params = {})
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 96 def search(params = {}) params = to_query.merge(params) Hotel.search(params) end
to_query()
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 90 def to_query query = { "#{area_level}ClassCode" => class_code } query = query.merge(parent.to_query) unless parent.nil? query end
Private Instance Methods
parse_children_attributes()
click to toggle source
# File lib/rakuten_web_service/travel/area_class.rb, line 104 def parse_children_attributes return @children = [] if children.nil? || children.empty? children_class = children.keys.first[/\A(\w*)Classes\Z/, 1] class_name = "#{children_class}Classes" params[class_name] = children[class_name].map do |child_data| Base.area_classes[children_class].new(child_data["#{children_class}Class"], self) end @children = params[class_name] end