chemspider 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/AUTHORS ADDED
@@ -0,0 +1 @@
1
+ * Mark Borkum <m.i.borkum@soton.ac.uk>
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -4,6 +4,10 @@ require 'date'
4
4
  require 'net/http'
5
5
  require 'uri'
6
6
 
7
+ ##
8
+ # ChemSpider.rb: ChemSpider wrapped up with a Ruby bow.
9
+ #
10
+ # @see http://www.chemspider.com/AboutServices.aspx
7
11
  module ChemSpider
8
12
  class << self
9
13
  ##
@@ -38,9 +42,10 @@ module ChemSpider
38
42
  # })
39
43
  # #=> 2157
40
44
  #
41
- # @param [#to_s] service_name
42
- # @param [#to_s] operation_name
43
- # @param [Hash] params (Hash.new)
45
+ # @param [#to_sym] service_name
46
+ # @param [#to_sym] operation_name
47
+ # @param [Hash{Symbol => Object}] params (Hash.new)
48
+ # @param [Hash{Symbol => Object}] options (Hash.new)
44
49
  # @option uri_options [#to_s] :scheme ('http')
45
50
  # @option uri_options [#to_s] :host ('www.chemspider.com')
46
51
  # @option uri_options [#to_s] :port (80)
@@ -49,14 +54,10 @@ module ChemSpider
49
54
  # @option uri_options [#to_s] :query (nil)
50
55
  # @option uri_options [#to_s] :fragment (nil)
51
56
  # @option options [#to_s] :selector (nil)
52
- # @option options [Hash, Class, #__attributes__, #new] :datatype (Hash.new)
57
+ # @option options [Hash{Symbol => Object}, Class, #__attributes__] :datatype (Hash.new)
53
58
  # @option options [Boolean] :first_child (false)
54
- #
55
59
  # @return [Object]
56
- #
57
- # @see ChemSpider#css
58
- # @see ChemSpider#uri_for
59
- #
60
+ # @since 0.0.1
60
61
  def get!(service_name, operation_name, params = {}, uri_options = {}, options = {})
61
62
  # construct the URI...
62
63
  uri = uri_for(service_name, operation_name, params, uri_options)
@@ -103,9 +104,10 @@ module ChemSpider
103
104
  # })
104
105
  # #=> 2157
105
106
  #
106
- # @param [#to_s] service_name
107
- # @param [#to_s] operation_name
108
- # @param [Hash] params (Hash.new)
107
+ # @param [#to_sym] service_name
108
+ # @param [#to_sym] operation_name
109
+ # @param [Hash{Symbol => Object}] params (Hash.new)
110
+ # @param [Hash{Symbol => Object}] options (Hash.new)
109
111
  # @option uri_options [#to_s] :scheme ('http')
110
112
  # @option uri_options [#to_s] :host ('www.chemspider.com')
111
113
  # @option uri_options [#to_s] :port (80)
@@ -114,14 +116,10 @@ module ChemSpider
114
116
  # @option uri_options [#to_s] :query (nil)
115
117
  # @option uri_options [#to_s] :fragment (nil)
116
118
  # @option options [#to_s] :selector (nil)
117
- # @option options [Hash, Class, #__attributes__, #new] :datatype (Hash.new)
119
+ # @option options [Hash{Symbol => Object}, Class, #__attributes__] :datatype (Hash.new)
118
120
  # @option options [Boolean] :first_child (false)
119
- #
120
121
  # @return [Object]
121
- #
122
- # @see ChemSpider#css
123
- # @see ChemSpider#uri_for
124
- #
122
+ # @since 0.0.1
125
123
  def post!(service_name, operation_name, params = {}, uri_options = {}, options = {})
126
124
  # construct the URI...
127
125
  uri = uri_for(service_name, operation_name, nil, uri_options)
@@ -156,18 +154,15 @@ module ChemSpider
156
154
  # m.post!(:inchi_key => 'BSYNRYMUTXBXSQ-UHFFFAOYSA-N')
157
155
  # #=> 2157
158
156
  #
