ampere 1.1.0 → 1.1.1
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/Gemfile +3 -1
- data/Gemfile.lock +10 -1
- data/README.md +19 -0
- data/VERSION +1 -1
- data/ampere.gemspec +12 -5
- data/lib/ampere.rb +2 -0
- data/lib/ampere/model.rb +2 -0
- data/spec/models/validations_spec.rb +41 -0
- metadata +43 -20
data/Gemfile
CHANGED
@@ -3,6 +3,8 @@ source "http://rubygems.org"
|
|
3
3
|
# Example:
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
5
|
|
6
|
+
gem 'activesupport'
|
7
|
+
gem 'activemodel'
|
6
8
|
gem 'redis'
|
7
9
|
|
8
10
|
# Add dependencies to develop your gem here.
|
@@ -10,7 +12,7 @@ gem 'redis'
|
|
10
12
|
group :development do
|
11
13
|
gem "shoulda", ">= 0"
|
12
14
|
gem "cucumber", ">= 0"
|
13
|
-
gem "bundler", "
|
15
|
+
gem "bundler", ">= 1.0.0"
|
14
16
|
gem "jeweler", "~> 1.6.4"
|
15
17
|
gem 'simplecov', :require => false, :group => :test
|
16
18
|
gem "rspec"
|
data/Gemfile.lock
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
activemodel (3.2.3)
|
5
|
+
activesupport (= 3.2.3)
|
6
|
+
builder (~> 3.0.0)
|
7
|
+
activesupport (3.2.3)
|
8
|
+
i18n (~> 0.6)
|
9
|
+
multi_json (~> 1.0)
|
4
10
|
builder (3.0.0)
|
5
11
|
cucumber (1.1.3)
|
6
12
|
builder (>= 2.1.2)
|
@@ -12,6 +18,7 @@ GEM
|
|
12
18
|
gherkin (2.6.8)
|
13
19
|
json (>= 1.4.6)
|
14
20
|
git (1.2.5)
|
21
|
+
i18n (0.6.0)
|
15
22
|
jeweler (1.6.4)
|
16
23
|
bundler (~> 1.0)
|
17
24
|
git (>= 1.2.5)
|
@@ -41,7 +48,9 @@ PLATFORMS
|
|
41
48
|
ruby
|
42
49
|
|
43
50
|
DEPENDENCIES
|
44
|
-
|
51
|
+
activemodel
|
52
|
+
activesupport
|
53
|
+
bundler (>= 1.0.0)
|
45
54
|
cucumber
|
46
55
|
jeweler (~> 1.6.4)
|
47
56
|
rdoc
|
data/README.md
CHANGED
@@ -93,6 +93,25 @@ individual indices, which will always run faster than queries on unindexed field
|
|
93
93
|
_**Warning:**_ If you query on an un-indexed field, the returned result set will not be
|
94
94
|
evaluated lazily!
|
95
95
|
|
96
|
+
### Validations
|
97
|
+
|
98
|
+
You can now add validations to your Ampere models thanks to the magic of ActiveModel!
|
99
|
+
|
100
|
+
class Student
|
101
|
+
include Ampere::Model
|
102
|
+
|
103
|
+
field :last_name
|
104
|
+
field :first_name
|
105
|
+
field :student_id_number
|
106
|
+
|
107
|
+
index [:last_name, :first_name]
|
108
|
+
|
109
|
+
validates_presence_of :last_name
|
110
|
+
validates_format_of :student_id_number, :with => /\A[0-9]{10}\Z/
|
111
|
+
end
|
112
|
+
|
113
|
+
It's that easy!
|
114
|
+
|
96
115
|
## Contributing to ampere
|
97
116
|
|
98
117
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.1
|
data/ampere.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "ampere"
|
8
|
-
s.version = "1.1.
|
8
|
+
s.version = "1.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Max Thom Stahl"]
|
12
|
-
s.date = "2012-05-
|
12
|
+
s.date = "2012-05-12"
|
13
13
|
s.description = "An ActiveRecord/Mongoid-esque object model for the Redis key/value data store."
|
14
14
|
s.email = "max@villainousindustri.es"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
|
|
40
40
|
"spec/models/relationships/has_many_spec.rb",
|
41
41
|
"spec/models/relationships/has_one_spec.rb",
|
42
42
|
"spec/models/updates_spec.rb",
|
43
|
+
"spec/models/validations_spec.rb",
|
43
44
|
"spec/module/ampere_spec.rb",
|
44
45
|
"spec/module/collections_ennumerable_spec.rb",
|
45
46
|
"spec/module/collections_spec.rb",
|
@@ -57,29 +58,35 @@ Gem::Specification.new do |s|
|
|
57
58
|
s.specification_version = 3
|
58
59
|
|
59
60
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
61
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
62
|
+
s.add_runtime_dependency(%q<activemodel>, [">= 0"])
|
60
63
|
s.add_runtime_dependency(%q<redis>, [">= 0"])
|
61
64
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
62
65
|
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
63
|
-
s.add_development_dependency(%q<bundler>, ["
|
66
|
+
s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
|
64
67
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
65
68
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
66
69
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
67
70
|
s.add_development_dependency(%q<rdoc>, [">= 0"])
|
68
71
|
else
|
72
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
73
|
+
s.add_dependency(%q<activemodel>, [">= 0"])
|
69
74
|
s.add_dependency(%q<redis>, [">= 0"])
|
70
75
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
71
76
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
72
|
-
s.add_dependency(%q<bundler>, ["
|
77
|
+
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
73
78
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
74
79
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
75
80
|
s.add_dependency(%q<rspec>, [">= 0"])
|
76
81
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
77
82
|
end
|
78
83
|
else
|
84
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
85
|
+
s.add_dependency(%q<activemodel>, [">= 0"])
|
79
86
|
s.add_dependency(%q<redis>, [">= 0"])
|
80
87
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
81
88
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
82
|
-
s.add_dependency(%q<bundler>, ["
|
89
|
+
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
83
90
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
84
91
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
85
92
|
s.add_dependency(%q<rspec>, [">= 0"])
|
data/lib/ampere.rb
CHANGED
data/lib/ampere/model.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
|
+
|
3
|
+
describe 'Validations', :validations => true do
|
4
|
+
before :all do
|
5
|
+
class Person
|
6
|
+
include Ampere::Model
|
7
|
+
|
8
|
+
field :first_name
|
9
|
+
field :last_name
|
10
|
+
field :email
|
11
|
+
|
12
|
+
validates_presence_of :last_name
|
13
|
+
validates_format_of :email, :with => /\A\w+@\w+\.com\Z/i
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should validate presence of items' do
|
19
|
+
alice = Person.new :first_name => 'Alice',
|
20
|
+
:last_name => 'Steel',
|
21
|
+
:email => 'alice@steel.com'
|
22
|
+
bob = Person.new :first_name => 'Bob',
|
23
|
+
:email => 'bob@bob.com'
|
24
|
+
alice.should be_valid
|
25
|
+
alice.errors.should be_empty
|
26
|
+
bob.should be_invalid
|
27
|
+
bob.errors.should_not be_empty
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should validate format of items' do
|
31
|
+
charlie = Person.new :first_name => 'Charlie',
|
32
|
+
:last_name => 'Steel',
|
33
|
+
:email => 'c h a r l i e @ charlie .com'
|
34
|
+
charlie.should_not be_valid
|
35
|
+
end
|
36
|
+
|
37
|
+
# Since this is accomplished by including a module, what is being tested here
|
38
|
+
# is that the module got included correctly and works. For testing of all the
|
39
|
+
# other kinds of validations, run the tests for ActiveModel::Validations.
|
40
|
+
end
|
41
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ampere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,33 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activesupport
|
16
|
+
requirement: &2166309900 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2166309900
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activemodel
|
27
|
+
requirement: &2166309360 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2166309360
|
14
36
|
- !ruby/object:Gem::Dependency
|
15
37
|
name: redis
|
16
|
-
requirement: &
|
38
|
+
requirement: &2166308860 !ruby/object:Gem::Requirement
|
17
39
|
none: false
|
18
40
|
requirements:
|
19
41
|
- - ! '>='
|
@@ -21,10 +43,10 @@ dependencies:
|
|
21
43
|
version: '0'
|
22
44
|
type: :runtime
|
23
45
|
prerelease: false
|
24
|
-
version_requirements: *
|
46
|
+
version_requirements: *2166308860
|
25
47
|
- !ruby/object:Gem::Dependency
|
26
48
|
name: shoulda
|
27
|
-
requirement: &
|
49
|
+
requirement: &2166308340 !ruby/object:Gem::Requirement
|
28
50
|
none: false
|
29
51
|
requirements:
|
30
52
|
- - ! '>='
|
@@ -32,10 +54,10 @@ dependencies:
|
|
32
54
|
version: '0'
|
33
55
|
type: :development
|
34
56
|
prerelease: false
|
35
|
-
version_requirements: *
|
57
|
+
version_requirements: *2166308340
|
36
58
|
- !ruby/object:Gem::Dependency
|
37
59
|
name: cucumber
|
38
|
-
requirement: &
|
60
|
+
requirement: &2166307820 !ruby/object:Gem::Requirement
|
39
61
|
none: false
|
40
62
|
requirements:
|
41
63
|
- - ! '>='
|
@@ -43,21 +65,21 @@ dependencies:
|
|
43
65
|
version: '0'
|
44
66
|
type: :development
|
45
67
|
prerelease: false
|
46
|
-
version_requirements: *
|
68
|
+
version_requirements: *2166307820
|
47
69
|
- !ruby/object:Gem::Dependency
|
48
70
|
name: bundler
|
49
|
-
requirement: &
|
71
|
+
requirement: &2166307260 !ruby/object:Gem::Requirement
|
50
72
|
none: false
|
51
73
|
requirements:
|
52
|
-
- -
|
74
|
+
- - ! '>='
|
53
75
|
- !ruby/object:Gem::Version
|
54
76
|
version: 1.0.0
|
55
77
|
type: :development
|
56
78
|
prerelease: false
|
57
|
-
version_requirements: *
|
79
|
+
version_requirements: *2166307260
|
58
80
|
- !ruby/object:Gem::Dependency
|
59
81
|
name: jeweler
|
60
|
-
requirement: &
|
82
|
+
requirement: &2166306720 !ruby/object:Gem::Requirement
|
61
83
|
none: false
|
62
84
|
requirements:
|
63
85
|
- - ~>
|
@@ -65,10 +87,10 @@ dependencies:
|
|
65
87
|
version: 1.6.4
|
66
88
|
type: :development
|
67
89
|
prerelease: false
|
68
|
-
version_requirements: *
|
90
|
+
version_requirements: *2166306720
|
69
91
|
- !ruby/object:Gem::Dependency
|
70
92
|
name: simplecov
|
71
|
-
requirement: &
|
93
|
+
requirement: &2166306160 !ruby/object:Gem::Requirement
|
72
94
|
none: false
|
73
95
|
requirements:
|
74
96
|
- - ! '>='
|
@@ -76,10 +98,10 @@ dependencies:
|
|
76
98
|
version: '0'
|
77
99
|
type: :development
|
78
100
|
prerelease: false
|
79
|
-
version_requirements: *
|
101
|
+
version_requirements: *2166306160
|
80
102
|
- !ruby/object:Gem::Dependency
|
81
103
|
name: rspec
|
82
|
-
requirement: &
|
104
|
+
requirement: &2166305600 !ruby/object:Gem::Requirement
|
83
105
|
none: false
|
84
106
|
requirements:
|
85
107
|
- - ! '>='
|
@@ -87,10 +109,10 @@ dependencies:
|
|
87
109
|
version: '0'
|
88
110
|
type: :development
|
89
111
|
prerelease: false
|
90
|
-
version_requirements: *
|
112
|
+
version_requirements: *2166305600
|
91
113
|
- !ruby/object:Gem::Dependency
|
92
114
|
name: rdoc
|
93
|
-
requirement: &
|
115
|
+
requirement: &2166305100 !ruby/object:Gem::Requirement
|
94
116
|
none: false
|
95
117
|
requirements:
|
96
118
|
- - ! '>='
|
@@ -98,7 +120,7 @@ dependencies:
|
|
98
120
|
version: '0'
|
99
121
|
type: :development
|
100
122
|
prerelease: false
|
101
|
-
version_requirements: *
|
123
|
+
version_requirements: *2166305100
|
102
124
|
description: An ActiveRecord/Mongoid-esque object model for the Redis key/value data
|
103
125
|
store.
|
104
126
|
email: max@villainousindustri.es
|
@@ -131,6 +153,7 @@ files:
|
|
131
153
|
- spec/models/relationships/has_many_spec.rb
|
132
154
|
- spec/models/relationships/has_one_spec.rb
|
133
155
|
- spec/models/updates_spec.rb
|
156
|
+
- spec/models/validations_spec.rb
|
134
157
|
- spec/module/ampere_spec.rb
|
135
158
|
- spec/module/collections_ennumerable_spec.rb
|
136
159
|
- spec/module/collections_spec.rb
|
@@ -152,7 +175,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
175
|
version: '0'
|
153
176
|
segments:
|
154
177
|
- 0
|
155
|
-
hash:
|
178
|
+
hash: -3870431853959501764
|
156
179
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
180
|
none: false
|
158
181
|
requirements:
|