oos4ruby 0.1.4 → 0.1.5
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/History.txt +4 -0
- data/lib/oos4ruby.rb +1 -1
- data/lib/oos4ruby/bean.rb +52 -39
- data/lib/oos4ruby/collection.rb +17 -4
- data/lib/oos4ruby/contact.rb +3 -1
- data/lib/oos4ruby/site.rb +2 -3
- data/lib/oos4ruby/version.rb +1 -1
- data/test/test_oos4ruby.rb +18 -4
- data/website/index.html +1 -1
- metadata +2 -2
data/History.txt
CHANGED
data/lib/oos4ruby.rb
CHANGED
data/lib/oos4ruby/bean.rb
CHANGED
@@ -88,45 +88,6 @@ module Bean #:nodoc:
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
-
def make_id
|
92
|
-
id = ''
|
93
|
-
5.times { id += rand(1000000).to_s }
|
94
|
-
"Oos4ruby:11870.com,2007:#{id}"
|
95
|
-
end
|
96
|
-
|
97
|
-
def add_element(base, new_el, text, attrs = {})
|
98
|
-
el = base.add_element new_el.to_s, attrs
|
99
|
-
el.text = text
|
100
|
-
base
|
101
|
-
end
|
102
|
-
|
103
|
-
def add_category(xml, term, scheme)
|
104
|
-
xml.add_category(term.to_s, scheme)
|
105
|
-
end
|
106
|
-
|
107
|
-
def remove_category(xml, term = nil, scheme = nil)
|
108
|
-
if xml.is_a?Entry
|
109
|
-
hash = {}
|
110
|
-
hash[:term] = term if term
|
111
|
-
hash[:scheme] = scheme if scheme
|
112
|
-
cat = xml.category( hash )
|
113
|
-
xml.delete_category( cat ) if cat
|
114
|
-
elsif xml.is_a?REXML::Element
|
115
|
-
xml.delete_element c
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
def create_entry
|
120
|
-
entry = REXML::Element.new('entry')
|
121
|
-
entry.add_namespace AtomNamespace
|
122
|
-
XmlNamespaces.each_pair { |prefix, namespace|
|
123
|
-
unless prefix == 'atom' || prefix == 'gml'
|
124
|
-
entry.add_namespace prefix, namespace
|
125
|
-
end
|
126
|
-
}
|
127
|
-
entry
|
128
|
-
end
|
129
|
-
|
130
91
|
class BeanClass
|
131
92
|
def author
|
132
93
|
@entry.child('author/name').text
|
@@ -140,6 +101,13 @@ module Bean #:nodoc:
|
|
140
101
|
@xml.to_s
|
141
102
|
end
|
142
103
|
|
104
|
+
def contains?(elem, value)
|
105
|
+
xpath = @xml.first(elem)
|
106
|
+
return true if xpath && xpath.text == value
|
107
|
+
|
108
|
+
return false
|
109
|
+
end
|
110
|
+
|
143
111
|
def update!
|
144
112
|
edit_link = @xml.link('edit')
|
145
113
|
|
@@ -183,6 +151,51 @@ module Bean #:nodoc:
|
|
183
151
|
Bean.remove_category(@xml, term, scheme)
|
184
152
|
end
|
185
153
|
|
154
|
+
def self.make_id
|
155
|
+
id = ''
|
156
|
+
5.times { id += rand(1000000).to_s }
|
157
|
+
"Oos4ruby:11870.com,2007:#{id}"
|
158
|
+
end
|
159
|
+
|
160
|
+
def self.add_element(base, new_el, text, attrs = {})
|
161
|
+
elements = new_el.to_s.split("/")
|
162
|
+
last = elements[elements.size - 1]
|
163
|
+
elements.pop
|
164
|
+
root_el = base
|
165
|
+
elements.each do |path|
|
166
|
+
root_el = base.add_element(path)
|
167
|
+
end
|
168
|
+
el = root_el.add_element last.to_s, attrs
|
169
|
+
el.text = text
|
170
|
+
end
|
171
|
+
|
172
|
+
def self.add_category(xml, term, scheme)
|
173
|
+
xml.add_category(term.to_s, scheme)
|
174
|
+
end
|
175
|
+
|
176
|
+
def self.remove_category(xml, term = nil, scheme = nil)
|
177
|
+
if xml.is_a?Entry
|
178
|
+
hash = {}
|
179
|
+
hash[:term] = term if term
|
180
|
+
hash[:scheme] = scheme if scheme
|
181
|
+
cat = xml.category( hash )
|
182
|
+
xml.delete_category( cat ) if cat
|
183
|
+
elsif xml.is_a?REXML::Element
|
184
|
+
xml.delete_element c
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
def self.create_entry
|
189
|
+
entry = REXML::Element.new('entry')
|
190
|
+
entry.add_namespace AtomNamespace
|
191
|
+
XmlNamespaces.each_pair { |prefix, namespace|
|
192
|
+
unless prefix == 'atom' || prefix == 'gml'
|
193
|
+
entry.add_namespace prefix, namespace
|
194
|
+
end
|
195
|
+
}
|
196
|
+
entry
|
197
|
+
end
|
198
|
+
|
186
199
|
end
|
187
200
|
end
|
188
201
|
end
|
data/lib/oos4ruby/collection.rb
CHANGED
@@ -12,7 +12,7 @@ class Collection < Array
|
|
12
12
|
@auth = auth
|
13
13
|
@slug = slug
|
14
14
|
evalued_class = eval(self.class.name.gsub(/s$/, ''))
|
15
|
-
feed.entries.each {|entry| self << evalued_class.new(entry, @auth, @slug) }
|
15
|
+
@feed.entries.each {|entry| self << evalued_class.new(entry, @auth, @slug) }
|
16
16
|
end
|
17
17
|
|
18
18
|
=begin rdoc
|
@@ -114,9 +114,7 @@ class Collection < Array
|
|
114
114
|
:content_length => file size
|
115
115
|
:content_type => file content type
|
116
116
|
=end
|
117
|
-
def create!(opts = {})
|
118
|
-
opts[:author] = REXML::XPath.first(@feed.xml, 'author', XmlNamespaces)
|
119
|
-
|
117
|
+
def create!(opts = {})
|
120
118
|
evalued_class = eval(self.class.name.gsub(/s$/, ''))
|
121
119
|
body = evalued_class.dump! opts, @slug
|
122
120
|
unless self.instance_of?Medias
|
@@ -134,6 +132,21 @@ class Collection < Array
|
|
134
132
|
raise RuntimeError.new unless worked
|
135
133
|
return evalued_class.new(poster.entry, @auth, @slug)
|
136
134
|
end
|
135
|
+
=begin rdoc
|
136
|
+
return true if the text of the element is equals to the given value
|
137
|
+
|
138
|
+
i.e:
|
139
|
+
user.contacts.contains? 'oos:slug', 'calavera'
|
140
|
+
user.sites.contains? 'oos:locality', 'Madrid'
|
141
|
+
=end
|
142
|
+
def contains?(elem, value)
|
143
|
+
self.each do |obj|
|
144
|
+
if obj.contains?(elem, value)
|
145
|
+
return true
|
146
|
+
end
|
147
|
+
end
|
148
|
+
return false
|
149
|
+
end
|
137
150
|
|
138
151
|
private
|
139
152
|
def get_page(link)
|
data/lib/oos4ruby/contact.rb
CHANGED
@@ -44,9 +44,11 @@ class Contact < Bean::BeanClass
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def Contact.dump!(opts, slug)
|
47
|
+
include Bean
|
48
|
+
|
47
49
|
entry = create_entry
|
48
50
|
|
49
|
-
|
51
|
+
add_element entry, 'author/name', slug
|
50
52
|
|
51
53
|
updated = DateTime::now.strftime("%Y-%m-%dT%H:%M:%S%z").sub(/(..)$/, ':\1')
|
52
54
|
|
data/lib/oos4ruby/site.rb
CHANGED
@@ -53,9 +53,8 @@ class Site < Bean::BeanClass
|
|
53
53
|
def Site.dump!(opts, slug)
|
54
54
|
require 'date'
|
55
55
|
|
56
|
-
entry = create_entry
|
57
|
-
|
58
|
-
entry.add_element opts[:author]
|
56
|
+
entry = create_entry
|
57
|
+
add_element(entry, 'author/name', slug)
|
59
58
|
|
60
59
|
updated = DateTime::now.strftime("%Y-%m-%dT%H:%M:%S%z").sub(/(..)$/, ':\1')
|
61
60
|
|
data/lib/oos4ruby/version.rb
CHANGED
data/test/test_oos4ruby.rb
CHANGED
@@ -42,7 +42,7 @@ puts sites.entries.to_s
|
|
42
42
|
sites = user.sites.entries
|
43
43
|
|
44
44
|
|
45
|
-
new_site = user.sites.create! :title => '
|
45
|
+
new_site = user.sites.create! :title => 'asdfw4rwqwasf', :user_address => 'asdfw4rwqwasf',
|
46
46
|
:country => {:name => 'España', :slug => '/es'}, :locality => {:name => 'Madrid', :slug => '/es/madrid'},
|
47
47
|
:summary => 'nueva opinion desde la API', :review_content => 'asdfasdf',
|
48
48
|
:tags => ['tapas', 'tipical spanish'], :lists => ['food']
|
@@ -86,7 +86,7 @@ class TestOos4ruby < Test::Unit::TestCase
|
|
86
86
|
|
87
87
|
def setup
|
88
88
|
@oos = Oos4ruby::Oos.new
|
89
|
-
@oos.auth_user('david.calavera@11870.com', '
|
89
|
+
@oos.auth_user('david.calavera@11870.com', '3beedf801db0d373919f6462345d6f76')
|
90
90
|
end
|
91
91
|
|
92
92
|
def assert_user_not_nil(user)
|
@@ -104,7 +104,7 @@ class TestOos4ruby < Test::Unit::TestCase
|
|
104
104
|
end
|
105
105
|
|
106
106
|
def test_user_with_uri
|
107
|
-
user = @oos.user(
|
107
|
+
user = @oos.user("#{Oos4ruby::API_URL}/users/peralta")
|
108
108
|
assert_user_not_nil(user)
|
109
109
|
end
|
110
110
|
|
@@ -131,7 +131,21 @@ class TestOos4ruby < Test::Unit::TestCase
|
|
131
131
|
def test_all_sites
|
132
132
|
user = @oos.user
|
133
133
|
assert_not_nil user.sites.all, ''
|
134
|
-
|
134
|
+
assert_equal user.sites.total_size, user.sites.all.size
|
135
|
+
end
|
136
|
+
|
137
|
+
def test_create_site
|
138
|
+
site = @oos.user.sites.create! :title => 'asdfwdss4rwqwasf', :user_address => 'asdfw4rwqwasf',
|
139
|
+
:country => {:name => 'España', :slug => '/es'},
|
140
|
+
:locality => {:name => 'Madrid', :slug => '/es/madrid'},
|
141
|
+
:summary => 'nueva opinion desde la API', :review_content => 'asdfasdf',
|
142
|
+
:tags => ['tapas', 'tipical spanish'], :lists => ['food'], :telephone => '913545471'
|
143
|
+
|
144
|
+
assert_not_nil site
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_contains?
|
148
|
+
assert_equal(true, @oos.user.sites.contains?('oos:locality', 'Madrid'))
|
135
149
|
end
|
136
150
|
|
137
151
|
end
|
data/website/index.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1>oos4ruby</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/oos4ruby"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/oos4ruby" class="numbers">0.1.
|
36
|
+
<a href="http://rubyforge.org/projects/oos4ruby" class="numbers">0.1.5</a>
|
37
37
|
</div>
|
38
38
|
<h1>→ ‘oos4ruby’</h1>
|
39
39
|
|
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.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ""
|
6
6
|
authors:
|
7
7
|
- David Calavera
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-01-
|
12
|
+
date: 2008-01-14 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|