validates_overlap 0.3.0 → 0.4.0
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.
- checksums.yaml +4 -4
- data/.gitignore +10 -0
- data/Rakefile +7 -20
- data/VERSION +1 -1
- data/lib/validates_overlap/overlap_validator.rb +6 -1
- data/validates_overlap.gemspec +11 -124
- metadata +27 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7a51580e30d5481872fae597e3e0cc31969a94b
|
4
|
+
data.tar.gz: 91e351d1b763236f5e87daf4885438818631d881
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61febadf4ae4e2ccf328f6e91d42f1ced3eab42431f2f44019c6bf85a6197e377add81dee66f673afaeb0219ae081a0d624c78685086f734354136a186f61fce
|
7
|
+
data.tar.gz: 5e0090bb470717b5b8441ad2e0ab50a11fc5976447d384aa9a4e37110c7d884f728da6590ef2d621137426b6bbbeb6c58912629197a5eb56e4e489a2e91a06e5
|
data/.gitignore
ADDED
data/Rakefile
CHANGED
@@ -1,38 +1,25 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler'
|
3
|
+
require 'rake'
|
4
|
+
require 'rspec/core'
|
5
|
+
require 'rspec/core/rake_task'
|
6
|
+
require 'rdoc/task'
|
7
|
+
|
3
8
|
begin
|
9
|
+
Bundler::GemHelper.install_tasks
|
4
10
|
Bundler.setup(:default, :development)
|
5
11
|
rescue Bundler::BundlerError => e
|
6
12
|
$stderr.puts e.message
|
7
13
|
$stderr.puts "Run `bundle install` to install missing gems"
|
8
14
|
exit e.status_code
|
9
15
|
end
|
10
|
-
require 'rake'
|
11
16
|
|
12
|
-
require 'jeweler'
|
13
|
-
Jeweler::Tasks.new do |gem|
|
14
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
-
gem.name = "validates_overlap"
|
16
|
-
gem.homepage = "http://github.com/robinbortlik/validates_overlap"
|
17
|
-
gem.license = "MIT"
|
18
|
-
gem.summary = "This gem helps validate records with time overlap."
|
19
|
-
gem.description = "It can be useful when you you are developing some app where you will work with meetings, events etc."
|
20
|
-
gem.email = "robinbortlik@gmail.com"
|
21
|
-
gem.authors = ["Robin Bortlik"]
|
22
|
-
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
23
|
-
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
24
|
-
end
|
25
|
-
Jeweler::RubygemsDotOrgTasks.new
|
26
|
-
|
27
|
-
require 'rspec/core'
|
28
|
-
require 'rspec/core/rake_task'
|
29
17
|
RSpec::Core::RakeTask.new(:spec)
|
18
|
+
|
30
19
|
task :default => :spec
|
31
20
|
|
32
|
-
require 'rdoc/task'
|
33
21
|
Rake::RDocTask.new do |rdoc|
|
34
22
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
35
|
-
|
36
23
|
rdoc.rdoc_dir = 'rdoc'
|
37
24
|
rdoc.title = "validates_overlap #{version}"
|
38
25
|
rdoc.rdoc_files.include('README*')
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'active_support/i18n'
|
2
|
+
|
2
3
|
I18n.load_path << File.dirname(__FILE__) + '/locale/en.yml'
|
3
4
|
|
4
5
|
class OverlapValidator < ActiveModel::EachValidator
|
@@ -85,15 +86,19 @@ class OverlapValidator < ActiveModel::EachValidator
|
|
85
86
|
raise "Validation of time range must be defined by 2 attributes" unless attributes.size == 2
|
86
87
|
end
|
87
88
|
|
89
|
+
def primary_key(record)
|
90
|
+
record.class.columns.find(&:primary).name
|
91
|
+
end
|
88
92
|
|
89
93
|
# Generate sql condition for time range cross
|
90
94
|
def generate_overlap_sql_conditions(record)
|
91
95
|
starts_at_attr, ends_at_attr = attributes_to_sql(record)
|
92
96
|
main_condition = condition_string(starts_at_attr, ends_at_attr)
|
97
|
+
primary_key_name = primary_key(record)
|
93
98
|
if record.new_record?
|
94
99
|
self.sql_conditions = main_condition
|
95
100
|
else
|
96
|
-
self.sql_conditions = "#{main_condition} AND #{record_table_name(record)}
|
101
|
+
self.sql_conditions = "#{main_condition} AND #{record_table_name(record)}.#{primary_key_name} != #{record.send(primary_key_name)}"
|
97
102
|
end
|
98
103
|
end
|
99
104
|
|
data/validates_overlap.gemspec
CHANGED
@@ -1,140 +1,27 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: validates_overlap 0.3.0 ruby lib
|
6
2
|
|
7
3
|
Gem::Specification.new do |s|
|
8
4
|
s.name = "validates_overlap"
|
9
|
-
s.version = "0.
|
5
|
+
s.version = "0.4.0"
|
10
6
|
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
7
|
s.authors = ["Robin Bortlik"]
|
13
|
-
s.date = "
|
8
|
+
s.date = "2013-10-18"
|
14
9
|
s.description = "It can be useful when you you are developing some app where you will work with meetings, events etc."
|
15
10
|
s.email = "robinbortlik@gmail.com"
|
16
11
|
s.extra_rdoc_files = [
|
17
12
|
"README.md"
|
18
13
|
]
|
19
|
-
s.files
|
20
|
-
"
|
21
|
-
|
22
|
-
"Gemfile.rails30",
|
23
|
-
"Gemfile.rails32",
|
24
|
-
"Gemfile.rails40",
|
25
|
-
"Gemfile.rails41",
|
26
|
-
"MIT-LICENSE",
|
27
|
-
"README.md",
|
28
|
-
"Rakefile",
|
29
|
-
"VERSION",
|
30
|
-
"lib/validates_overlap.rb",
|
31
|
-
"lib/validates_overlap/locale/en.yml",
|
32
|
-
"lib/validates_overlap/overlap_validator.rb",
|
33
|
-
"spec/dummy/Rakefile",
|
34
|
-
"spec/dummy/app/controllers/application_controller.rb",
|
35
|
-
"spec/dummy/app/helpers/application_helper.rb",
|
36
|
-
"spec/dummy/app/models/active_meeting.rb",
|
37
|
-
"spec/dummy/app/models/end_overlap_meeting.rb",
|
38
|
-
"spec/dummy/app/models/meeting.rb",
|
39
|
-
"spec/dummy/app/models/position.rb",
|
40
|
-
"spec/dummy/app/models/start_end_overlap_meeting.rb",
|
41
|
-
"spec/dummy/app/models/start_overlap_meeting.rb",
|
42
|
-
"spec/dummy/app/models/time_slot.rb",
|
43
|
-
"spec/dummy/app/models/user.rb",
|
44
|
-
"spec/dummy/app/models/user_meeting.rb",
|
45
|
-
"spec/dummy/app/views/layouts/application.html.erb",
|
46
|
-
"spec/dummy/config.ru",
|
47
|
-
"spec/dummy/config/application.rb",
|
48
|
-
"spec/dummy/config/boot.rb",
|
49
|
-
"spec/dummy/config/database.yml",
|
50
|
-
"spec/dummy/config/environment.rb",
|
51
|
-
"spec/dummy/config/environments/development.rb",
|
52
|
-
"spec/dummy/config/environments/production.rb",
|
53
|
-
"spec/dummy/config/environments/test.rb",
|
54
|
-
"spec/dummy/config/initializers/backtrace_silencers.rb",
|
55
|
-
"spec/dummy/config/initializers/inflections.rb",
|
56
|
-
"spec/dummy/config/initializers/mime_types.rb",
|
57
|
-
"spec/dummy/config/initializers/secret_token.rb",
|
58
|
-
"spec/dummy/config/initializers/session_store.rb",
|
59
|
-
"spec/dummy/config/locales/en.yml",
|
60
|
-
"spec/dummy/config/routes.rb",
|
61
|
-
"spec/dummy/db/migrate/20110406082020_create_meetings.rb",
|
62
|
-
"spec/dummy/db/migrate/20110406082053_create_users.rb",
|
63
|
-
"spec/dummy/db/migrate/20110407060725_create_user_meetings.rb",
|
64
|
-
"spec/dummy/db/migrate/20120509130956_create_end_overlap_meetings.rb",
|
65
|
-
"spec/dummy/db/migrate/20120509131012_create_start_overlap_meetings.rb",
|
66
|
-
"spec/dummy/db/migrate/20120509131032_create_start_end_overlap_meetings.rb",
|
67
|
-
"spec/dummy/db/migrate/20121207162212_create_time_slot.rb",
|
68
|
-
"spec/dummy/db/migrate/20130826155107_create_active_meetings.rb",
|
69
|
-
"spec/dummy/db/schema.rb",
|
70
|
-
"spec/dummy/public/404.html",
|
71
|
-
"spec/dummy/public/422.html",
|
72
|
-
"spec/dummy/public/500.html",
|
73
|
-
"spec/dummy/public/favicon.ico",
|
74
|
-
"spec/dummy/public/javascripts/application.js",
|
75
|
-
"spec/dummy/public/javascripts/controls.js",
|
76
|
-
"spec/dummy/public/javascripts/dragdrop.js",
|
77
|
-
"spec/dummy/public/javascripts/effects.js",
|
78
|
-
"spec/dummy/public/javascripts/prototype.js",
|
79
|
-
"spec/dummy/public/javascripts/rails.js",
|
80
|
-
"spec/dummy/public/stylesheets/.gitkeep",
|
81
|
-
"spec/dummy/script/rails",
|
82
|
-
"spec/dummy/spec/factories/active_meeting.rb",
|
83
|
-
"spec/dummy/spec/factories/end_overlap_meeting.rb",
|
84
|
-
"spec/dummy/spec/factories/meeting.rb",
|
85
|
-
"spec/dummy/spec/factories/position.rb",
|
86
|
-
"spec/dummy/spec/factories/start_end_overlap_meeting.rb",
|
87
|
-
"spec/dummy/spec/factories/start_overlap_meeting.rb",
|
88
|
-
"spec/dummy/spec/factories/time_slot.rb",
|
89
|
-
"spec/dummy/spec/factories/user.rb",
|
90
|
-
"spec/dummy/spec/factories/user_meeting.rb",
|
91
|
-
"spec/dummy/spec/models/active_meetings_spec.rb",
|
92
|
-
"spec/dummy/spec/models/end_overlap_meeting_spec.rb",
|
93
|
-
"spec/dummy/spec/models/meeting_spec.rb",
|
94
|
-
"spec/dummy/spec/models/position_spec.rb",
|
95
|
-
"spec/dummy/spec/models/start_end_overlap_meeting_spec.rb",
|
96
|
-
"spec/dummy/spec/models/start_overlap_meeting_spec.rb",
|
97
|
-
"spec/dummy/spec/models/time_slot_spec.rb",
|
98
|
-
"spec/dummy/spec/models/user_meeting_spec.rb",
|
99
|
-
"spec/dummy/spec/models/user_spec.rb",
|
100
|
-
"spec/dummy/spec/overlap_validator_spec.rb",
|
101
|
-
"spec/spec_helper.rb",
|
102
|
-
"validates_overlap.gemspec"
|
103
|
-
]
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- spec/dummy/spec/*`.split("\n")
|
16
|
+
|
104
17
|
s.homepage = "http://github.com/robinbortlik/validates_overlap"
|
105
18
|
s.licenses = ["MIT"]
|
106
19
|
s.require_paths = ["lib"]
|
107
|
-
s.rubygems_version = "2.1.11"
|
108
20
|
s.summary = "This gem helps validate records with time overlap."
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
116
|
-
s.add_development_dependency(%q<rspec-rails>, ["~> 2.12"])
|
117
|
-
s.add_development_dependency(%q<factory_girl_rails>, ["~> 4.2"])
|
118
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.2"])
|
119
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8"])
|
120
|
-
s.add_development_dependency(%q<pry>, [">= 0"])
|
121
|
-
else
|
122
|
-
s.add_dependency(%q<validates_overlap>, [">= 0"])
|
123
|
-
s.add_dependency(%q<sqlite3>, [">= 0"])
|
124
|
-
s.add_dependency(%q<rspec-rails>, ["~> 2.12"])
|
125
|
-
s.add_dependency(%q<factory_girl_rails>, ["~> 4.2"])
|
126
|
-
s.add_dependency(%q<bundler>, ["~> 1.2"])
|
127
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8"])
|
128
|
-
s.add_dependency(%q<pry>, [">= 0"])
|
129
|
-
end
|
130
|
-
else
|
131
|
-
s.add_dependency(%q<validates_overlap>, [">= 0"])
|
132
|
-
s.add_dependency(%q<sqlite3>, [">= 0"])
|
133
|
-
s.add_dependency(%q<rspec-rails>, ["~> 2.12"])
|
134
|
-
s.add_dependency(%q<factory_girl_rails>, ["~> 4.2"])
|
135
|
-
s.add_dependency(%q<bundler>, ["~> 1.2"])
|
136
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8"])
|
137
|
-
s.add_dependency(%q<pry>, [">= 0"])
|
138
|
-
end
|
21
|
+
s.add_dependency "rails", ">= 3.0.0"
|
22
|
+
s.add_development_dependency "sqlite3"
|
23
|
+
s.add_development_dependency "rspec-rails", '~>2.12'
|
24
|
+
s.add_development_dependency "factory_girl_rails", '~>4.2'
|
25
|
+
s.add_development_dependency "bundler", '~>1.2'
|
26
|
+
s.add_development_dependency "pry"
|
139
27
|
end
|
140
|
-
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_overlap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robin Bortlik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2013-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sqlite3
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.2'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: jeweler
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ~>
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '1.8'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ~>
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '1.8'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: pry
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,6 +102,7 @@ extensions: []
|
|
116
102
|
extra_rdoc_files:
|
117
103
|
- README.md
|
118
104
|
files:
|
105
|
+
- .gitignore
|
119
106
|
- .travis.yml
|
120
107
|
- Gemfile
|
121
108
|
- Gemfile.rails30
|
@@ -219,8 +206,27 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
206
|
version: '0'
|
220
207
|
requirements: []
|
221
208
|
rubyforge_project:
|
222
|
-
rubygems_version: 2.
|
209
|
+
rubygems_version: 2.2.2
|
223
210
|
signing_key:
|
224
211
|
specification_version: 4
|
225
212
|
summary: This gem helps validate records with time overlap.
|
226
|
-
test_files:
|
213
|
+
test_files:
|
214
|
+
- spec/dummy/spec/factories/active_meeting.rb
|
215
|
+
- spec/dummy/spec/factories/end_overlap_meeting.rb
|
216
|
+
- spec/dummy/spec/factories/meeting.rb
|
217
|
+
- spec/dummy/spec/factories/position.rb
|
218
|
+
- spec/dummy/spec/factories/start_end_overlap_meeting.rb
|
219
|
+
- spec/dummy/spec/factories/start_overlap_meeting.rb
|
220
|
+
- spec/dummy/spec/factories/time_slot.rb
|
221
|
+
- spec/dummy/spec/factories/user.rb
|
222
|
+
- spec/dummy/spec/factories/user_meeting.rb
|
223
|
+
- spec/dummy/spec/models/active_meetings_spec.rb
|
224
|
+
- spec/dummy/spec/models/end_overlap_meeting_spec.rb
|
225
|
+
- spec/dummy/spec/models/meeting_spec.rb
|
226
|
+
- spec/dummy/spec/models/position_spec.rb
|
227
|
+
- spec/dummy/spec/models/start_end_overlap_meeting_spec.rb
|
228
|
+
- spec/dummy/spec/models/start_overlap_meeting_spec.rb
|
229
|
+
- spec/dummy/spec/models/time_slot_spec.rb
|
230
|
+
- spec/dummy/spec/models/user_meeting_spec.rb
|
231
|
+
- spec/dummy/spec/models/user_spec.rb
|
232
|
+
- spec/dummy/spec/overlap_validator_spec.rb
|