perpetuity 0.2 → 0.3

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/spec/test_classes.rb CHANGED
@@ -6,7 +6,7 @@ class User
6
6
  end
7
7
 
8
8
  Perpetuity.generate_mapper_for User do
9
- attribute :name, String
9
+ attribute :name
10
10
  end
11
11
 
12
12
  class Article
@@ -21,13 +21,22 @@ class Article
21
21
  end
22
22
  end
23
23
 
24
- Perpetuity.generate_mapper_for(Article) do
25
- attribute :title, String
26
- attribute :body, String
27
- attribute :author, User
28
- attribute :comments, Array, embedded: true
29
- attribute :published_at, Time
30
- attribute :views, Integer
24
+ class ArticleMapper < Perpetuity::Mapper
25
+ map Article
26
+ attribute :title
27
+ attribute :body
28
+ attribute :author
29
+ attribute :comments
30
+ attribute :published_at
31
+ attribute :views
32
+
33
+ def published
34
+ select { (published_at.not_equal? nil) & (published_at < Time.now) }
35
+ end
36
+
37
+ def unpublished
38
+ select { (published_at == nil) | (published_at > Time.now) }
39
+ end
31
40
  end
32
41
 
33
42
  class Comment
@@ -39,8 +48,8 @@ class Comment
39
48
  end
40
49
 
41
50
  Perpetuity.generate_mapper_for(Comment) do
42
- attribute :body, String
43
- attribute :author, User
51
+ attribute :body
52
+ attribute :author
44
53
  end
45
54
 
46
55
  class Book
@@ -52,7 +61,7 @@ end
52
61
 
53
62
  Perpetuity.generate_mapper_for Book do
54
63
  id { title.gsub(/\W+/, '-').downcase }
55
- attribute :title, String
64
+ attribute :title
56
65
  end
57
66
 
58
67
  class Message
@@ -70,7 +79,7 @@ class Message
70
79
  end
71
80
 
72
81
  Perpetuity.generate_mapper_for Message do
73
- attribute :text, String
82
+ attribute :text
74
83
  end
75
84
 
76
85
  class Topic
@@ -78,8 +87,8 @@ class Topic
78
87
  end
79
88
 
80
89
  Perpetuity.generate_mapper_for(Topic) do
81
- attribute :title, String
82
- attribute :creator, User
90
+ attribute :title
91
+ attribute :creator
83
92
  end
84
93
 
85
94
  class Car
@@ -87,9 +96,9 @@ class Car
87
96
  end
88
97
 
89
98
  Perpetuity.generate_mapper_for(Car) do
90
- attribute :make, String
91
- attribute :model, String
92
- attribute :seats, Integer
99
+ attribute :make
100
+ attribute :model
101
+ attribute :seats
93
102
 
94
103
  validate do
95
104
  present :make
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perpetuity
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-19 00:00:00.000000000 Z
12
+ date: 2013-01-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -43,22 +43,6 @@ dependencies:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
45
  version: 2.8.0
46
- - !ruby/object:Gem::Dependency
47
- name: guard-rspec
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
46
  - !ruby/object:Gem::Dependency
63
47
  name: mongo
64
48
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +50,7 @@ dependencies:
66
50
  requirements:
67
51
  - - ! '>='
68
52
  - !ruby/object:Gem::Version
69
- version: '0'
53
+ version: 1.8.0
70
54
  type: :runtime
71
55
  prerelease: false
72
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,7 +58,7 @@ dependencies:
74
58
  requirements:
75
59
  - - ! '>='
76
60
  - !ruby/object:Gem::Version
77
- version: '0'
61
+ version: 1.8.0
78
62
  - !ruby/object:Gem::Dependency
79
63
  name: bson_ext
80
64
  requirement: !ruby/object:Gem::Requirement
@@ -91,7 +75,7 @@ dependencies:
91
75
  - - ! '>='
92
76
  - !ruby/object:Gem::Version
93
77
  version: '0'
94
- description: Persistence layer Ruby objects
78
+ description: Persistence layer for Ruby objects
95
79
  email:
96
80
  - jgaskins@gmail.com
97
81
  executables: []
@@ -99,11 +83,11 @@ extensions: []
99
83
  extra_rdoc_files: []
100
84
  files:
101
85
  - .gitignore
102
- - .rspec
103
86
  - .rvmrc
104
87
  - .travis.yml
88
+ - CHANGELOG.md
105
89
  - Gemfile