159
- # @param [#to_s] service_name
160
- # @param [#to_s] operation_name
161
- # @param [Array<String>] param_names
157
+ # @param [#to_sym] service_name
158
+ # @param [#to_sym] operation_name
159
+ # @param [Array<String>] param_names (Array.new)
160
+ # @param [Hash{Symbol => Object}] options (Hash.new)
162
161
  # @option options [#to_s] :selector (nil)
163
- # @option options [Hash, Class, #__attributes__, #new] :datatype (Hash.new)
162
+ # @option options [Hash{Symbol => Object}, Class, #__attributes__] :datatype (Hash.new)
164
163
  # @option options [Boolean] :first_child (false)
165
- #
166
164
  # @return [Module]
167
- #
168
- # @see ChemSpider#get!
169
- # @see ChemSpider#post!
170
- #
165
+ # @since 0.0.1
171
166
  def REST(service_name, operation_name, param_names = [], options = {})
172
167
  # find/create the specified module...
173
168
  # #=> "ChemSpider::#{service_name}::#{operation_name}"
@@ -182,8 +177,10 @@ module ChemSpider
182
177
  # [re]define the methods...
183
178
  %w{get! post!}.each do |method_name|
184
179
  ##
180
+ # @return [Object]
185
181
  # @see ChemSpider#get!
186
182
  # @see ChemSpider#post!
183
+ # @since 0.0.1
187
184
  mod.send(:define_method, method_name.to_sym) do |*args|
188
185
  # the default `uri_options` argument is an empty Hash
189
186
  uri_options = {}
@@ -235,25 +232,29 @@ module ChemSpider
235
232
  end
236
233
 
237
234
  ##
238
- # @return [String]
235
+ # @return [Symbol]
236
+ # @since 0.0.2
239
237
  mod.send(:define_method, :chem_spider_service_name) do ||
240
- service_name.to_s
238
+ service_name.to_sym
241
239
  end
242
240
 
243
241
  ##
244
- # @return [String]
242
+ # @return [Symbol]
243
+ # @since 0.0.2
245
244
  mod.send(:define_method, :chem_spider_operation_name) do ||
246
- operation_name.to_s
245
+ operation_name.to_sym
247
246
  end
248
247
 
249
248
  ##
250
249
  # @return [Array<String>]
250
+ # @since 0.0.2
251
251
  mod.send(:define_method, :chem_spider_param_names) do ||
252
252
  param_names.collect(&:to_s)
253
253
  end
254
254
 
255
255
  ##
256
- # @return [Hash]
256
+ # @return [Hash{Symbol => Object}]
257
+ # @since 0.0.2
257
258
  mod.send(:define_method, :chem_spider_options) do ||
258
259
  options.dup
259
260
  end
@@ -268,9 +269,8 @@ module ChemSpider
268
269
  # Returns a unary callable that casts the argument to the specified `Class`.
269
270
  #
270
271
  # @param [Class] klass
271
- #
272
272
  # @return [#call]
273
- #
273
+ # @since 0.0.1
274
274
  def cast_for(klass)
275
275
  # lazily construct the set of callables...
