Class: StripeModelCallbacks::AttributesAssignerService
- Inherits:
-
ServicePattern::Service
- Object
- ServicePattern::Service
- StripeModelCallbacks::AttributesAssignerService
- Defined in:
- app/services/stripe_model_callbacks/attributes_assigner_service.rb
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
-
#model ⇒ Object
readonly
Returns the value of attribute model.
-
#stripe_model ⇒ Object
readonly
Returns the value of attribute stripe_model.
Instance Method Summary collapse
-
#initialize(attributes:, model:, stripe_model:) ⇒ AttributesAssignerService
constructor
A new instance of AttributesAssignerService.
- #perform ⇒ Object
- #setter_method(attribute) ⇒ Object
Constructor Details
#initialize(attributes:, model:, stripe_model:) ⇒ AttributesAssignerService
Returns a new instance of AttributesAssignerService.
4 5 6 7 8 |
# File 'app/services/stripe_model_callbacks/attributes_assigner_service.rb', line 4 def initialize(attributes:, model:, stripe_model:) @attributes = attributes @model = model @stripe_model = stripe_model end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
2 3 4 |
# File 'app/services/stripe_model_callbacks/attributes_assigner_service.rb', line 2 def attributes @attributes end |
#model ⇒ Object (readonly)
Returns the value of attribute model.
2 3 4 |
# File 'app/services/stripe_model_callbacks/attributes_assigner_service.rb', line 2 def model @model end |
#stripe_model ⇒ Object (readonly)
Returns the value of attribute stripe_model.
2 3 4 |
# File 'app/services/stripe_model_callbacks/attributes_assigner_service.rb', line 2 def stripe_model @stripe_model end |
Instance Method Details
#perform ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/services/stripe_model_callbacks/attributes_assigner_service.rb', line 10 def perform attributes.each do |attribute| next unless stripe_model.respond_to?(attribute) value = stripe_model.__send__(attribute) if attribute == "metadata" value = JSON.generate(value) elsif attribute == "created" && value value = Time.zone.at(value) end model.__send__(setter_method(attribute), value) end succeed! end |
#setter_method(attribute) ⇒ Object
28 29 30 31 32 33 34 |
# File 'app/services/stripe_model_callbacks/attributes_assigner_service.rb', line 28 def setter_method(attribute) if attribute == "id" "stripe_id=" else "#{attribute}=" end end |