orm_adapter_couchrest_model 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in orm_adapter_couchrest_model.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Winfield
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # ORM Adapter for couchrest_model
2
+
3
+ Add couchrest_model support to [orm_adapter](https://github.com/ianwhite/orm_adapter)
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'orm_adapter_couchrest_model'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install orm_adapter_couchrest_model
18
+
19
+ ## Usage
20
+
21
+ Please refer to [orm_adapter](https://github.com/ianwhite/orm_adapter)'s README
22
+
23
+ ## Run Tests
24
+
25
+ You need CouchDB running at localhost to run the tests
26
+
27
+ Default test db is http://locahost:5984/orm_adapter_spec without admin
28
+
29
+ ## Contributing
30
+
31
+ 1. Fork it
32
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
33
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
34
+ 4. add test to verify it
35
+ 5. Push to the branch (`git push origin my-new-feature`)
36
+ 6. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+ require 'rspec/core/rake_task'
4
+
5
+ task :default => :spec
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
@@ -0,0 +1,7 @@
1
+ require "orm_adapter"
2
+ require "orm_adapter_couchrest_model/version"
3
+ require "orm_adapter_couchrest_model/couchrest_model" if defined?(CouchRest::Model::Base)
4
+
5
+ module OrmAdapterCouchrestModel
6
+ # Your code goes here...
7
+ end
@@ -0,0 +1,55 @@
1
+ require 'couchrest_model'
2
+
3
+ module CouchRest
4
+ module Model
5
+ class Base
6
+ extend OrmAdapter::ToAdapter
7
+
8
+ class OrmAdapter < ::OrmAdapter::Base
9
+ def column_names
10
+ klass.properties
11
+ end
12
+
13
+ def get!(id)
14
+ klass.get!(wrap_key(id))
15
+ end
16
+
17
+ def get(id)
18
+ klass.get(wrap_key(id))
19
+ end
20
+
21
+ def find_first(options = {})
22
+ conditions, order, limit, offset = extract_conditions!(options)
23
+ if conditions.empty?
24
+ klass.first
25
+ elsif conditions.keys.first == :id
26
+ klass.get(conditions.values.first)
27
+ else
28
+ view = klass.send("by_#{conditions.keys.first}")
29
+ view.key(conditions.values.first).limit(1).first
30
+ end
31
+ end
32
+
33
+ def find_all(options = {})
34
+ conditions, order, limit, offset = extract_conditions!(options)
35
+ if conditions.empty?
36
+ klass.all(:limit => limit, :skip => offset).all
37
+ elsif conditions.keys.first == :id
38
+ klass.get(conditions.values.first)
39
+ else
40
+ view = klass.send("by_#{conditions.keys.first}")
41
+ view.key(conditions.values.first).limit(limit).skip(offset).all
42
+ end
43
+ end
44
+
45
+ def create!(attributes = {})
46
+ klass.create!(attributes)
47
+ end
48
+
49
+ def destroy(object)
50
+ object.destroy if valid_object?(object)
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,3 @@
1
+ module OrmAdapterCouchrestModel
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/orm_adapter_couchrest_model/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = "orm_adapter_couchrest_model"
6
+ gem.version = OrmAdapterCouchrestModel::VERSION
7
+ gem.authors = ["lainuo"]
8
+ gem.email = ["winfield301@gmail.com"]
9
+ gem.description = %q{ORM adapter for couchrest_model}
10
+ gem.summary = %q{ORM adapter for couchrest_model}
11
+ gem.homepage = "https://github.com/winfield/orm_adapter_couchrest_model"
12
+
13
+ gem.files = `git ls-files`.split($\)
14
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ gem.require_paths = ["lib"]
17
+
18
+ gem.rubyforge_project = "orm_adapter_couchrest_model"
19
+
20
+ gem.add_dependency "activemodel", ">= 3.0.0"
21
+ gem.add_dependency "orm_adapter"
22
+ gem.add_dependency "couchrest_model", "2.0.0.beta2"
23
+
24
+ gem.add_development_dependency "bundler", ">= 1.0.0"
25
+ gem.add_development_dependency "rake", ">= 0.8.7"
26
+ gem.add_development_dependency "rspec", ">= 2.4.0"
27
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+ require 'example_app_shared'
3
+
4
+ if !defined?(CouchRest::Model)
5
+ puts "** require 'couchrest_model' to run the specs in #{__FILE__}"
6
+ else
7
+
8
+ module CouchrestModelOrmSpec
9
+ class User < CouchRest::Model::Base
10
+ use_database CouchRest.database!("http://127.0.0.1:5984/orm_adapter_spec")
11
+
12
+ property :name
13
+ design do
14
+ view :by_name
15
+ end
16
+ end
17
+
18
+ class Note < CouchRest::Model::Base
19
+ use_database CouchRest.database!("http://127.0.0.1:5984/orm_adapter_spec")
20
+
21
+ property :body
22
+ design do
23
+ view :by_body
24
+ end
25
+ end
26
+
27
+ # here be the specs!
28
+ describe CouchRest::Model::Base::OrmAdapter do
29
+ let(:default_database) { CouchRest.database!("http://127.0.0.1:5984/orm_adapter_spec") }
30
+
31
+ before do
32
+ default_database.recreate!
33
+ end
34
+
35
+ it_should_behave_like "example app with orm_adapter" do
36
+ let(:user_class) { User }
37
+ let(:note_class) { Note }
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,272 @@
1
+ # to test your new orm_adapter, make an example app that matches the functionality
2
+ # found in the existing specs for example, look at spec/orm_adapter/adapters/active_record_spec.rb
3
+ #
4
+ # Then you can execute this shared spec as follows:
5
+ #
6
+ # it_should_behave_like "execute app with orm_adapter" do
7
+ # let(:user_class) { User }
8
+ # let(:note_class) { Note }
9
+ #
10
+ # # optionaly define the following functions if the ORM does not support
11
+ # # this syntax - this should NOT use the orm_adapter, because we're testing that
12
+ # def create_model(klass, attrs = {})
13
+ # klass.create!(attrs)
14
+ # end
15
+ #
16
+ # def reload_model(model)
17
+ # model.class.find(model.id)
18
+ # end
19
+ # end
20
+ #
21
+ shared_examples_for "example app with orm_adapter" do
22
+
23
+ def create_model(klass, attrs = {})
24
+ klass.create!(attrs)
25
+ end
26
+
27
+ def reload_model(model)
28
+ model.class.find(model.id)
29
+ end
30
+
31
+ describe "an ORM class" do
32
+ subject { note_class }
33
+
34
+ it "#to_adapter should return an adapter instance" do
35
+ subject.to_adapter.should be_a(OrmAdapter::Base)
36
+ end
37
+
38
+ it "#to_adapter should return an adapter for the receiver" do
39
+ subject.to_adapter.klass.should == subject
40
+ end
41
+
42
+ it "#to_adapter should be cached" do
43
+ subject.to_adapter.object_id.should == subject.to_adapter.object_id
44
+ end
45
+ end
46
+
47
+ describe "adapter instance" do
48
+ let(:note_adapter) { note_class.to_adapter }
49
+ let(:user_adapter) { user_class.to_adapter }
50
+
51
+ describe "#get!(id)" do
52
+ it "should return the instance with id if it exists" do
53
+ user = create_model(user_class)
54
+ user_adapter.get!(user.id).should == user
55
+ end
56
+
57
+ it "should allow to_key like arguments" do
58
+ user = create_model(user_class)
59
+ user_adapter.get!(user.to_key).should == user
60
+ end
61
+
62
+ it "should raise an error if there is no instance with that id" do
63
+ lambda { user_adapter.get!("nonexistent id") }.should raise_error
64
+ end
65
+ end
66
+
67
+ describe "#get(id)" do
68
+ it "should return the instance with id if it exists" do
69
+ user = create_model(user_class)
70
+ user_adapter.get(user.id).should == user
71
+ end
72
+
73
+ it "should allow to_key like arguments" do
74
+ user = create_model(user_class)
75
+ user_adapter.get(user.to_key).should == user
76
+ end
77
+
78
+ it "should return nil if there is no instance with that id" do
79
+ user_adapter.get("nonexistent id").should be_nil
80
+ end
81
+ end
82
+
83
+ describe "#find_first" do
84
+ describe "(conditions)" do
85
+ it "should return first model matching conditions, if it exists" do
86
+ user = create_model(user_class, :name => "Fred")
87
+ user_adapter.find_first(:name => "Fred").should == user
88
+ end
89
+
90
+ it "should return nil if no conditions match" do
91
+ user_adapter.find_first(:name => "Betty").should == nil
92
+ end
93
+
94
+ # CouchDB generate random UUID, and find first by UUID,
95
+ # so this is meaningless
96
+ #it 'should return the first model if no conditions passed' do
97
+ # user = create_model(user_class)
98
+ # create_model(user_class)
99
+ # user_adapter.find_first.should == user
100
+ #end
101
+
102
+ # associations are not supported
103
+ #it "when conditions contain associated object, should return first model if it exists" do
104
+ # user = create_model(user_class)
105
+ # note = create_model(note_class, :owner => user)
106
+ # note_adapter.find_first(:owner => user).should == note
107
+ #end
108
+
109
+ it "understands :id as a primary key condition (allowing scoped finding)" do
110
+ create_model(user_class, :name => "Fred")
111
+ user = create_model(user_class, :name => "Fred")
112
+ user_adapter.find_first(:id => user.id, :name => "Fred").should == user
113
+ # CouchDB can only accept one condition, since it can only
114
+ # accept on view(query), so this will return `user`
115
+ user_adapter.find_first(:id => user.id, :name => "Not Fred").should == user
116
+ end
117
+ end
118
+
119
+ describe "(:order => <order array>)" do
120
+ it "should return first model in specified order" do
121
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
122
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
123
+ user_adapter.find_first(:order => [:name, [:rating, :desc]]).should == user2
124
+ end
125
+ end
126
+
127
+ describe "(:conditions => <conditions hash>, :order => <order array>)" do
128
+ it "should return first model matching conditions, in specified order" do
129
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
130
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
131
+ user_adapter.find_first(:conditions => {:name => "Fred"}, :order => [:rating, :desc]).should == user2
132
+ end
133
+ end
134
+ end
135
+
136
+ describe "#find_all" do
137
+ describe "(conditions)" do
138
+ it "should return only models matching conditions" do
139
+ user1 = create_model(user_class, :name => "Fred")
140
+ user2 = create_model(user_class, :name => "Fred")
141
+ user3 = create_model(user_class, :name => "Betty")
142
+ # CouchDB generate random UUID, and find first by UUID,
143
+ # so we cannot rely on it's sequence
144
+ # user_adapter.find_all(:name => "Fred").should == [user1, user2]
145
+ result = user_adapter.find_all(:name => "Fred")
146
+ result.count.should == 2
147
+ result.should include(user1)
148
+ result.should include(user2)
149
+ end
150
+
151
+ it "should return all models if no conditions passed" do
152
+ user1 = create_model(user_class, :name => "Fred")
153
+ user2 = create_model(user_class, :name => "Fred")
154
+ user3 = create_model(user_class, :name => "Betty")
155
+ # CouchDB generate random UUID, and find first by UUID,
156
+ # so we cannot rely on it's sequence
157
+ # user_adapter.find_all.should == [user1, user2, user3]
158
+ result = user_adapter.find_all
159
+ result.count.should == 3
160
+ result.should include(user1)
161
+ result.should include(user2)
162
+ result.should include(user3)
163
+ end
164
+
165
+ it "should return empty array if no conditions match" do
166
+ user_adapter.find_all(:name => "Fred").should == []
167
+ end
168
+
169
+ # associations are not supported
170
+ #it "when conditions contain associated object, should return first model if it exists" do
171
+ # user1, user2 = create_model(user_class), create_model(user_class)
172
+ # note1 = create_model(note_class, :owner => user1)
173
+ # note2 = create_model(note_class, :owner => user2)
174
+ # note_adapter.find_all(:owner => user2).should == [note2]
175
+ #end
176
+ end
177
+
178
+ describe "(:order => <order array>)" do
179
+ it "should return all models in specified order" do
180
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
181
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
182
+ user3 = create_model(user_class, :name => "Betty", :rating => 1)
183
+ user_adapter.find_all(:order => [:name, [:rating, :desc]]).should == [user3, user2, user1]
184
+ end
185
+ end
186
+
187
+ describe "(:conditions => <conditions hash>, :order => <order array>)" do
188
+ it "should return only models matching conditions, in specified order" do
189
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
190
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
191
+ user3 = create_model(user_class, :name => "Betty", :rating => 1)
192
+ user_adapter.find_all(:conditions => {:name => "Fred"}, :order => [:rating, :desc]).should == [user2, user1]
193
+ end
194
+ end
195
+
196
+ describe "(:limit => <number of items>)" do
197
+ it "should return a limited set of matching models" do
198
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
199
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
200
+ user3 = create_model(user_class, :name => "Betty", :rating => 1)
201
+ # CouchDB generate random UUID, and find first by UUID,
202
+ # so we cannot rely on it's sequence
203
+ #user_adapter.find_all(:limit => 1).should == [user1]
204
+ #user_adapter.find_all(:limit => 2).should == [user1, user2]
205
+ user_adapter.find_all(:limit => 1).count.should == 1
206
+ user_adapter.find_all(:limit => 2).count.should == 2
207
+ end
208
+ end
209
+
210
+ describe "(:offset => <offset number>) with limit (as DataMapper doesn't allow offset on its own)" do
211
+ it "should return an offset set of matching models" do
212
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
213
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
214
+ user3 = create_model(user_class, :name => "Betty", :rating => 1)
215
+ # CouchDB generate random UUID, and find first by UUID,
216
+ # so we cannot rely on it's sequence
217
+ # user_adapter.find_all(:limit => 3, :offset => 0).should == [user1, user2, user3]
218
+ # user_adapter.find_all(:limit => 3, :offset => 1).should == [user2, user3]
219
+ # user_adapter.find_all(:limit => 1, :offset => 1).should == [user2]
220
+ user_adapter.find_all(:limit => 3, :offset => 0).count.should == 3
221
+ user_adapter.find_all(:limit => 3, :offset => 1).count.should == 2
222
+ user_adapter.find_all(:limit => 1, :offset => 1).count.should == 1
223
+ end
224
+ end
225
+ end
226
+
227
+ describe "#create!(attributes)" do
228
+ it "should create a model with the passed attributes" do
229
+ user = user_adapter.create!(:name => "Fred")
230
+ reload_model(user).name.should == "Fred"
231
+ end
232
+
233
+ # couchrest_model will not raise error when attributes
234
+ # do not match properties
235
+ #it "should raise error when create fails" do
236
+ # lambda { user_adapter.create!(:user => create_model(note_class)) }.should raise_error
237
+ #end
238
+
239
+ # associations are not supported
240
+ #it "when attributes contain an associated object, should create a model with the attributes" do
241
+ # user = create_model(user_class)
242
+ # note = note_adapter.create!(:owner => user)
243
+ # reload_model(note).owner.should == user
244
+ #end
245
+
246
+ # associations are not supported
247
+ #it "when attributes contain an has_many assoc, should create a model with the attributes" do
248
+ # notes = [create_model(note_class), create_model(note_class)]
249
+ # user = user_adapter.create!(:notes => notes)
250
+ # reload_model(user).notes.should == notes
251
+ #end
252
+ end
253
+
254
+ describe "#destroy(instance)" do
255
+ it "should destroy the instance if it exists" do
256
+ user = create_model(user_class)
257
+ user_adapter.destroy(user).should == true
258
+ user_adapter.get(user.id).should be_nil
259
+ end
260
+
261
+ it "should return nil if passed with an invalid instance" do
262
+ user_adapter.destroy("nonexistent instance").should be_nil
263
+ end
264
+
265
+ it "should not destroy the instance if it doesn't match the model class" do
266
+ user = create_model(user_class)
267
+ note_adapter.destroy(user).should be_nil
268
+ user_adapter.get(user.id).should == user
269
+ end
270
+ end
271
+ end
272
+ end
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
3
+
4
+ require 'couchrest_model'
5
+ require 'orm_adapter'
6
+ require 'orm_adapter_couchrest_model'
7
+
8
+ RSpec.configure do |config|
9
+ config.treat_symbols_as_metadata_keys_with_true_values = true
10
+ config.run_all_when_everything_filtered = true
11
+ config.filter_run :focus
12
+
13
+ config.order = 'random'
14
+ end
metadata ADDED
@@ -0,0 +1,163 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: orm_adapter_couchrest_model
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - lainuo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-10-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activemodel
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 3.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.0.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: orm_adapter
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: couchrest_model
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - '='
52
+ - !ruby/object:Gem::Version
53
+ version: 2.0.0.beta2
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.0.0.beta2
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 1.0.0
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.0
78
+ - !ruby/object:Gem::Dependency
79
+ name: rake
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: 0.8.7
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 0.8.7
94
+ - !ruby/object:Gem::Dependency
95
+ name: rspec
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: 2.4.0
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 2.4.0
110
+ description: ORM adapter for couchrest_model
111
+ email:
112
+ - winfield301@gmail.com
113
+ executables: []
114
+ extensions: []
115
+ extra_rdoc_files: []
116
+ files:
117
+ - .gitignore
118
+ - .rspec
119
+ - Gemfile
120
+ - LICENSE
121
+ - README.md
122
+ - Rakefile
123
+ - lib/orm_adapter_couchrest_model.rb
124
+ - lib/orm_adapter_couchrest_model/couchrest_model.rb
125
+ - lib/orm_adapter_couchrest_model/version.rb
126
+ - orm_adapter_couchrest_model.gemspec
127
+ - spec/couchrest_model_spec.rb
128
+ - spec/example_app_shared.rb
129
+ - spec/spec_helper.rb
130
+ homepage: https://github.com/winfield/orm_adapter_couchrest_model
131
+ licenses: []
132
+ post_install_message:
133
+ rdoc_options: []
134
+ require_paths:
135
+ - lib
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ segments:
143
+ - 0
144
+ hash: 3466702076077206945
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ segments:
152
+ - 0
153
+ hash: 3466702076077206945
154
+ requirements: []
155
+ rubyforge_project: orm_adapter_couchrest_model
156
+ rubygems_version: 1.8.24
157
+ signing_key:
158
+ specification_version: 3
159
+ summary: ORM adapter for couchrest_model
160
+ test_files:
161
+ - spec/couchrest_model_spec.rb
162
+ - spec/example_app_shared.rb
163
+ - spec/spec_helper.rb