Class: Userbin::Model
- Inherits:
-
Object
- Object
- Userbin::Model
- Includes:
- Her::Model
- Defined in:
- lib/userbin/models/model.rb
Direct Known Subclasses
Account, BackupCodes, Challenge, Config, Context, Event, Location, Monitoring, Pairing, Session, TrustedDevice, User, UserAgent
Class Method Summary collapse
Instance Method Summary collapse
-
#attributes ⇒ Object
Transform model.user.id to model.user_id to allow calls on nested models.
-
#initialize(args = {}) ⇒ Model
constructor
A new instance of Model.
-
#to_json ⇒ Object
Remove the auto-generated embedded User model to prevent recursion.
Constructor Details
#initialize(args = {}) ⇒ Model
Returns a new instance of Model.
15 16 17 18 19 |
# 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 |
Class Method Details
.instance_custom(method, action) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# 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 " install_proxy_methods :association, :\#{action}\n RUBY\n HasManyAssociation.class_eval <<-RUBY, __FILE__, __LINE__ + 1\n def \#{action}(id, attributes={})\n @klass.build({:id => id, :\"\\\#{@parent.singularized_resource_name}_id\" => @parent.id}).\#{action}(attributes)\n end\n RUBY\n\n #\n # Add method call to instance: user.enable_mfa\n #\n class_eval <<-RUBY, __FILE__, __LINE__ + 1\n def \#{action}(params={})\n self.class.\#{method}(\"\\\#{request_path}/\#{action.to_s.delete('!')}\", params)\n end\n RUBY\nend\n", __FILE__, __LINE__ + 1 |
Instance Method Details
#attributes ⇒ Object
Transform model.user.id to model.user_id to allow calls on nested models
22 23 24 25 26 27 28 29 |
# 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 ⇒ Object
Remove the auto-generated embedded User model to prevent recursion
32 33 34 35 36 37 38 |
# 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 |