Class: Service
- Inherits:
-
Object
- Object
- Service
- Defined in:
- lib/service.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.call(**args) ⇒ Object
6 7 8 9 10 |
# File 'lib/service.rb', line 6 def self.call(**args) new.validate_arguments(@required_args, args) .instance_params(args) .perform end |
.require_args(*args) ⇒ Object
2 3 4 |
# File 'lib/service.rb', line 2 def self.require_args(*args) @required_args = args end |
Instance Method Details
#instance_params(args) ⇒ Object
26 27 28 29 30 |
# File 'lib/service.rb', line 26 def instance_params(args) args.each { |key, value| instance_variable_set("@#{key}", value) } self end |
#validate_arguments(required_args, args) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/service.rb', line 12 def validate_arguments(required_args, args) missing_args = required_args&.map do |required_arg| required_arg unless args.include?(required_arg) end&.compact if missing_args.present? raise ArgumentError, "Required #{'param'.pluralize(missing_args.count)} missing in #{self.class.name}: #{missing_args.join(', ')}" end self end |