Class: Request
- Inherits:
-
Object
- Object
- Request
- Defined in:
- lib/request.rb
Constant Summary collapse
- METHOD =
defaults
'search'
- OBJECTTYPE =
'Image'
- LIMIT =
10
- DEPTH =
1
- FORMAT =
'id'
- URI_PARAMS =
a subset of VALID_OPTIONS, these are concatenated in the request
[:limit, :format, :depth, :objecttype, :firstResult, :keywords, :id, :taxonName, :user, :group, :change, :lastDateChanged, :numChangeDays]
- VALID_OPTIONS =
possible options for a Request instance
{'v3' => URI_PARAMS + [:version, :method] }
Instance Attribute Summary collapse
-
#request_options ⇒ Object
readonly
Returns the value of attribute request_options.
-
#request_url ⇒ Object
readonly
Returns the value of attribute request_url.
Instance Method Summary collapse
- #get_response ⇒ Object
-
#initialize(options = {}) ⇒ Request
constructor
A new instance of Request.
Constructor Details
#initialize(options = {}) ⇒ Request
Returns a new instance of Request.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/request.rb', line 18 def initialize( = {}) opt = { :version => 'v3', :method => METHOD, :limit => LIMIT, :format => FORMAT, # 'id' (brief results) or 'svc' (schema based results) :depth => DEPTH, :objecttype => OBJECTTYPE, # [nil, Taxon, Image, Character, Specimen, View, Matrix, Locality, Collection, OTU ] (nil = all) :firstResult => 0, :keywords => '' }.merge!() # Check for legal parameters opt.keys.each do |p| raise RubyMorphbankError, "#{p} is not a valid parameter" if !VALID_OPTIONS[opt[:version]].include?(p) end # TODO: add some proper sanitation?! opt[:keywords].gsub!(/\s+/, '+') if opt[:keywords].length > 0 # create the request @request_url = SERVICES_URI + "method=#{opt[:method]}" + opt.keys.sort{|a,b| a.to_s <=> b.to_s}.collect{ |k| ( (URI_PARAMS.include?(k) && ( !opt[k].nil? || (opt[k] && opt[k].empty?)) ) ? "&#{k.to_s}=#{opt[k]}" : '') }.join # and some housekeepers @request_options = opt end |
Instance Attribute Details
#request_options ⇒ Object (readonly)
Returns the value of attribute request_options.
16 17 18 |
# File 'lib/request.rb', line 16 def @request_options end |
#request_url ⇒ Object (readonly)
Returns the value of attribute request_url.
16 17 18 |
# File 'lib/request.rb', line 16 def request_url @request_url end |