Module: WiseGopher::Base::ClassMethods

Defined in:
lib/wise_gopher/base.rb

Overview

class methods for WiseGopher::Base

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



19
20
21
# File 'lib/wise_gopher/base.rb', line 19

def params
  @params
end

#raw_paramsObject (readonly)

Returns the value of attribute raw_params.



19
20
21
# File 'lib/wise_gopher/base.rb', line 19

def raw_params
  @raw_params
end

#row_classObject (readonly)

Returns the value of attribute row_class.



19
20
21
# File 'lib/wise_gopher/base.rb', line 19

def row_class
  @row_class
end

Instance Method Details

#ensure_all_params_are_given(inputs = {}) ⇒ Object



61
62
63
64
65
# 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

#executeObject



49
50
51
52
53
# File 'lib/wise_gopher/base.rb', line 49

def execute
  ensure_all_params_are_given

  new.execute
end

#execute_with(inputs) ⇒ Object



55
56
57
58
59
# 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) ⇒ Object



25
26
27
28
29
30
31
# 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) ⇒ Object



21
22
23
# File 'lib/wise_gopher/base.rb', line 21

def query(query)
  const_set "QUERY", query.freeze
end

#raw_param(name, **kwargs) ⇒ Object



33
34
35
36
37
38
39
# 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) ⇒ Object



41
42
43
44
45
46
47
# 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