validates_overlap 0.0.4 → 0.0.5
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/.travis.yml +5 -0
- data/README.rdoc +2 -0
- data/VERSION +1 -1
- data/lib/validates_overlap/locale/en.yml +4 -0
- data/lib/validates_overlap/overlap_validator.rb +4 -1
- data/spec/dummy/db/schema.rb +7 -6
- data/spec/dummy/spec/models/meeting_spec.rb +1 -14
- data/spec/spec_helper.rb +12 -0
- data/validates_overlap.gemspec +4 -2
- metadata +17 -15
data/README.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'active_support/i18n'
|
2
|
+
I18n.load_path << File.dirname(__FILE__) + '/locale/en.yml'
|
3
|
+
|
1
4
|
class OverlapValidator < ActiveModel::EachValidator
|
2
5
|
|
3
6
|
attr_accessor :sql_conditions
|
@@ -9,7 +12,7 @@ class OverlapValidator < ActiveModel::EachValidator
|
|
9
12
|
end
|
10
13
|
|
11
14
|
def validate(record)
|
12
|
-
record.errors
|
15
|
+
record.errors.add(attributes.first, :overlap) if self.find_crossed(record)
|
13
16
|
end
|
14
17
|
|
15
18
|
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
# This file is auto-generated from the current state of the database. Instead
|
2
3
|
# of editing this file, please use the migrations feature of Active Record to
|
3
4
|
# incrementally modify your database, and then regenerate this schema definition.
|
@@ -15,22 +16,22 @@ ActiveRecord::Schema.define(:version => 20110407060725) do
|
|
15
16
|
create_table "meetings", :force => true do |t|
|
16
17
|
t.date "starts_at"
|
17
18
|
t.date "ends_at"
|
18
|
-
t.datetime "created_at"
|
19
|
-
t.datetime "updated_at"
|
19
|
+
t.datetime "created_at", :null => false
|
20
|
+
t.datetime "updated_at", :null => false
|
20
21
|
end
|
21
22
|
|
22
23
|
create_table "user_meetings", :force => true do |t|
|
23
24
|
t.integer "user_id"
|
24
25
|
t.date "starts_at"
|
25
26
|
t.date "ends_at"
|
26
|
-
t.datetime "created_at"
|
27
|
-
t.datetime "updated_at"
|
27
|
+
t.datetime "created_at", :null => false
|
28
|
+
t.datetime "updated_at", :null => false
|
28
29
|
end
|
29
30
|
|
30
31
|
create_table "users", :force => true do |t|
|
31
32
|
t.string "name"
|
32
|
-
t.datetime "created_at"
|
33
|
-
t.datetime "updated_at"
|
33
|
+
t.datetime "created_at", :null => false
|
34
|
+
t.datetime "updated_at", :null => false
|
34
35
|
end
|
35
36
|
|
36
37
|
end
|
@@ -13,21 +13,8 @@ describe Meeting do
|
|
13
13
|
}.should change(Meeting, :count).by(1)
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
OVERLAP_TIME_RANGES = {
|
18
|
-
"has same starts_at and ends_at" => ['2011-01-05'.to_date, '2011-01-08'.to_date],
|
19
|
-
"starts before starts_at and ends after ends_at" => ['2011-01-04'.to_date, '2011-01-09'.to_date],
|
20
|
-
"starts before starts_at and ends inside" => ['2011-01-04'.to_date, '2011-01-06'.to_date],
|
21
|
-
"starts inside and ends after ends_at" => ['2011-01-06'.to_date, '2011-01-09'.to_date],
|
22
|
-
"starts inside and ends inside" => ['2011-01-06'.to_date, '2011-01-07'.to_date],
|
23
|
-
"starts at same time and ends inside" => ['2011-01-05'.to_date, '2011-01-07'.to_date],
|
24
|
-
"starts inside and ends at same time" => ['2011-01-06'.to_date, '2011-01-08'.to_date],
|
25
|
-
"starts before and ends at time of start" => ['2011-01-03'.to_date, '2011-01-05'.to_date],
|
26
|
-
"starts at time of end and ends after" => ['2011-01-08'.to_date, '2011-01-19'.to_date]
|
27
|
-
}
|
28
|
-
|
29
16
|
context "Validation" do
|
30
|
-
|
17
|
+
|
31
18
|
OVERLAP_TIME_RANGES.each do |description, time_range|
|
32
19
|
it "is not valid if exists meeting which #{description}" do
|
33
20
|
meeting = Factory.build(:meeting, :starts_at => time_range.first, :ends_at => time_range.last)
|
data/spec/spec_helper.rb
CHANGED
@@ -31,3 +31,15 @@ RSpec.configure do |config|
|
|
31
31
|
# == Mock Framework
|
32
32
|
config.mock_with :rspec
|
33
33
|
end
|
34
|
+
|
35
|
+
OVERLAP_TIME_RANGES = {
|
36
|
+
"has same starts_at and ends_at" => ['2011-01-05'.to_date, '2011-01-08'.to_date],
|
37
|
+
"starts before starts_at and ends after ends_at" => ['2011-01-04'.to_date, '2011-01-09'.to_date],
|
38
|
+
"starts before starts_at and ends inside" => ['2011-01-04'.to_date, '2011-01-06'.to_date],
|
39
|
+
"starts inside and ends after ends_at" => ['2011-01-06'.to_date, '2011-01-09'.to_date],
|
40
|
+
"starts inside and ends inside" => ['2011-01-06'.to_date, '2011-01-07'.to_date],
|
41
|
+
"starts at same time and ends inside" => ['2011-01-05'.to_date, '2011-01-07'.to_date],
|
42
|
+
"starts inside and ends at same time" => ['2011-01-06'.to_date, '2011-01-08'.to_date],
|
43
|
+
"starts before and ends at time of start" => ['2011-01-03'.to_date, '2011-01-05'.to_date],
|
44
|
+
"starts at time of end and ends after" => ['2011-01-08'.to_date, '2011-01-19'.to_date]
|
45
|
+
}
|
data/validates_overlap.gemspec
CHANGED
@@ -5,23 +5,25 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "validates_overlap"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Robin Bortlik"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-05-07"
|
13
13
|
s.description = "It can be useful when you you are developing some app where you will work with meetings, events etc."
|
14
14
|
s.email = "robinbortlik@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"README.rdoc"
|
17
17
|
]
|
18
18
|
s.files = [
|
19
|
+
".travis.yml",
|
19
20
|
"Gemfile",
|
20
21
|
"MIT-LICENSE",
|
21
22
|
"README.rdoc",
|
22
23
|
"Rakefile",
|
23
24
|
"VERSION",
|
24
25
|
"lib/validates_overlap.rb",
|
26
|
+
"lib/validates_overlap/locale/en.yml",
|
25
27
|
"lib/validates_overlap/overlap_validator.rb",
|
26
28
|
"spec/dummy/Rakefile",
|
27
29
|
"spec/dummy/app/controllers/application_controller.rb",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_overlap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-05-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70299388963720 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70299388963720
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: sqlite3
|
27
|
-
requirement: &
|
27
|
+
requirement: &70299388985240 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70299388985240
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec-rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &70299388984160 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 2.0.0.beta
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70299388984160
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: factory_girl_rails
|
49
|
-
requirement: &
|
49
|
+
requirement: &70299388983400 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70299388983400
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &70299388982260 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.0.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70299388982260
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: jeweler
|
71
|
-
requirement: &
|
71
|
+
requirement: &70299388981120 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: 1.5.2
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70299388981120
|
80
80
|
description: It can be useful when you you are developing some app where you will
|
81
81
|
work with meetings, events etc.
|
82
82
|
email: robinbortlik@gmail.com
|
@@ -85,12 +85,14 @@ extensions: []
|
|
85
85
|
extra_rdoc_files:
|
86
86
|
- README.rdoc
|
87
87
|
files:
|
88
|
+
- .travis.yml
|
88
89
|
- Gemfile
|
89
90
|
- MIT-LICENSE
|
90
91
|
- README.rdoc
|
91
92
|
- Rakefile
|
92
93
|
- VERSION
|
93
94
|
- lib/validates_overlap.rb
|
95
|
+
- lib/validates_overlap/locale/en.yml
|
94
96
|
- lib/validates_overlap/overlap_validator.rb
|
95
97
|
- spec/dummy/Rakefile
|
96
98
|
- spec/dummy/app/controllers/application_controller.rb
|
@@ -153,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
153
155
|
version: '0'
|
154
156
|
segments:
|
155
157
|
- 0
|
156
|
-
hash:
|
158
|
+
hash: 4277930355415785959
|
157
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
160
|
none: false
|
159
161
|
requirements:
|