276
276
  @casts ||= {
@@ -293,14 +293,12 @@ module ChemSpider
293
293
  # Extracts nodes specified by a CSS selector, and casts the result.
294
294
  #
295
295
  # @param [Nokogiri::XML::Node] doc
296
+ # @param [Hash{Symbol => Object}] options (Hash.new)
296
297
  # @option options [#to_s] :selector (nil)
297
- # @option options [Class, Hash, #__attributes__, #new] :datatype (Hash.new)
298
+ # @option options [Hash{Symbol => Object}, Class, #__attributes__] :datatype (Hash.new)
298
299
  # @option options [Boolean] :first_child (false)
299
- #
300
300
  # @return [Object]
301
- #
302
- # @see ChemSpider#cast_for
303
- #
301
+ # @since 0.0.1
304
302
  def css(doc, options = {})
305
303
  # evaluate the CSS selector...
306
304
  nodes = doc.css(options[:selector].to_s)
@@ -359,10 +357,9 @@ module ChemSpider
359
357
  # @example Construct a query string with multivalued parameters.
360
358
  # ChemSpider.query_for(:letters => %w{a b c}) #=> 'letters=a&letters=b&letters=c'
361
359
  #
362
- # @param [Array, Hash] pairs
363
- #
360
+ # @param [Array<#to_s>, Hash{Symbol => Object}] pairs
364
361
  # @return [#to_s]
365
- #
362
+ # @since 0.0.1
366
363
  def query_for(pairs)
367
364
  return nil if pairs.nil? || pairs.empty?
368
365
 
@@ -392,11 +389,12 @@ module ChemSpider
392
389
  # :port => 443,
393
390
  # :path_format => '/chemspider/%s/%s',
394
391
  # })
395
- # #=> #<URI::HTTP:0x101990e88 URL:http://www.example.com:443/chemspider/InChI/InChIKeyToCSID?inchi_key=BSYNRYMUTXBXSQ-UHFFFAOYSA-N>
392
+ # #=> #<URI::HTTPS:0x101990e88 URL:https://www.example.com:443/chemspider/InChI/InChIKeyToCSID?inchi_key=BSYNRYMUTXBXSQ-UHFFFAOYSA-N>
396
393
  #
397
- # @param [#to_s] service_name
398
- # @param [#to_s] operation_name
399
- # @param [Hash] params (Hash.new)
394
+ # @param [#to_sym] service_name
395
+ # @param [#to_sym] operation_name
396
+ # @param [Hash{Symbol => Object}] params (Hash.new)
397
+ # @param [Hash{Symbol => Object}] options (Hash.new)
400
398
  # @option options [#to_s] :scheme ('http')
401
399
  # @option options [#to_s] :host ('www.chemspider.com')
402
400
  # @option options [#to_s] :port (80)
@@ -404,11 +402,9 @@ module ChemSpider
404
402
  # @option options [#to_s] :path_format ('/%s.asmx/%s')
405
403
  # @option options [#to_s] :query (nil)
406
404
  # @option options [#to_s] :fragment (nil)
407
- #
408
405
  # @return [URI]
409
- #
410
406
  # @see ChemSpider#query_for
411
- #
407
+ # @since 0.0.1
412
408
  def uri_for(service_name, operation_name, params = {}, options = {})
413
409
  # initialize the format string for the base URI "scheme://host:port"...
414
410
  format = '%s://%s:%s'
@@ -2,7 +2,7 @@ module ChemSpider
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 2
5
+ TINY = 3
6
6
  EXTRA = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, EXTRA].compact.join('.')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chemspider
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mark Borkum
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-10-15 00:00:00 Z
18
+ date: 2012-10-23 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: nokogiri
@@ -33,7 +33,23 @@ dependencies:
33
33
  version: 1.5.0
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
- description: The ChemSpider API wrapped up with a Ruby bow.
36
+ - !ruby/object:Gem::Dependency
37
+ name: yard
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 7
45
+ segments:
46
+ - 0
47
+ - 7
48
+ - 2
49
+ version: 0.7.2
50
+ type: :development
51
+ version_requirements: *id002
52
+ description: "ChemSpider.rb: ChemSpider wrapped up with a Ruby bow."
37
53
  email: m.i.borkum@soton.ac.uk
38
54
  executables: []
39
55
 
@@ -42,6 +58,7 @@ extensions: []
42
58
  extra_rdoc_files: []
43
59
 
44
60
  files:
61
+ - AUTHORS
45
62
  - README
46
63
  - UNLICENSE
47
64
  - VERSION
@@ -66,10 +83,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
83
  requirements:
67
84
  - - ">="
68
85
  - !ruby/object:Gem::Version
69
- hash: 3
86
+ hash: 57
70
87
  segments:
71
- - 0
72
- version: "0"
88
+ - 1
89
+ - 8
90
+ - 7
91
+ version: 1.8.7
73
92
  required_rubygems_version: !ruby/object:Gem::Requirement
74
93
  none: false
75
94
  requirements: