module FlexStationData::Concerns::Service
Public Class Methods
callable_modules()
click to toggle source
# File lib/flex_station_data/concerns/callable.rb, line 27 def callable_modules @callable_modules ||= {} end
included(base)
click to toggle source
# File lib/flex_station_data/concerns/callable.rb, line 7 def included(base) base.include with(:call) end
with(verb)
click to toggle source
# File lib/flex_station_data/concerns/callable.rb, line 11 def with(verb) callable_modules[verb.to_sym] ||= Module.new do define_singleton_method(:included) do |base| base.define_singleton_method(verb) do |*args| new(*args).public_send(verb) end base.define_singleton_method(:to_proc) do method(verb).to_proc end end end end
Also aliased as: []