Module: HotelBeds::Parser::ClassMethods

Defined in:
lib/hotel_beds/parser.rb

Defined Under Namespace

Classes: Attribute

Instance Method Summary collapse

Instance Method Details

#attributesObject



48
49
50
51
52
53
54
55
56
57
# File 'lib/hotel_beds/parser.rb', line 48

def attributes
  @attributes ||= begin
    super_class = ancestors[1]
    if super_class.respond_to?(:attributes)
      super_class.attributes
    else
      Array.new
    end
  end
end

#default_model_class(klass = nil) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
# File 'lib/hotel_beds/parser.rb', line 63

def default_model_class(klass = nil)
  # set the class, if given
  @default_model_class = klass if klass
  # return the class, defaulting to HotelBeds::Model::ClassName
  @default_model_class ||= begin
    klass_name = name.gsub(/^.*\:\:(.*?)$/, '\1')
    file_name = klass_name.gsub(/(?<=.)([A-Z]+)/, '_\1').downcase
    require "hotel_beds/model/#{file_name}"
    ::HotelBeds.const_get("Model").const_get(klass_name)
  end
end