class Userbin::Model
Public Class Methods
instance_custom(method, action)
click to toggle source
# File lib/userbin/models/model.rb, line 48 def self.instance_custom(method, action) # # Add method calls to association: user.challenges.verify(id, attributes) # AssociationProxy.class_eval <<-RUBY, __FILE__, __LINE__ + 1 install_proxy_methods :association, :#{action} RUBY HasManyAssociation.class_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{action}(id, attributes={}) @klass.build({:id => id, :"\#{@parent.singularized_resource_name}_id" => @parent.id}).#{action}(attributes) end RUBY # # Add method call to instance: user.enable_mfa # class_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{action}(params={}) self.class.#{method}("\#{request_path}/#{action.to_s.delete('!')}", params) end RUBY end
new(args = {})
click to toggle source
Calls superclass method
# File lib/userbin/models/model.rb, line 15 def initialize(args = {}) # allow initializing with id as a string args = { id: args } if args.is_a? String super(args) end
Public Instance Methods
attributes()
click to toggle source
Transform model.user.id to model.user_id to allow calls on nested models
Calls superclass method
# File lib/userbin/models/model.rb, line 22 def attributes attrs = super if attrs['user'] && attrs['user']['id'] attrs.merge!('user_id' => attrs['user']['id']) attrs.delete 'user' end attrs end
to_json()
click to toggle source
Remove the auto-generated embedded User
model to prevent recursion
# File lib/userbin/models/model.rb, line 32 def to_json attrs = attributes if attrs['user'] && attrs['user']['id'] == '$current' attrs.delete 'user' end attrs.to_json end