class Jason::ApiModel

Attributes

model[RW]
name[RW]

Public Class Methods

configure(models) click to toggle source
# File lib/jason/api_model.rb, line 5
def self.configure(models)
  @@models = models
end
new(name) click to toggle source
# File lib/jason/api_model.rb, line 9
def initialize(name)
  @name = name
  @model = OpenStruct.new(Jason.schema[name.to_sym])
end

Public Instance Methods

allowed_object_params() click to toggle source
# File lib/jason/api_model.rb, line 18
def allowed_object_params
  model.allowed_object_params || []
end
allowed_params() click to toggle source
# File lib/jason/api_model.rb, line 14
def allowed_params
  model.allowed_params || []
end
as_json_config() click to toggle source
# File lib/jason/api_model.rb, line 46
def as_json_config
  { only: subscribed_fields, methods: include_methods }
end
include_methods() click to toggle source
# File lib/jason/api_model.rb, line 22
def include_methods
  model.include_methods || []
end
permit(params) click to toggle source
# File lib/jason/api_model.rb, line 38
def permit(params)
  params = params.require(:payload).permit(allowed_params).tap do |allowed|
    allowed_object_params.each do |key|
      allowed[key] = params[:payload][key].to_unsafe_h if params[:payload][key]
    end
  end
end
priority_scope() click to toggle source
# File lib/jason/api_model.rb, line 26
def priority_scope
  model.priority_scope || []
end
scope() click to toggle source
# File lib/jason/api_model.rb, line 34
def scope
  model.scope
end
subscribed_fields() click to toggle source
# File lib/jason/api_model.rb, line 30
def subscribed_fields
  model.subscribed_fields || []
end