rufus-doric 0.1.8 → 0.1.9
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/CHANGELOG.txt +8 -0
- data/Rakefile +2 -2
- data/lib/rufus/doric/model.rb +27 -1
- data/lib/rufus/doric/version.rb +1 -1
- data/rufus-doric.gemspec +8 -8
- data/test/ut_16_model_custom_view.rb +1 -1
- data/test/ut_1_model.rb +39 -0
- data/test/ut_4_one_doc_model.rb +11 -0
- metadata +7 -7
data/CHANGELOG.txt
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
= rufus-doric CHANGELOG.txt
|
3
3
|
|
4
4
|
|
5
|
+
== rufus-doric - 0.1.9 released 2010/05/13
|
6
|
+
|
7
|
+
- model#detach(attachment_name)
|
8
|
+
- model#attach(attachment_name, data)
|
9
|
+
- raising ActiveRecord::RecordInvalid if _id is missing or ''
|
10
|
+
- view, as shortcut for view_by
|
11
|
+
|
12
|
+
|
5
13
|
== rufus-doric - 0.1.8 released 2010/04/16
|
6
14
|
|
7
15
|
- view_by 'funcname', 'func' creates a 'funcname' method, not a 'by_funcname'
|
data/Rakefile
CHANGED
@@ -35,8 +35,8 @@ something at the intersection of Rails3, CouchDB and rufus-jig
|
|
35
35
|
|
36
36
|
gem.test_file = 'test/test.rb'
|
37
37
|
|
38
|
-
gem.add_dependency 'activerecord', '~> 3.0.0.
|
39
|
-
gem.add_dependency 'rufus-jig', '>= 0.1.
|
38
|
+
gem.add_dependency 'activerecord', '~> 3.0.0.beta3'
|
39
|
+
gem.add_dependency 'rufus-jig', '>= 0.1.18'
|
40
40
|
gem.add_dependency 'mime-types', '>= 1.16'
|
41
41
|
gem.add_development_dependency 'rake'
|
42
42
|
gem.add_development_dependency 'yard'
|
data/lib/rufus/doric/model.rb
CHANGED
@@ -23,6 +23,7 @@
|
|
23
23
|
#++
|
24
24
|
|
25
25
|
require 'cgi'
|
26
|
+
require 'mime/types'
|
26
27
|
|
27
28
|
|
28
29
|
module Rufus
|
@@ -170,6 +171,13 @@ module Doric
|
|
170
171
|
end
|
171
172
|
end
|
172
173
|
|
174
|
+
# Shorter than view_by.
|
175
|
+
#
|
176
|
+
def self.view (key, func=nil)
|
177
|
+
|
178
|
+
view_by(key, func)
|
179
|
+
end
|
180
|
+
|
173
181
|
def self.text_index (*keys)
|
174
182
|
|
175
183
|
@text_index = keys
|
@@ -237,13 +245,31 @@ module Doric
|
|
237
245
|
@h['_id'] = Rufus::Doric.neutralize_id(@h['_id'])
|
238
246
|
end
|
239
247
|
|
240
|
-
|
248
|
+
if @h['_id'].nil? || @h['_id'].strip == ''
|
249
|
+
raise ActiveRecord::RecordInvalid.new(self)
|
250
|
+
end
|
241
251
|
|
242
252
|
r = db.put(@h)
|
243
253
|
|
244
254
|
raise(SaveFailed.new(self.class.doric_type, _id)) unless r.nil?
|
245
255
|
end
|
246
256
|
|
257
|
+
def attach (attname, data)
|
258
|
+
|
259
|
+
doc = db.get(@h['_id'])
|
260
|
+
|
261
|
+
db.attach(
|
262
|
+
doc, attname, data,
|
263
|
+
:content_type => ::MIME::Types.type_for(attname).first.to_s)
|
264
|
+
end
|
265
|
+
|
266
|
+
def detach (attname)
|
267
|
+
|
268
|
+
raise ArgumentError.new("model not yet saved") unless @h['_rev']
|
269
|
+
|
270
|
+
db.delete("#{@h['_id']}/#{attname}?rev=#{@h['_rev']}")
|
271
|
+
end
|
272
|
+
|
247
273
|
#--
|
248
274
|
# methods required by ActiveModel (see test/unit/ut_3_model_lint.rb)
|
249
275
|
#++
|
data/lib/rufus/doric/version.rb
CHANGED
data/rufus-doric.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rufus-doric}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["John Mettraux"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-05-13}
|
13
13
|
s.description = %q{
|
14
14
|
something at the intersection of Rails3, CouchDB and rufus-jig
|
15
15
|
}
|
@@ -78,23 +78,23 @@ something at the intersection of Rails3, CouchDB and rufus-jig
|
|
78
78
|
s.specification_version = 3
|
79
79
|
|
80
80
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
81
|
-
s.add_runtime_dependency(%q<activerecord>, ["~> 3.0.0.
|
82
|
-
s.add_runtime_dependency(%q<rufus-jig>, [">= 0.1.
|
81
|
+
s.add_runtime_dependency(%q<activerecord>, ["~> 3.0.0.beta3"])
|
82
|
+
s.add_runtime_dependency(%q<rufus-jig>, [">= 0.1.18"])
|
83
83
|
s.add_runtime_dependency(%q<mime-types>, [">= 1.16"])
|
84
84
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
85
85
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
86
86
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
87
87
|
else
|
88
|
-
s.add_dependency(%q<activerecord>, ["~> 3.0.0.
|
89
|
-
s.add_dependency(%q<rufus-jig>, [">= 0.1.
|
88
|
+
s.add_dependency(%q<activerecord>, ["~> 3.0.0.beta3"])
|
89
|
+
s.add_dependency(%q<rufus-jig>, [">= 0.1.18"])
|
90
90
|
s.add_dependency(%q<mime-types>, [">= 1.16"])
|
91
91
|
s.add_dependency(%q<rake>, [">= 0"])
|
92
92
|
s.add_dependency(%q<yard>, [">= 0"])
|
93
93
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
94
94
|
end
|
95
95
|
else
|
96
|
-
s.add_dependency(%q<activerecord>, ["~> 3.0.0.
|
97
|
-
s.add_dependency(%q<rufus-jig>, [">= 0.1.
|
96
|
+
s.add_dependency(%q<activerecord>, ["~> 3.0.0.beta3"])
|
97
|
+
s.add_dependency(%q<rufus-jig>, [">= 0.1.18"])
|
98
98
|
s.add_dependency(%q<mime-types>, [">= 1.16"])
|
99
99
|
s.add_dependency(%q<rake>, [">= 0"])
|
100
100
|
s.add_dependency(%q<yard>, [">= 0"])
|
data/test/ut_1_model.rb
CHANGED
@@ -90,6 +90,14 @@ class UtModelTest < Test::Unit::TestCase
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
+
def test_missing_id_when_saving
|
94
|
+
|
95
|
+
assert_raise ActiveRecord::RecordInvalid do
|
96
|
+
Thing.new(
|
97
|
+
).save!
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
93
101
|
def test_copy
|
94
102
|
|
95
103
|
Thing.new(
|
@@ -179,5 +187,36 @@ class UtModelTest < Test::Unit::TestCase
|
|
179
187
|
|
180
188
|
assert_equal 'art', c.name
|
181
189
|
end
|
190
|
+
|
191
|
+
def test_attach
|
192
|
+
|
193
|
+
txt = File.read(__FILE__)
|
194
|
+
|
195
|
+
t = Thing.new('name' => 'piece_of_code')
|
196
|
+
t.save!
|
197
|
+
|
198
|
+
assert_equal [], t.attachments
|
199
|
+
|
200
|
+
t.attach('code.txt', txt)
|
201
|
+
|
202
|
+
t = Thing.find('piece_of_code')
|
203
|
+
|
204
|
+
assert_equal [ 'code.txt' ], t.attachments
|
205
|
+
assert_equal txt, t.db.get('piece_of_code/code.txt')
|
206
|
+
end
|
207
|
+
|
208
|
+
def test_detach
|
209
|
+
|
210
|
+
t = Thing.new('name' => 'ms_excel')
|
211
|
+
t.save!
|
212
|
+
t.attach('code.txt', File.read(__FILE__))
|
213
|
+
t = Thing.find('ms_excel')
|
214
|
+
|
215
|
+
assert_equal [ 'code.txt' ], t.attachments
|
216
|
+
|
217
|
+
t.detach('code.txt')
|
218
|
+
|
219
|
+
assert_equal [], Thing.find('ms_excel').attachments
|
220
|
+
end
|
182
221
|
end
|
183
222
|
|
data/test/ut_4_one_doc_model.rb
CHANGED
@@ -22,6 +22,12 @@ class User < Rufus::Doric::OneDocModel
|
|
22
22
|
validates :password, :presence => true
|
23
23
|
end
|
24
24
|
|
25
|
+
#class Site < Rufus::Doric::OneDocModel
|
26
|
+
# doc_id :sites
|
27
|
+
# property :name
|
28
|
+
# property :streets
|
29
|
+
#end
|
30
|
+
|
25
31
|
|
26
32
|
class UtOneDocModelTest < Test::Unit::TestCase
|
27
33
|
|
@@ -87,5 +93,10 @@ class UtOneDocModelTest < Test::Unit::TestCase
|
|
87
93
|
|
88
94
|
assert_equal [], User.all
|
89
95
|
end
|
96
|
+
|
97
|
+
# def test_missing_db_declaration
|
98
|
+
#
|
99
|
+
# Site.new(:name => 'Eur', :streets => [:one, :two, :three]).save!
|
100
|
+
# end
|
90
101
|
end
|
91
102
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 9
|
9
|
+
version: 0.1.9
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- John Mettraux
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-05-13 00:00:00 +09:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -28,8 +28,8 @@ dependencies:
|
|
28
28
|
- 3
|
29
29
|
- 0
|
30
30
|
- 0
|
31
|
-
-
|
32
|
-
version: 3.0.0.
|
31
|
+
- beta3
|
32
|
+
version: 3.0.0.beta3
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
@@ -42,8 +42,8 @@ dependencies:
|
|
42
42
|
segments:
|
43
43
|
- 0
|
44
44
|
- 1
|
45
|
-
-
|
46
|
-
version: 0.1.
|
45
|
+
- 18
|
46
|
+
version: 0.1.18
|
47
47
|
type: :runtime
|
48
48
|
version_requirements: *id002
|
49
49
|
- !ruby/object:Gem::Dependency
|