Class: Crowdkit::API::Arguments
- Inherits:
-
Object
- Object
- Crowdkit::API::Arguments
- Defined in:
- lib/crowdkit/api/arguments.rb
Overview
Request arguments handler
Constant Summary collapse
- AUTO_PAGINATION =
:auto_pagination
Instance Attribute Summary collapse
-
#api ⇒ Object
readonly
The request api.
-
#params ⇒ Object
readonly
Parameters passed to request.
-
#remaining ⇒ Object
readonly
Returns the value of attribute remaining.
Instance Method Summary collapse
-
#assert_required(required) ⇒ Object
Check if required keys are present inside parameters hash.
-
#assert_values(values, key = nil) ⇒ Object
Check if parameters match expected values.
-
#initialize(api, options = {}) ⇒ Arguments
constructor
Takes api, filters and required arguments.
-
#parse(*args, &block) ⇒ Object
Parse arguments to allow for flexible api calls.
Constructor Details
#initialize(api, options = {}) ⇒ Arguments
Takes api, filters and required arguments
Parameters
:required - arguments that must be present before request is fired
31 32 33 34 35 |
# File 'lib/crowdkit/api/arguments.rb', line 31 def initialize(api, ={}) @api = api @required = .fetch(:required, []).map(&:to_s) @optional = .fetch(:optional, []).map(&:to_s) end |
Instance Attribute Details
#api ⇒ Object (readonly)
The request api
14 15 16 |
# File 'lib/crowdkit/api/arguments.rb', line 14 def api @api end |
#params ⇒ Object (readonly)
Parameters passed to request
8 9 10 |
# File 'lib/crowdkit/api/arguments.rb', line 8 def params @params end |
#remaining ⇒ Object (readonly)
Returns the value of attribute remaining.
10 11 12 |
# File 'lib/crowdkit/api/arguments.rb', line 10 def remaining @remaining end |
Instance Method Details
#assert_required(required) ⇒ Object
Check if required keys are present inside parameters hash.
59 60 61 62 |
# File 'lib/crowdkit/api/arguments.rb', line 59 def assert_required(required) assert_required_keys required, params self end |
#assert_values(values, key = nil) ⇒ Object
Check if parameters match expected values.
66 67 68 69 |
# File 'lib/crowdkit/api/arguments.rb', line 66 def assert_values(values, key=nil) assert_valid_values values, (key.nil? ? params : params[key]) self end |
#parse(*args, &block) ⇒ Object
Parse arguments to allow for flexible api calls. Arguments can be part of parameters hash or be simple string arguments.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/crowdkit/api/arguments.rb', line 40 def parse(*args, &block) = args. if !args.empty? && ![File, Array].include?(args.last.class) parse_arguments *args else # Arguments are inside the parameters hash end @params = @remaining = extract_remaining(args) extract_pagination() yield_or_eval(&block) self end |