gom 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,9 +16,11 @@ At the beginning of your program the storage configuration should be done with t
16
16
  command.
17
17
 
18
18
  GOM::Storage.configure {
19
- name :storage_name
20
- adapter :filesystem
21
- directory "/var/project-name/data"
19
+ storage {
20
+ name :storage_name
21
+ adapter :filesystem
22
+ directory "/var/project-name/data"
23
+ }
22
24
  }
23
25
 
24
26
  Look at the adapter pages to see the adapter-specific configuration values.
@@ -126,13 +128,15 @@ There views simply provides a collection of all object of a specified class. The
126
128
  configuration.
127
129
 
128
130
  GOM::Storage.configure {
129
- name :storage_name
130
- adapter :filesystem
131
- directory "/var/project-name/data"
132
- view {
133
- name :users
134
- type :class
135
- model_class User
131
+ storage {
132
+ name :storage_name
133
+ adapter :filesystem
134
+ directory "/var/project-name/data"
135
+ view {
136
+ name :users
137
+ type :class
138
+ model_class User
139
+ }
136
140
  }
137
141
  }
138
142
 
@@ -148,23 +152,25 @@ array.
148
152
  These views are also defined in the storage configuration.
149
153
 
150
154
  GOM::Storage.configure {
151
- name :storage_name
152
- adapter :couchdb
153
- view {
154
- name :active_user_count
155
- type :map_reduce
156
- map_function """
157
- function(document) {
158
- if (document['model_class'] == 'User' && document['active']) {
159
- emit(document['_id'], 1);
155
+ storage {
156
+ name :storage_name
157
+ adapter :couchdb
158
+ view {
159
+ name :active_user_count
160
+ type :map_reduce
161
+ map_function """
162
+ function(document) {
163
+ if (document['model_class'] == 'User' && document['active']) {
164
+ emit(document['_id'], 1);
165
+ }
166
+ }
167
+ """
168
+ reduce_function """
169
+ function(keys, values, rereduce) {
170
+ return sum(values);
160
171
  }
161
- }
162
- """
163
- reduce_function """
164
- function(keys, values, rereduce) {
165
- return sum(values);
166
- }
167
- """
172
+ """
173
+ }
168
174
  }
169
175
  }
170
176
 
@@ -178,18 +184,20 @@ If no <tt>reduce</tt> method is given, <tt>GOM</tt> will try to map the fetched
178
184
  definition would be...
179
185
 
180
186
  GOM::Storage.configure {
181
- name :storage_name
182
- adapter :couchdb
183
- view {
184
- name :active_users
185
- type :map_reduce
186
- map_function """
187
- function(document) {
188
- if (document['model_class'] == 'User') {
189
- emit(document['_id'], null);
187
+ storage {
188
+ name :storage_name
189
+ adapter :couchdb
190
+ view {
191
+ name :active_users
192
+ type :map_reduce
193
+ map_function """
194
+ function(document) {
195
+ if (document['model_class'] == 'User') {
196
+ emit(document['_id'], null);
197
+ }
190
198
  }
191
- }
192
- """
199
+ """
200
+ }
193
201
  }
194
202
  }
195
203
 
@@ -20,8 +20,14 @@ module GOM::Object
20
20
  id ? id.storage_name : nil
21
21
  end
22
22
 
23
- def self.reference(object)
24
- object.is_a?(GOM::Object::Proxy) ? object : Proxy.new(object)
23
+ def self.reference(value)
24
+ if value.is_a?(GOM::Object::Proxy)
25
+ value
26
+ elsif value.is_a?(String)
27
+ Proxy.new Id.new(value)
28
+ else
29
+ Proxy.new value
30
+ end
25
31
  end
26
32
 
27
33
  end
@@ -64,6 +64,12 @@ describe GOM::Object do
64
64
  proxy.object.should == @object
65
65
  end
66
66
 
