oos4ruby 0.1.7 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/oos4ruby.rb +3 -1
- data/lib/oos4ruby/bean.rb +1 -2
- data/lib/oos4ruby/collection.rb +6 -8
- data/lib/oos4ruby/http_invoker.rb +2 -2
- data/lib/oos4ruby/media.rb +2 -6
- data/lib/oos4ruby/search.rb +18 -45
- data/lib/oos4ruby/site.rb +33 -38
- data/lib/oos4ruby/version.rb +2 -2
- data/test/test_search.rb +34 -0
- data/website/index.html +15 -8
- data/website/index.txt +10 -1
- metadata +8 -5
data/lib/oos4ruby.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
|
+
|
1
4
|
module Oos4ruby
|
2
5
|
class UnknownUser < ArgumentError; end
|
3
6
|
|
@@ -32,7 +35,6 @@ module Oos4ruby
|
|
32
35
|
TRUSTED_URL = API_URL + '/trusted'
|
33
36
|
SEARCH_URL = API_URL + '/search'
|
34
37
|
end
|
35
|
-
%w(rubygems).each { |f| require f }
|
36
38
|
|
37
39
|
require 'oos4ruby/http_invoker.rb'
|
38
40
|
require 'oos4ruby/auth.rb'
|
data/lib/oos4ruby/bean.rb
CHANGED
@@ -26,7 +26,7 @@ module Bean #:nodoc:
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def set_variable(options = {})
|
29
|
-
|
29
|
+
unless options.empty?
|
30
30
|
options.each_pair { |key, value|
|
31
31
|
class_variable_set("@@#{key.to_s}".to_sym, value)
|
32
32
|
}
|
@@ -197,4 +197,3 @@ module Bean #:nodoc:
|
|
197
197
|
end
|
198
198
|
end
|
199
199
|
end
|
200
|
-
|
data/lib/oos4ruby/collection.rb
CHANGED
@@ -11,7 +11,7 @@ class Collection < Array
|
|
11
11
|
@feed = feed
|
12
12
|
@auth = auth
|
13
13
|
@slug = slug
|
14
|
-
evalued_class =
|
14
|
+
evalued_class = Oos4ruby.const_get(self.class.name.gsub(/s$/, ''))
|
15
15
|
@feed.entries.each {|entry| self << evalued_class.new(entry, @auth, @slug) }
|
16
16
|
end
|
17
17
|
|
@@ -111,7 +111,7 @@ class Collection < Array
|
|
111
111
|
:content_type => file content type
|
112
112
|
=end
|
113
113
|
def create!(opts = {})
|
114
|
-
evalued_class =
|
114
|
+
evalued_class = Oos4ruby.const_get(self.class.name.gsub(/s$/, ''))
|
115
115
|
body = evalued_class.dump! opts, @slug
|
116
116
|
unless self.instance_of?Medias
|
117
117
|
body = "<?xml version='1.0' ?>\n" + body.to_s
|
@@ -119,14 +119,13 @@ class Collection < Array
|
|
119
119
|
|
120
120
|
poster = HTTPInvoker.new( @feed.self_link, @auth)
|
121
121
|
|
122
|
-
content_type = opts
|
123
|
-
opts.reject {|k, v| k == :content_type}
|
122
|
+
content_type = opts.delete(:content_type) || AtomEntryContentType
|
124
123
|
opts.each {|k, v| poster.set_header(k, v)}
|
125
124
|
|
126
125
|
worked = poster.post content_type, body
|
127
126
|
|
128
|
-
raise
|
129
|
-
return
|
127
|
+
raise poster.response.message unless worked
|
128
|
+
return get_page(@feed.self_link, @auth).first
|
130
129
|
end
|
131
130
|
=begin rdoc
|
132
131
|
return true if the text of the element is equals to the given value
|
@@ -163,8 +162,7 @@ class Collection < Array
|
|
163
162
|
end
|
164
163
|
|
165
164
|
def convert( body )
|
166
|
-
|
167
|
-
return evalued_class.new( Feed.read( body ), @auth, @slug )
|
165
|
+
return self.class.new( Feed.read( body ), @auth, @slug )
|
168
166
|
end
|
169
167
|
|
170
168
|
end
|
@@ -118,7 +118,7 @@ class HTTPInvoker
|
|
118
118
|
unless req
|
119
119
|
url = @uri.path
|
120
120
|
url += "?#{@uri.query}" if @uri.query
|
121
|
-
req =
|
121
|
+
req = Net::HTTP.const_get(option.to_s.capitalize).new( url )
|
122
122
|
end
|
123
123
|
|
124
124
|
@authent.add_to req
|
@@ -141,4 +141,4 @@ class HTTPInvoker
|
|
141
141
|
end
|
142
142
|
|
143
143
|
end
|
144
|
-
end
|
144
|
+
end
|
data/lib/oos4ruby/media.rb
CHANGED
@@ -14,12 +14,8 @@ module Oos4ruby
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def Media.dump!(opts, slug)
|
17
|
-
|
18
|
-
|
19
|
-
elsif (opts[:file].instance_of?String)
|
20
|
-
file = File.new( opts[:file ])
|
21
|
-
end
|
22
|
-
return file
|
17
|
+
file = opts.delete(:file)
|
18
|
+
file.respond_to?(:path) ? file : File.new(file)
|
23
19
|
end
|
24
20
|
|
25
21
|
private
|
data/lib/oos4ruby/search.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
require 'cgi'
|
3
2
|
|
4
3
|
module Oos4ruby
|
@@ -20,55 +19,29 @@ class Search
|
|
20
19
|
def Search.find(auth, opts)
|
21
20
|
query = SEARCH_URL
|
22
21
|
|
23
|
-
|
24
|
-
unless opts.empty?
|
25
|
-
query += "?"
|
26
|
-
if opts[:q]
|
27
|
-
query += "q=#{CGI.escape(opts[:q])}"
|
28
|
-
more_params = true
|
29
|
-
end
|
30
|
-
if opts[:bbox]
|
31
|
-
query += "&" if more_params
|
32
|
-
query += "bbox=#{opts[:bbox].join(",")}"
|
33
|
-
more_params = true
|
34
|
-
end
|
35
|
-
if opts[:as]
|
36
|
-
query += "&" if more_params
|
37
|
-
query += "as=#{opts[:as]}"
|
38
|
-
more_params = true
|
39
|
-
end
|
40
|
-
if opts[:tags]
|
41
|
-
query += "&" if more_params
|
42
|
-
opts[:tags].each_with_index do |tag, index|
|
43
|
-
query += "tag=#{CGI.escape(tag)}"
|
44
|
-
query += "&" if index < opts[:tags].length - 1
|
45
|
-
end
|
46
|
-
more_params = true
|
47
|
-
end
|
48
|
-
if opts[:tag_op]
|
49
|
-
query += "&" if more_params
|
50
|
-
query += "tagOp=#{opts[:tag_op]}"
|
51
|
-
more_params = true
|
52
|
-
end
|
53
|
-
if opts[:lat] and opts[:lon] and opts[:radius]
|
54
|
-
query += "&" if more_params
|
55
|
-
query += "lat=#{opts[:lat]}&lon=#{opts[:lon]}&radius=#{opts[:radius]}"
|
56
|
-
more_params = true
|
57
|
-
end
|
58
|
-
if opts[:page]
|
59
|
-
query += "&" if more_params
|
60
|
-
query += "page=#{opts[:page]}"
|
61
|
-
end
|
62
|
-
else
|
63
|
-
raise RuntimeError('a parameter is obligatory at least')
|
64
|
-
end
|
65
|
-
|
66
|
-
getter = HTTPInvoker.new query, auth
|
22
|
+
getter = HTTPInvoker.new parse_params(opts), auth
|
67
23
|
|
68
24
|
worked = getter.get
|
69
25
|
raise RuntimeError.new(getter.response.message) unless worked
|
70
26
|
Sites.new(Feed.read(getter.body), auth, nil)
|
71
27
|
end
|
28
|
+
|
29
|
+
def Search.parse_params(args)
|
30
|
+
raise "at least a parameter is mandatory" if args.nil? || args.empty?
|
31
|
+
|
32
|
+
args[:q] = CGI.escape(args[:q]) if args.include?(:q)
|
33
|
+
args[:bbox] = args[:bbox].join(",") if args.include?(:bbox)
|
34
|
+
args[:tag] = args.delete(:tags).map {|tag| CGI.escape(tag)} if args.include?(:tags)
|
35
|
+
args[:tagOp] = args.delete(:tag_op) if args.include?(:tag_op)
|
36
|
+
|
37
|
+
args.map do |k, v|
|
38
|
+
if v.respond_to?(:each_with_index)
|
39
|
+
v.map {|m| "#{k}=#{m}"}
|
40
|
+
else
|
41
|
+
"#{k}=#{v}"
|
42
|
+
end
|
43
|
+
end.flatten.join("&")
|
44
|
+
end
|
72
45
|
end
|
73
46
|
end
|
74
47
|
|
data/lib/oos4ruby/site.rb
CHANGED
@@ -61,60 +61,57 @@ class Site < Bean::BeanClass
|
|
61
61
|
|
62
62
|
add_element entry, 'updated', updated
|
63
63
|
add_element entry, 'id', make_id
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
add_element entry, 'summary', opts
|
71
|
-
|
72
|
-
if opts
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
64
|
+
|
65
|
+
{:id => 'oos:id', :title => 'title', :user_address => 'oos:useraddress',
|
66
|
+
:url => 'oos:url', :telephone => 'oos:telephone', :review_title => 'summary'}.each do |k, v|
|
67
|
+
add_element entry, v, opts.delete(k) if opts.include?(k)
|
68
|
+
end
|
69
|
+
|
70
|
+
add_element entry, 'summary', opts.delete(:summary) if opts.include?(:summary) and REXML::XPath.first(entry, 'summary', XmlNamespaces).nil?
|
71
|
+
|
72
|
+
if opts.include?(:privacy)
|
73
|
+
privacy = opts.delete(:privacy)
|
74
|
+
if privacy.is_a?REXML::Element
|
75
|
+
entry.add_element privacy
|
76
|
+
elsif privacy.is_a?String
|
77
|
+
add_category entry, privacy, PRIVACY_URL
|
77
78
|
end
|
78
79
|
end
|
79
80
|
|
80
|
-
if opts
|
81
|
-
content = opts
|
81
|
+
if opts.include?(:review_content) || opts.include?(:content)
|
82
|
+
content = opts.delete(:review_content) || opts.delete(:content)
|
82
83
|
attrs = {}
|
83
|
-
text =
|
84
|
-
if content.
|
85
|
-
text = content
|
86
|
-
elsif content.is_a?Hash
|
87
|
-
text = content[:text]
|
88
|
-
content.delete :text
|
84
|
+
text = content
|
85
|
+
if content.respond_to?(:each_pair)
|
86
|
+
text = content.delete(:text)
|
89
87
|
content.each_pair {|key, value| attrs[key.to_s] = value}
|
90
88
|
end
|
91
89
|
add_element entry, 'content', text, attrs
|
92
90
|
end
|
93
91
|
|
94
|
-
if opts
|
95
|
-
|
92
|
+
if opts.include?(:locality)
|
93
|
+
locality = opts.delete(:locality)
|
94
|
+
name = locality
|
96
95
|
local_slug = nil
|
97
96
|
attrs = {}
|
98
|
-
if
|
99
|
-
name =
|
100
|
-
local_slug =
|
101
|
-
elsif opts[:locality].is_a?String
|
102
|
-
name = opts[:locality]
|
97
|
+
if locality.respond_to?(:each_pair)
|
98
|
+
name = locality[:name]
|
99
|
+
local_slug = locality[:slug]
|
103
100
|
end
|
104
101
|
attrs['slug'] = local_slug if local_slug
|
105
102
|
add_element entry, 'oos:locality', name, attrs
|
106
103
|
end
|
107
104
|
|
108
|
-
if opts
|
109
|
-
|
110
|
-
|
105
|
+
if opts.include?(:country)
|
106
|
+
country = opts.delete(:country)
|
107
|
+
name = country.delete(:name)
|
111
108
|
attrs = {}
|
112
|
-
|
109
|
+
country.each_pair {|key, value| attrs[key.to_s] = value}
|
113
110
|
add_element entry, 'oos:country', name, attrs
|
114
111
|
end
|
115
112
|
|
116
|
-
opts
|
117
|
-
opts
|
113
|
+
opts.delete(:tags).each { |tag| add_category entry, tag, "#{TAGS_URL}/#{slug}"} if opts.include(:tags)
|
114
|
+
opts.delete(:lists).each { |list| add_category entry, list, "#{LISTS_URL}/#{slug}"} if opts.include?(:lists)
|
118
115
|
|
119
116
|
entry
|
120
117
|
end
|
@@ -172,9 +169,7 @@ class Site < Bean::BeanClass
|
|
172
169
|
end
|
173
170
|
|
174
171
|
def privacy
|
175
|
-
|
176
|
-
@privacy = @xml.category({:scheme => PRIVACY_URL}).attributes['term']
|
177
|
-
@privacy
|
172
|
+
@privacy ||= @xml.category({:scheme => PRIVACY_URL}).attributes['term']
|
178
173
|
end
|
179
174
|
|
180
175
|
def privacy=(privacy)
|
@@ -187,7 +182,7 @@ class Site < Bean::BeanClass
|
|
187
182
|
getter = HTTPInvoker.new href, @auth
|
188
183
|
worked = getter.get
|
189
184
|
|
190
|
-
raise
|
185
|
+
raise getter.response.message unless worked
|
191
186
|
Medias.new(Feed.read(getter.body), @auth, @slug)
|
192
187
|
end
|
193
188
|
|
data/lib/oos4ruby/version.rb
CHANGED
data/test/test_search.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class TestSearch < Test::Unit::TestCase
|
4
|
+
|
5
|
+
VALID_PARAMS = {
|
6
|
+
:q => 'gloria',
|
7
|
+
:tags => ['madrid', 'barcelona'],
|
8
|
+
:as => '/es',
|
9
|
+
:bbox => ['23452345', '345325', '23434', '32453245'],
|
10
|
+
:tag_op => 'and',
|
11
|
+
:lon => '2345',
|
12
|
+
:lat => '234234',
|
13
|
+
:radius => '3'
|
14
|
+
}
|
15
|
+
|
16
|
+
def test_parse_params_without_arguments
|
17
|
+
assert_raise(RuntimeError) { Oos4ruby::Search.parse_params(nil) }
|
18
|
+
assert_raise(RuntimeError) { Oos4ruby::Search.parse_params({}) }
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_parse_params_with_arguments
|
22
|
+
query = Oos4ruby::Search.parse_params(VALID_PARAMS)
|
23
|
+
|
24
|
+
assert query.include?("q=gloria")
|
25
|
+
assert query.include?("tag=madrid")
|
26
|
+
assert query.include?("tag=barcelona")
|
27
|
+
assert query.include?("as=/es")
|
28
|
+
assert query.include?("bbox=23452345,345325,23434,32453245")
|
29
|
+
assert query.include?("tagOp=and")
|
30
|
+
assert query.include?("lon=2345")
|
31
|
+
assert query.include?("lat=234234")
|
32
|
+
assert query.include?("radius=3")
|
33
|
+
end
|
34
|
+
end
|
data/website/index.html
CHANGED
@@ -60,13 +60,13 @@
|
|
60
60
|
</pre></p>
|
61
61
|
<p>How to add a review from a site that doesn’t exist in 11870:</p>
|
62
62
|
<p><pre class='syntax'>
|
63
|
-
<span class="ident">oos</span><span class="punct">.</span><span class="ident">user</span><span class="punct">.</span><span class="ident">sites</span><span class="punct">.</span><span class="ident">create!</span> <span class="punct">{</span><span class="symbol">:title</span> <span class="punct">=></span> <span class="punct"
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
</
|
63
|
+
<span class="ident">oos</span><span class="punct">.</span><span class="ident">user</span><span class="punct">.</span><span class="ident">sites</span><span class="punct">.</span><span class="ident">create!</span> <span class="punct">{</span><span class="symbol">:title</span> <span class="punct">=></span> <span class="punct">"</span><span class="string">this site doesn't exist</span><span class="punct">",</span>
|
64
|
+
<span class="symbol">:user_address</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">the address</span><span class="punct">',</span>
|
65
|
+
<span class="symbol">:locality</span> <span class="punct">=></span> <span class="punct">{</span><span class="symbol">:name</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">Madrid</span><span class="punct">',</span> <span class="symbol">:slug</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">/es/madrid</span><span class="punct">'},</span>
|
66
|
+
<span class="symbol">:country</span> <span class="punct">=></span> <span class="punct">{</span><span class="symbol">:name</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">España</span><span class="punct">',</span> <span class="symbol">:slug</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">/es</span><span class="punct">'}</span>
|
67
|
+
<span class="symbol">:summary</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">review title</span><span class="punct">',</span> <span class="symbol">:content</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">review content</span><span class="punct">'</span>
|
68
|
+
<span class="symbol">:tags</span> <span class="punct">=></span> <span class="punct">['</span><span class="string">tapas</span><span class="punct">',</span> <span class="punct">'</span><span class="string">tipical spanish</span><span class="punct">'],</span> <span class="symbol">:lists</span> <span class="punct">=></span> <span class="punct">['</span><span class="string">food</span><span class="punct">']}</span>
|
69
|
+
</pre></p>
|
70
70
|
<p>How to add a review from a site that exists in 11870:</p>
|
71
71
|
<p><pre class='syntax'>
|
72
72
|
<span class="ident">oos</span><span class="punct">.</span><span class="ident">user</span><span class="punct">.</span><span class="ident">sites</span><span class="punct">.</span><span class="ident">create!</span> <span class="punct">{</span><span class="symbol">:id</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">11870 site id</span><span class="punct">',</span>
|
@@ -76,6 +76,13 @@
|
|
76
76
|
<p><pre class='syntax'><span class="ident">contacts</span> <span class="punct">=</span> <span class="ident">user</span><span class="punct">.</span><span class="ident">contacts</span></pre></p>
|
77
77
|
<p>How to obtain the multimedia feed associated with a review:</p>
|
78
78
|
<p><pre class='syntax'><span class="ident">media_collection</span> <span class="punct">=</span> <span class="ident">user</span><span class="punct">.</span><span class="ident">sites</span><span class="punct">[</span><span class="number">0</span><span class="punct">].</span><span class="ident">multimedia</span></pre></p>
|
79
|
+
<p>How to add a new image or video to a review:</p>
|
80
|
+
<p><pre class='syntax'><span class="ident">user</span><span class="punct">.</span><span class="ident">sites</span><span class="punct">[</span><span class="number">0</span><span class="punct">].</span><span class="ident">multimedia</span><span class="punct">.</span><span class="ident">create!</span> <span class="punct">{</span>
|
81
|
+
<span class="symbol">:file</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">image.png</span><span class="punct">',</span>
|
82
|
+
<span class="symbol">:content_length</span> <span class="punct">=></span> <span class="constant">File</span><span class="punct">.</span><span class="ident">size</span><span class="punct">('</span><span class="string">image.png</span><span class="punct">'),</span>
|
83
|
+
<span class="symbol">:content_type</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">image/png</span><span class="punct">'</span>
|
84
|
+
<span class="punct">}</span>
|
85
|
+
</pre></p>
|
79
86
|
<h2>Forum</h2>
|
80
87
|
<p><a href="http://groups.google.com/group/api-11870">http://groups.google.com/group/api-11870</a></p>
|
81
88
|
<h2>How to submit patches</h2>
|
@@ -86,7 +93,7 @@
|
|
86
93
|
<h2>Contact</h2>
|
87
94
|
<p>Comments are welcome. Send an email to <a href="mailto:david.calavera@gmail.com">David Calavera</a> email via the <a href="http://groups.google.com/group/api-11870">forum</a></p>
|
88
95
|
<p class="coda">
|
89
|
-
<a href="FIXME email">David Calavera</a>,
|
96
|
+
<a href="FIXME email">David Calavera</a>, 19th November 2009<br>
|
90
97
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
91
98
|
</p>
|
92
99
|
</div>
|
data/website/index.txt
CHANGED
@@ -43,7 +43,7 @@ sites = user.sites
|
|
43
43
|
How to add a review from a site that doesn't exist in 11870:
|
44
44
|
|
45
45
|
<pre syntax="ruby">
|
46
|
-
oos.user.sites.create! {:title =>
|
46
|
+
oos.user.sites.create! {:title => "this site doesn't exist",
|
47
47
|
:user_address => 'the address',
|
48
48
|
:locality => {:name => 'Madrid', :slug => '/es/madrid'},
|
49
49
|
:country => {:name => 'España', :slug => '/es'}
|
@@ -66,6 +66,15 @@ How to obtain the multimedia feed associated with a review:
|
|
66
66
|
|
67
67
|
<pre syntax="ruby">media_collection = user.sites[0].multimedia</pre>
|
68
68
|
|
69
|
+
How to add a new image or video to a review:
|
70
|
+
|
71
|
+
<pre syntax="ruby">user.sites[0].multimedia.create! {
|
72
|
+
:file => 'image.png',
|
73
|
+
:content_length => File.size('image.png'),
|
74
|
+
:content_type => 'image/png'
|
75
|
+
}
|
76
|
+
</pre>
|
77
|
+
|
69
78
|
h2. Forum
|
70
79
|
|
71
80
|
"http://groups.google.com/group/api-11870":http://groups.google.com/group/api-11870
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oos4ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Calavera
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-11-19 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.3.3
|
34
34
|
version:
|
35
35
|
description: oos4ruby is a ruby binding for the 11870 API
|
36
36
|
email: david.calavera@gmail.com
|
@@ -88,6 +88,8 @@ files:
|
|
88
88
|
- website/template.rhtml
|
89
89
|
has_rdoc: true
|
90
90
|
homepage: http://oos4r.rubyforge.org
|
91
|
+
licenses: []
|
92
|
+
|
91
93
|
post_install_message:
|
92
94
|
rdoc_options:
|
93
95
|
- --main
|
@@ -109,10 +111,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
111
|
requirements: []
|
110
112
|
|
111
113
|
rubyforge_project: oos4r
|
112
|
-
rubygems_version: 1.3.
|
114
|
+
rubygems_version: 1.3.5
|
113
115
|
signing_key:
|
114
|
-
specification_version:
|
116
|
+
specification_version: 3
|
115
117
|
summary: oos4ruby is a ruby binding for the 11870 API
|
116
118
|
test_files:
|
117
119
|
- test/test_helper.rb
|
120
|
+
- test/test_search.rb
|
118
121
|
- test/test_oos4ruby.rb
|