106
- - Guardfile
90
+ - LICENSE
107
91
  - README.md
108
92
  - Rakefile
109
93
  - lib/perpetuity.rb
@@ -112,12 +96,17 @@ files:
112
96
  - lib/perpetuity/config.rb
113
97
  - lib/perpetuity/data_injectable.rb
114
98
  - lib/perpetuity/mapper.rb
99
+ - lib/perpetuity/mapper_registry.rb
115
100
  - lib/perpetuity/mongodb.rb
101
+ - lib/perpetuity/mongodb/index.rb
116
102
  - lib/perpetuity/mongodb/query.rb
117
103
  - lib/perpetuity/mongodb/query_attribute.rb
118
104
  - lib/perpetuity/mongodb/query_expression.rb
105
+ - lib/perpetuity/mongodb/query_intersection.rb
106
+ - lib/perpetuity/mongodb/query_union.rb
119
107
  - lib/perpetuity/reference.rb
120
108
  - lib/perpetuity/retrieval.rb
109
+ - lib/perpetuity/serializer.rb
121
110
  - lib/perpetuity/validations.rb
122
111
  - lib/perpetuity/validations/length.rb
123
112
  - lib/perpetuity/validations/presence.rb
@@ -128,13 +117,18 @@ files:
128
117
  - spec/perpetuity/attribute_spec.rb
129
118
  - spec/perpetuity/config_spec.rb
130
119
  - spec/perpetuity/data_injectable_spec.rb
120
+ - spec/perpetuity/mapper_registry_spec.rb
131
121
  - spec/perpetuity/mapper_spec.rb
122
+ - spec/perpetuity/mongodb/index_spec.rb
132
123
  - spec/perpetuity/mongodb/query_attribute_spec.rb
133
124
  - spec/perpetuity/mongodb/query_expression_spec.rb
125
+ - spec/perpetuity/mongodb/query_intersection_spec.rb
134
126
  - spec/perpetuity/mongodb/query_spec.rb
127
+ - spec/perpetuity/mongodb/query_union_spec.rb
135
128
  - spec/perpetuity/mongodb_spec.rb
136
129
  - spec/perpetuity/reference_spec.rb
137
130
  - spec/perpetuity/retrieval_spec.rb
131
+ - spec/perpetuity/serializer_spec.rb
138
132
  - spec/perpetuity/validations/length_spec.rb
139
133
  - spec/perpetuity/validations/presence_spec.rb
140
134
  - spec/perpetuity/validations_spec.rb
@@ -169,13 +163,18 @@ test_files:
169
163
  - spec/perpetuity/attribute_spec.rb
170
164
  - spec/perpetuity/config_spec.rb
171
165
  - spec/perpetuity/data_injectable_spec.rb
166
+ - spec/perpetuity/mapper_registry_spec.rb
172
167
  - spec/perpetuity/mapper_spec.rb
168
+ - spec/perpetuity/mongodb/index_spec.rb
173
169
  - spec/perpetuity/mongodb/query_attribute_spec.rb
174
170
  - spec/perpetuity/mongodb/query_expression_spec.rb
171
+ - spec/perpetuity/mongodb/query_intersection_spec.rb
175
172
  - spec/perpetuity/mongodb/query_spec.rb
173
+ - spec/perpetuity/mongodb/query_union_spec.rb
176
174
  - spec/perpetuity/mongodb_spec.rb
177
175
  - spec/perpetuity/reference_spec.rb
178
176
  - spec/perpetuity/retrieval_spec.rb
177
+ - spec/perpetuity/serializer_spec.rb
179
178
  - spec/perpetuity/validations/length_spec.rb
180
179
  - spec/perpetuity/validations/presence_spec.rb
181
180
  - spec/perpetuity/validations_spec.rb
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --colour
data/Guardfile DELETED
@@ -1,24 +0,0 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard 'rspec', :version => 2 do
5
- watch(%r{^spec/.+_spec\.rb$})
6
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
- watch('spec/spec_helper.rb') { "spec" }
8
-
9
- # Rails example
10
- watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
- watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
- watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
- watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
14
- watch('config/routes.rb') { "spec/routing" }
15
- watch('app/controllers/application_controller.rb') { "spec/controllers" }
16
-
17
- # Capybara request specs
18
- watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
19
-
20
- # Turnip features and steps
21
- watch(%r{^spec/acceptance/(.+)\.feature$})
22
- watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
23
- end
24
-