class FlightFacade::BaseHashieDashModel

Attributes

data[R]

Public Class Methods

_jsonapi_serializer_class_name() click to toggle source
# File lib/flight_facade/models.rb, line 47
def self._jsonapi_serializer_class_name
  @_jsonapi_serializer_class_name ||= name.split('::').last + 'Serializer'
end
_type() click to toggle source
# File lib/flight_facade/models.rb, line 51
def self._type
  @_type ||= name.split('::').last.demodulize.tableize.dasherize
end
inherited(klass) click to toggle source
# File lib/flight_facade/models.rb, line 33
def self.inherited(klass)
  data_class = Class.new(Hashie::Dash) do
    include Hashie::Extensions::IgnoreUndeclared
    include ActiveModel::Validations

    def self.method_added(m)
      parent.delegate(m, to: :data)
    end
  end

  klass.const_set('DataHash', data_class)
  klass.delegate(*(ActiveModel::Validations.instance_methods - Object.methods), to: :data)
end
method_added(m) click to toggle source
# File lib/flight_facade/models.rb, line 38
def self.method_added(m)
  parent.delegate(m, to: :data)
end
new(*a) click to toggle source
# File lib/flight_facade/models.rb, line 57
def initialize(*a)
  @data = self.class::DataHash.new(*a)
end

Public Instance Methods

jsonapi_serializer_class_name() click to toggle source
# File lib/flight_facade/models.rb, line 61
def jsonapi_serializer_class_name
  self.class._jsonapi_serializer_class_name
end
type() click to toggle source
# File lib/flight_facade/models.rb, line 65
def type
  self.class._type
end