67
+ it "should return a proxy for the given id string" do
68
+ proxy = GOM::Object.reference "test:12345"
69
+ proxy.should be_instance_of(GOM::Object::Proxy)
70
+ proxy.id.should == "test:12345"
71
+ end
72
+
67
73
  it "should return the proxy if a proxy is given" do
68
74
  proxy = GOM::Object::reference @proxy
69
75
  proxy.should == @proxy
metadata CHANGED
@@ -1,57 +1,77 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: gom
3
- version: !ruby/object:Gem::Version
4
- version: 0.4.2
3
+ version: !ruby/object:Gem::Version
4
+ hash: 9
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 4
9
+ - 3
10
+ version: 0.4.3
6
11
  platform: ruby
7
- authors:
8
- - Philipp Brüll
12
+ authors:
13
+ - "Philipp Br\xC3\xBCll"
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-08-15 00:00:00.000000000 +02:00
17
+
18
+ date: 2011-10-10 00:00:00 +02:00
13
19
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
16
22
  name: configure
17
- requirement: &19789800 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
18
25
  none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 19
30
+ segments:
31
+ - 0
32
+ - 3
33
+ - 0
22
34
  version: 0.3.0
23
35
  type: :runtime
24
- prerelease: false
25
- version_requirements: *19789800
26
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
27
38
  name: rspec
28
- requirement: &19789280 !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
29
41
  none: false
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '2'
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 7
46
+ segments:
47
+ - 2
48
+ version: "2"
34
49
  type: :development
35
- prerelease: false
36
- version_requirements: *19789280
37
- - !ruby/object:Gem::Dependency
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
38
52
  name: reek
39
- requirement: &19788800 !ruby/object:Gem::Requirement
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
40
55
  none: false
41
- requirements:
42
- - - ! '>='
43
- - !ruby/object:Gem::Version
44
- version: '1.2'
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 11
60
+ segments:
61
+ - 1
62
+ - 2
63
+ version: "1.2"
45
64
  type: :development
46
- prerelease: false
47
- version_requirements: *19788800
65
+ version_requirements: *id003
48
66
  description: Core package of the General Object Mapper.
49
67
  email: b.phifty@gmail.com
50
68
  executables: []
69
+
51
70
  extensions: []
52
- extra_rdoc_files:
71
+
72
+ extra_rdoc_files:
53
73
  - README.rdoc
54
- files:
74
+ files:
55
75
  - README.rdoc
56
76
  - LICENSE
57
77
  - Rakefile
@@ -109,30 +129,38 @@ files:
109
129
  has_rdoc: true
110
130
  homepage: http://github.com/phifty/gom
111
131
  licenses: []
132
+
112
133
  post_install_message:
113
134
  rdoc_options: []
114
- require_paths:
135
+
136
+ require_paths:
115
137
  - lib
116
- required_ruby_version: !ruby/object:Gem::Requirement
138
+ required_ruby_version: !ruby/object:Gem::Requirement
117
139
  none: false
118
- requirements:
119
- - - ! '>='
120
- - !ruby/object:Gem::Version
121
- version: '0'
122
- required_rubygems_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ hash: 3
144
+ segments:
145
+ - 0
146
+ version: "0"
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
148
  none: false
124
- requirements:
125
- - - ! '>='
126
- - !ruby/object:Gem::Version
127
- version: '0'
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ hash: 3
153
+ segments:
154
+ - 0
155
+ version: "0"
128
156
  requirements: []
157
+
129
158
  rubyforge_project: gom
130
159
  rubygems_version: 1.6.2
131
160
  signing_key:
132
161
  specification_version: 3
133
- summary: General Object Mapper - maps any ruby object to different kinds of storage
134
- engines and vice versa.
135
- test_files:
162
+ summary: General Object Mapper - maps any ruby object to different kinds of storage engines and vice versa.
163
+ test_files:
136
164
  - spec/lib/gom/object/cached_builder_spec.rb
137
165
  - spec/lib/gom/object/inspector_spec.rb
138
166
  - spec/lib/gom/object/proxy_spec.rb