class Hammy::AbstractServiceObject
Public Class Methods
build(*args, **kargs)
click to toggle source
# File lib/hammy/abstract_service_object.rb, line 6 def self.build(*args, **kargs) new(*args, **kargs).klass end
new(*args, **kargs)
click to toggle source
# File lib/hammy/abstract_service_object.rb, line 10 def initialize(*args, **kargs) @args = args @kargs = kargs end
Public Instance Methods
initial_instance_variables(_args, _kargs)
click to toggle source
# File lib/hammy/abstract_service_object.rb, line 64 def initial_instance_variables(_args, _kargs) {} end
klass()
click to toggle source
Calls superclass method
# File lib/hammy/abstract_service_object.rb, line 15 def klass this = self Class.new do eigenclass = class << self; self; end eigenclass.class_eval do define_method(:method_missing) do |method, *args, **kargs, &block| return super(method, *args, **kargs, &block) unless this.valid_action?(self, method) new(args, kargs).send(method) end define_method(:respond_to_missing?) do |method, include_private = false| this.valid_action?(self, method) || super(method, include_private) end end define_method(:initialize) do |args, kargs| this.validate_args!(args, kargs) this.initial_instance_variables(args, kargs).each do |var, value| instance_variable_set(var, value) end end this.public_getters.each do |getter| attr_reader(getter) end protected this.protected_getters.each do |getter| attr_reader(getter) end private this.private_getters.each do |getter| attr_reader(getter) end end end
private_getters()
click to toggle source
# File lib/hammy/abstract_service_object.rb, line 76 def private_getters [] end
protected_getters()
click to toggle source
# File lib/hammy/abstract_service_object.rb, line 72 def protected_getters [] end
public_getters()
click to toggle source
# File lib/hammy/abstract_service_object.rb, line 68 def public_getters [] end
valid_action?(klass, method)
click to toggle source
# File lib/hammy/abstract_service_object.rb, line 58 def valid_action?(klass, method) klass.instance_methods(false).include?(method) end
validate_args!(args, kargs)
click to toggle source
# File lib/hammy/abstract_service_object.rb, line 62 def validate_args!(args, kargs); end