module WiseGopher::Base::ClassMethods
class methods for WiseGopher::Base
Attributes
params[R]
raw_params[R]
row_class[R]
Public Instance Methods
ensure_all_params_are_given(inputs = {})
click to toggle source
# File lib/wise_gopher/base.rb, line 61 def ensure_all_params_are_given(inputs = {}) missing_params = required_params.keys - inputs.keys.map(&:to_s) raise WiseGopher::ArgumentError, required_params.slice(*missing_params) if missing_params.any? end
execute()
click to toggle source
# File lib/wise_gopher/base.rb, line 49 def execute ensure_all_params_are_given new.execute end
execute_with(inputs)
click to toggle source
# File lib/wise_gopher/base.rb, line 55 def execute_with(inputs) ensure_all_params_are_given(inputs) new(inputs).execute end
param(name, type, transform = nil)
click to toggle source
# File lib/wise_gopher/base.rb, line 25 def param(name, type, transform = nil) new_param = WiseGopher::Param.new(name, type, transform) ensure_param_name_is_available(new_param.name) params[new_param.name] = new_param end
query(query)
click to toggle source
# File lib/wise_gopher/base.rb, line 21 def query(query) const_set "QUERY", query.freeze end
raw_param(name, **kwargs)
click to toggle source
# File lib/wise_gopher/base.rb, line 33 def raw_param(name, **kwargs) raw_param = WiseGopher::RawParam.new(name, **kwargs) ensure_param_name_is_available(raw_param.name) raw_params[raw_param.name] = raw_param end
row(base = nil, &block)
click to toggle source
# File lib/wise_gopher/base.rb, line 41 def row(base = nil, &block) @row_class ||= base || define_generic_row_class @row_class.include WiseGopher::Row @row_class.class_eval(&block) if block_given? end
Private Instance Methods
define_generic_row_class()
click to toggle source
# File lib/wise_gopher/base.rb, line 69 def define_generic_row_class @row_class = const_set "Row", Class.new end
ensure_param_name_is_available(name)
click to toggle source
# File lib/wise_gopher/base.rb, line 73 def ensure_param_name_is_available(name) return unless params[name] || raw_params[name] raise WiseGopher::ParamAlreadyDeclared, name end
required_params()
click to toggle source
# File lib/wise_gopher/base.rb, line 79 def required_params params.merge(raw_params.reject { |_name, raw_param| raw_param.optional? }) end