Class: ActiveModelService::Call
- Inherits:
-
Object
- Object
- ActiveModelService::Call
- Includes:
- ActiveModel::AttributeAssignment, ActiveModel::Validations
- Defined in:
- lib/active_model_service.rb
Defined Under Namespace
Classes: ValueError
Instance Attribute Summary collapse
-
#result ⇒ Object
readonly
Returns the value of attribute result.
-
#valid ⇒ Object
readonly
Returns the value of attribute valid.
Class Method Summary collapse
Instance Method Summary collapse
- #_call ⇒ Object
-
#add_error(message) ⇒ Object
Add error to :base once.
- #valid?(_ = nil) ⇒ Boolean
Instance Attribute Details
#result ⇒ Object (readonly)
Returns the value of attribute result.
15 16 17 |
# File 'lib/active_model_service.rb', line 15 def result @result end |
#valid ⇒ Object (readonly)
Returns the value of attribute valid.
15 16 17 |
# File 'lib/active_model_service.rb', line 15 def valid @valid end |
Class Method Details
.call(attributes = {}) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/active_model_service.rb', line 27 def self.call(attributes = {}) new.tap do |instance| attributes.each do |k, v| raise Error, "Attribute #{k} is a reserve word!" if %i[result error valid call].include?(k.to_sym) unless instance.methods.include?(k.to_sym) raise Error, "Attribute is not defined! Add `attr :#{k}` in #{instance.class}" end instance.instance_variable_set("@#{k}".to_sym, v) end instance._call end end |
Instance Method Details
#_call ⇒ Object
17 18 19 20 21 |
# File 'lib/active_model_service.rb', line 17 def _call @result = call if send(:run_validations!) rescue Error => e puts e. end |
#add_error(message) ⇒ Object
Add error to :base once
43 44 45 46 |
# File 'lib/active_model_service.rb', line 43 def add_error() errors.add(:base, ) raise Error, end |
#valid?(_ = nil) ⇒ Boolean
23 24 25 |
# File 'lib/active_model_service.rb', line 23 def valid?(_ = nil) @valid = errors.empty? end |