Compare commits

...

58 Commits

Author SHA1 Message Date
Adam Meehan
93b8b1a70b v4.1.0 2019-06-11 20:51:42 +10:00
Adam Meehan
e531c8f8ef update changelog 2019-06-11 20:51:34 +10:00
Adam Meehan
658deca1c8 use travis matrix for ruby + rails versions 2019-06-11 20:24:14 +10:00
Adam Meehan
a6d617e77d limit all gemfiles sqlite version 2019-06-11 19:37:18 +10:00
Adam Meehan
101bb5d5f7 limit sqlite3 version 2019-06-11 19:28:02 +10:00
Adam Meehan
5e6e5222dc https on rubygems 2019-06-11 19:25:47 +10:00
Adam Meehan
c81ec5d604 sqlite3 gem issue 2019-06-11 19:13:00 +10:00
Adam Meehan
f3f3d01db7 fix sqlite gem issue 2019-06-11 17:57:38 +10:00
Adam Meehan
acd9fc13e4 add bundle command to travis 2019-06-11 17:24:32 +10:00
Adam Meehan
5743d87bc7 wrangle bundler versions in travis 2019-06-11 17:17:14 +10:00
Adam Meehan
e0790bca9b bump appraisal rails to 4.2.11 2019-06-11 14:51:12 +10:00
Adam Meehan
39f698feb2 bump travis to ruby 2.5.5 2019-06-11 14:50:51 +10:00
Adam Meehan
bd39aef4fb Revert "drop rails 4.0 and 4.1 both EOLed"
This reverts commit a05f091a42.
2019-06-11 14:50:05 +10:00
Adam Meehan
a3431bc91a relax timeliness dependency 2019-06-11 14:42:11 +10:00
Adam Meehan
fda194584a bump timeliness version 2019-02-03 11:57:36 +11:00
Adam Meehan
a05f091a42 drop rails 4.0 and 4.1 both EOLed 2018-05-13 21:30:20 +10:00
Adam Meehan
faf708e3be force nokigiri version up 2018-05-13 21:25:31 +10:00
Adam Meehan
38bb74844d need travis bundler fix 2018-05-13 21:15:11 +10:00
Adam Meehan
e275b63203 Merge branch 'master' of github.com:adzap/validates_timeliness 2018-05-13 21:01:36 +10:00
Adam Meehan
e73e0eb30f change travis command to rspec bin 2018-05-13 21:01:12 +10:00
Adam Meehan
43554d8bf0 Merge pull request #152 from aditya-kapoor/allow-generic-msg
Allow the validator to take in the `message` option too.
2018-05-13 20:50:08 +10:00
Adam Meehan
da473b7eea Update validator.rb
tweak message key lookup
2018-05-13 20:49:25 +10:00
Adam Meehan
fc2af73656 update travis rubies and appraisal rails 2018-05-13 20:46:53 +10:00
Adam Meehan
936c853fdd Merge branch 'master' of github.com:adzap/validates_timeliness 2018-05-13 20:39:32 +10:00
Adam Meehan
f27324a404 relax gemfile gem version 2018-05-13 20:38:23 +10:00
Adam Meehan
4221bf7709 Merge pull request #161 from pedrofurtado/patch-1
Update README.rdoc with the suggestion of a gem with i18n translations
2018-05-13 11:54:55 +10:00
Pedro Felipe de Azevedo Furtado
b51a4544ff Update README.rdoc 2018-05-10 13:12:52 -03:00
pedrofurtado
285bc769ba Update README.rdoc 2017-12-29 13:45:39 -02:00
Adam Meehan
a0f2759c7a Merge pull request #160 from reiz/patch-1
Add license info to the gemspec.
2017-10-03 09:42:27 +11:00
Robert Reiz
cc57b1b758 Add license info to the gemspec. 2017-10-02 16:16:36 +02:00
Adam Meehan
d30cebfc7b Update gemfiles 2017-05-14 20:43:39 +10:00
Adam Meehan
a96c24268d Update travis ruby versions 2017-05-14 20:33:33 +10:00
Adam Meehan
13fcc32a83 Test model had wrong validation method 2017-05-14 20:12:36 +10:00
Adam Meehan
e8a96fe9b5 Set ruby version in gemfile 2017-05-14 20:12:14 +10:00
Adam Meehan
f9009995fc Update rspec and rails versions 2017-05-14 19:44:13 +10:00
Adam Meehan
5419a1cc42 Merge branch 'master' of github.com:adzap/validates_timeliness 2017-05-14 19:43:14 +10:00
Adam Meehan
9dd2e87087 Merge pull request #154 from yxf/master
Fixed version checking of ActiveModel
2017-05-14 19:35:49 +10:00
yxf
8a04deebfa Fixed version checking of ActiveModel 2017-05-14 17:07:24 +08:00
Aditya Kapoor
e9c9914c4f Allow the validator to take in the message option too. This is useful in those scenarios where we have a set of generic keys which we need to show.
This would eliminate the need to keeping multiple copies for the default keys set defined by gem.

    The following seems more apt than the later one:

    ```
    validates_date :start_at, on_or_after: :today, message: 'should not be in past'
    ```

    ```
    validates_date :start_at, on_or_after: :today, on_or_after_message: 'should not be in past'
    ```
2017-03-22 13:21:59 +05:30
Adam Meehan
0219c3850d minimum timeliness 0.3.8 2017-03-07 20:33:46 +11:00
Adam Meehan
35caf3638e Fix undefine_attribute_methods spec 2016-01-07 20:50:17 +11:00
Adam Meehan
153051730b Add latest changes 2016-01-07 08:29:49 +11:00
Adam Meehan
5c1406e9b0 v4.0.2 2016-01-07 08:26:19 +11:00
Adam Meehan
32f92cc885 Set @timeliness_methods_generated = false on undefined 2016-01-07 08:25:09 +11:00
Adam Meehan
cb3ac8d445 v4.0.1 2016-01-06 22:20:44 +11:00
Adam Meehan
4e5f5fa695 Return value if not of known type in type cast 2016-01-06 22:20:24 +11:00
Adam Meehan
321834b5ff Fix thread lock on undefine
Move active model methods into active model ORM module to be included
manually if not using AR or other ORM
2016-01-06 22:18:54 +11:00
Adam Meehan
ff131415f7 Fix shadowing 2016-01-06 16:36:25 +11:00
Adam Meehan
ad43eb31d6 Return date if date type 2016-01-06 16:35:01 +11:00
Adam Meehan
0f782a4ed5 Latest rails gems in appraisals 2015-12-30 12:07:06 +11:00
Adam Meehan
d57c64dcc2 Getting with the RSpec times 2015-12-30 12:06:42 +11:00
Adam Meehan
244f398cc4 travis gem install failure on 2.2.0 trying 2.2.3 2015-12-29 18:02:18 +11:00
Adam Meehan
0feeb746cd Fix zone in test 2015-12-29 17:57:54 +11:00
Adam Meehan
6f23e40c25 Remove ruby 2.0 from travis 2015-12-29 17:51:54 +11:00
Adam Meehan
773e816a4d Use latest rspec 2015-12-29 17:51:42 +11:00
Adam Meehan
80c9df448d v3.x changelog 2015-12-29 16:30:46 +11:00
Adam Meehan
54ae49b8a0 Update changelog 2015-12-29 16:27:59 +11:00
Adam Meehan
2fef0a23d6 v3.0.15 2015-11-10 18:50:02 +11:00
30 changed files with 160 additions and 129 deletions

1
.rspec
View File

@@ -1,3 +1,4 @@
--format documentation
--color
--require spec_helper
--require byebug

View File

@@ -1,17 +1,26 @@
language: ruby
before_install:
- gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
- gem install bundler -v '< 2'
before_script:
- bundle install
cache: bundler
bundler_args: --verbose
gemfile:
- gemfiles/rails_4_0.gemfile
- gemfiles/rails_4_1.gemfile
- gemfiles/rails_4_2.gemfile
matrix:
include:
- rvm: "2.3.7"
gemfile: gemfiles/rails_4_0.gemfile
- rvm: "2.3.7"
gemfile: gemfiles/rails_4_1.gemfile
- rvm: "2.3.7"
gemfile: gemfiles/rails_4_2.gemfile
- rvm: "2.4.6"
gemfile: gemfiles/rails_4_2.gemfile
- rvm: "2.5.5"
gemfile: gemfiles/rails_4_2.gemfile
rvm:
- "2.0.0"
- "2.2.0"
- "2.3.0"
script: 'bundle exec rake'
script: 'bundle exec rspec'
notifications:
email:

View File

@@ -1,11 +1,11 @@
appraise "rails_4_0" do
gem "rails", "~> 4.0.0"
gem "rails", "~> 4.0.13"
end
appraise "rails_4_1" do
gem "rails", "~> 4.1.0"
gem "rails", "~> 4.1.14"
end
appraise "rails_4_2" do
gem "rails", "~> 4.2.0"
end
gem "rails", "~> 4.2.11"
end

View File

@@ -1,3 +1,27 @@
= 4.1.0 [2019-06-11]
* Relaxed Timeliness dependency version to >= 0.3.10 and < 1, which allows
version 0.4 with threadsafety fix for use_us_formats and use_euro_formats
hot switching in a request.
= 4.0.2 [2016-01-07]
* Fix undefine_generated_methods ivar guard setting to false
= 4.0.1 [2016-01-06]
* Fix undefine_generated_methods thread locking bug
* Created an ActiveModel ORM, for manual require if using without any full blown ORM
= 4.0.0 [2015-12-29]
* Extracted mongoid support into https://github.com/adzap/validates_timeliness-mongoid which is broken (not supported anymore).
* Fixed Rails 4.0, 4.1 and 4.2 compatability issues
* Upgrade specs to RSpec 3
* Added travis config
* Huge thanks to @johncarney for keeping it alive with his fork (https://github.com/johncarney/validates_timeliness)
= 3.0.15 [2015-12-29]
* Fixes mongoid 3 support and removes mongoid 2 support(johnnyshields)
* Some documentation/comments tidying
* Some general tidying up
= 3.0.14 [2012-08-23]
* Fix for using validates :timeliness => {} form to correctly add attributes to timeliness validated attributes.

15
Gemfile
View File

@@ -1,16 +1,13 @@
source 'http://rubygems.org'
source 'https://rubygems.org'
gemspec
gem 'rails', '~> 4.0.13'
gem 'rspec', '~> 3.0.0'
gem 'rspec-rails', '~> 3.0.0'
gem 'rake'
gem 'rails', '~> 4.2.11.1'
gem 'rspec'
gem 'rspec-rails', '~> 3.7'
gem 'timecop'
gem 'byebug'
gem 'appraisal'
gem 'sqlite3'
gem 'nokogiri', '1.6.7'
group :active_record do
gem 'sqlite3-ruby', :require => 'sqlite3'
end
gem 'nokogiri', '~> 1.8'

View File

@@ -22,7 +22,7 @@ If you a looking for the old version for Rails 3.x go here[http://github.com/adz
* Adds extensions to fix Rails date/time select issues (See Extensions)
* Supports I18n for the error messages
* Supports I18n for the error messages. For multi-language support try {timeliness-i18n gem}[https://github.com/pedrofurtado/timeliness-i18n].
* Supports all the Rubies (that any sane person would be using in production).

View File

@@ -1,19 +1,14 @@
# This file was generated by Appraisal
source "http://rubygems.org"
source "https://rubygems.org"
gem "rails", "~> 4.0.0"
gem "rspec", "~> 3.0.0"
gem "rspec-rails", "~> 3.0.0"
gem "rails", "~> 4.0.13"
gem "rspec", "~> 3.6.0"
gem "rspec-rails", "~> 3.6.0"
gem "timecop"
gem "rspec_tag_matchers"
gem "byebug"
gem "appraisal"
gem "sqlite3"
gem "sqlite3", "~> 1.3.0"
gem "nokogiri", "1.6.7"
group :active_record do
gem "sqlite3-ruby", :require => "sqlite3"
end
gemspec :path => "../"
gemspec path: "../"

View File

@@ -1,19 +1,14 @@
# This file was generated by Appraisal
source "http://rubygems.org"
source "https://rubygems.org"
gem "rails", "~> 4.1.0"
gem "rspec", "~> 3.0.0"
gem "rspec-rails", "~> 3.0.0"
gem "rails", "~> 4.1.14"
gem "rspec", "~> 3.6.0"
gem "rspec-rails", "~> 3.6.0"
gem "timecop"
gem "rspec_tag_matchers"
gem "byebug"
gem "appraisal"
gem "sqlite3"
gem "sqlite3", "~> 1.3.0"
gem "nokogiri", "1.6.7"
group :active_record do
gem "sqlite3-ruby", :require => "sqlite3"
end
gemspec :path => "../"
gemspec path: "../"

View File

@@ -1,19 +1,14 @@
# This file was generated by Appraisal
source "http://rubygems.org"
source "https://rubygems.org"
gem "rails", "~> 4.2.0"
gem "rspec", "~> 3.0.0"
gem "rspec-rails", "~> 3.0.0"
gem "rails", "~> 4.2.8"
gem "rspec", "~> 3.6.0"
gem "rspec-rails", "~> 3.6.0"
gem "timecop"
gem "rspec_tag_matchers"
gem "byebug"
gem "appraisal"
gem "sqlite3"
gem "sqlite3", "~> 1.3.0"
gem "nokogiri", "1.6.7"
group :active_record do
gem "sqlite3-ruby", :require => "sqlite3"
end
gemspec :path => "../"
gemspec path: "../"

View File

@@ -33,15 +33,9 @@ module ValidatesTimeliness
}.tap { |mod| include mod }
end
def undefine_attribute_methods
super.tap { undefine_timeliness_attribute_methods }
end
def undefine_timeliness_attribute_methods
generated_timeliness_methods.synchronize do
generated_timeliness_methods.module_eval do
instance_methods.each { |m| undef_method(m) }
end
generated_timeliness_methods.module_eval do
instance_methods.each { |m| undef_method(m) }
end
end
@@ -74,8 +68,10 @@ module ValidatesTimeliness
@timeliness_cache[attr_name] = value
if ValidatesTimeliness.use_plugin_parser
type = self.class.timeliness_attribute_type(attr_name)
timezone = :current if self.class.timeliness_attribute_timezone_aware?(attr_name)
value = Timeliness::Parser.parse(value, self.class.timeliness_attribute_type(attr_name), :zone => timezone)
value = Timeliness::Parser.parse(value, type, :zone => timezone)
value = value.to_date if value && type == :date
end
@attributes[attr_name] = value

View File

@@ -12,6 +12,8 @@ module ValidatesTimeliness
value.to_date
when :datetime
value.is_a?(Time) ? value : value.to_time
else
value
end
if options[:ignore_usec] && value.is_a?(Time)
Timeliness::Parser.make_time(Array(value).reverse[4..9], (:current if @timezone_aware))

View File

@@ -0,0 +1,20 @@
module ValidatesTimeliness
module ORM
module ActiveModel
extend ActiveSupport::Concern
module ClassMethods
public
def define_attribute_methods(*attr_names)
super.tap { define_timeliness_methods}
end
def undefine_attribute_methods
super.tap { undefine_timeliness_attribute_methods }
end
end
end
end
end

View File

@@ -14,26 +14,26 @@ module ValidatesTimeliness
timeliness_column_for_attribute(attr_name).type
end
if ActiveModel.version >= Gem::Version.new('4.2')
if ::ActiveModel.version >= Gem::Version.new('4.2')
def timeliness_column_for_attribute(attr_name)
columns_hash.fetch(attr_name.to_s) do |attr_name|
validation_type = _validators[attr_name.to_sym].find {|v| v.kind == :timeliness }.type.to_s
::ActiveRecord::ConnectionAdapters::Column.new(attr_name, nil, lookup_cast_type(validation_type), validation_type)
columns_hash.fetch(attr_name.to_s) do |key|
validation_type = _validators[key.to_sym].find {|v| v.kind == :timeliness }.type.to_s
::ActiveRecord::ConnectionAdapters::Column.new(key, nil, lookup_cast_type(validation_type), validation_type)
end
end
def lookup_cast_type(sql_type)
case sql_type
when 'datetime' then ::ActiveRecord::Type::DateTime.new
when 'date' then ::ActiveRecord::Type::Date.new
when 'time' then ::ActiveRecord::Type::Time.new
when 'datetime' then ::ActiveRecord::Type::DateTime.new
when 'date' then ::ActiveRecord::Type::Date.new
when 'time' then ::ActiveRecord::Type::Time.new
end
end
else
def timeliness_column_for_attribute(attr_name)
columns_hash.fetch(attr_name.to_s) do |attr_name|
validation_type = _validators[attr_name.to_sym].find {|v| v.kind == :timeliness }.type.to_s
::ActiveRecord::ConnectionAdapters::Column.new(attr_name, nil, validation_type)
columns_hash.fetch(attr_name.to_s) do |key|
validation_type = _validators[key.to_sym].find {|v| v.kind == :timeliness }.type.to_s
::ActiveRecord::ConnectionAdapters::Column.new(key, nil, validation_type)
end
end
end
@@ -53,7 +53,7 @@ module ValidatesTimeliness
generated_timeliness_methods.synchronize do
return unless @timeliness_methods_generated
undefine_timeliness_attribute_methods
@timeliness_methods_generated = true
@timeliness_methods_generated = false
end
}
end

View File

@@ -56,7 +56,7 @@ module ValidatesTimeliness
end
# Rails 4.0 compatibility for old #setup method with class as arg
if ActiveModel.version <= Gem::Version.new('4.1')
if Gem::Version.new(ActiveModel::VERSION::STRING) <= Gem::Version.new('4.1')
alias_method(:setup, :setup_timeliness_validated_attributes)
end
@@ -91,7 +91,7 @@ module ValidatesTimeliness
def add_error(record, attr_name, message, value=nil)
value = format_error_value(value) if value
message_options = { :message => options[:"#{message}_message"], :restriction => value }
message_options = { :message => options.fetch(:"#{message}_message", options[:message]), :restriction => value }
record.errors.add(attr_name, message, message_options)
end

View File

@@ -1,3 +1,3 @@
module ValidatesTimeliness
VERSION = '4.0.0'
VERSION = '4.1.0'
end

View File

@@ -7,6 +7,7 @@ require 'action_view'
require 'timecop'
require 'validates_timeliness'
require 'validates_timeliness/orm/active_model'
require 'support/test_model'
require 'support/model_helpers'
@@ -30,14 +31,9 @@ I18n.available_locales = ['en', 'es']
module TestModelShim
extend ActiveSupport::Concern
include ValidatesTimeliness::AttributeMethods
include ValidatesTimeliness::ORM::ActiveModel
module ClassMethods
# Hook method for attribute method generation
def define_attribute_methods(attr_names)
super
define_timeliness_methods
end
# Hook into native time zone handling check, if any
def timeliness_attribute_timezone_aware?(attr_name)
false
@@ -75,8 +71,8 @@ end
class Employee < ActiveRecord::Base
attr_accessor :redefined_birth_date_called
validates_date :birth_date, :allow_nil => true
validates_date :birth_time, :allow_nil => true
validates_date :birth_datetime, :allow_nil => true
validates_time :birth_time, :allow_nil => true
validates_datetime :birth_datetime, :allow_nil => true
def birth_date=(value)
self.redefined_birth_date_called = true

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness::AttributeMethods do
RSpec.describe ValidatesTimeliness::AttributeMethods do
it 'should define read_timeliness_attribute_before_type_cast instance method' do
expect(PersonWithShim.new).to respond_to(:read_timeliness_attribute_before_type_cast)
end

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness::Conversion do
RSpec.describe ValidatesTimeliness::Conversion do
include ValidatesTimeliness::Conversion
let(:options) { Hash.new }
@@ -176,7 +174,7 @@ describe ValidatesTimeliness::Conversion do
it 'should return Time value for attribute method symbol which returns string time value' do
value = '2010-01-01 12:00:00'
person.birth_time = value
expect(evaluate_option_value(:birth_time, person)).to eq(Time.zone.local(2010,1,1,12,0,0))
expect(evaluate_option_value(:birth_time, person)).to eq(Time.local(2010,1,1,12,0,0))
end
context "restriction shorthand" do

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe 'ValidatesTimeliness::Extensions::DateTimeSelect' do
RSpec.describe 'ValidatesTimeliness::Extensions::DateTimeSelect' do
include ActionView::Helpers::DateHelper
attr_reader :person, :params

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe 'ValidatesTimeliness::Extensions::MultiparameterHandler' do
RSpec.describe 'ValidatesTimeliness::Extensions::MultiparameterHandler' do
context "time column" do
it 'should assign a string value for invalid date portion' do

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness, 'HelperMethods' do
RSpec.describe ValidatesTimeliness, 'HelperMethods' do
let(:record) { Person.new }
it 'should define class validation methods' do

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness, 'ActiveRecord' do
RSpec.describe ValidatesTimeliness, 'ActiveRecord' do
context "validation methods" do
let(:record) { Employee.new }
@@ -241,4 +239,16 @@ describe ValidatesTimeliness, 'ActiveRecord' do
expect(Employee.define_attribute_methods).to be_falsey
end
end
context "undefine_attribute_methods" do
it "returns remove attribute methods that have already been generated" do
Employee.define_attribute_methods
expect(Employee.instance_methods).to include(:birth_datetime)
Employee.undefine_attribute_methods
expect(Employee.instance_methods).to_not include(:birth_datetime)
end
end
end

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness::Validator, ":after option" do
RSpec.describe ValidatesTimeliness::Validator, ":after option" do
describe "for date type" do
before do
Person.validates_date :birth_date, :after => Date.new(2010, 1, 1)

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness::Validator, ":before option" do
RSpec.describe ValidatesTimeliness::Validator, ":before option" do
describe "for date type" do
before do
Person.validates_date :birth_date, :before => Date.new(2010, 1, 1)

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness::Validator, ":is_at option" do
RSpec.describe ValidatesTimeliness::Validator, ":is_at option" do
before do
Timecop.freeze(Time.local(2010, 1, 1, 0, 0, 0))
end

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness::Validator, ":on_or_after option" do
RSpec.describe ValidatesTimeliness::Validator, ":on_or_after option" do
describe "for date type" do
before do
Person.validates_date :birth_date, :on_or_after => Date.new(2010, 1, 1)

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness::Validator, ":on_or_before option" do
RSpec.describe ValidatesTimeliness::Validator, ":on_or_before option" do
describe "for date type" do
before do
Person.validates_date :birth_date, :on_or_before => Date.new(2010, 1, 1)

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness::Validator do
RSpec.describe ValidatesTimeliness::Validator do
before do
Timecop.freeze(Time.local(2010, 1, 1, 0, 0, 0))
end
@@ -89,6 +87,20 @@ describe ValidatesTimeliness::Validator do
end
end
describe ':message options' do
it 'should allow message option too' do
Person.validates_date :birth_date, on_or_after: :today, message: 'cannot be in past'
invalid!(:birth_date, Date.today - 5.days, 'cannot be in past')
valid!(:birth_date, Date.today)
end
it 'should first allow the defined message' do
Person.validates_date :birth_date, on_or_after: :today, on_or_after_message: 'cannot be in past', message: 'dummy message'
invalid!(:birth_date, Date.today - 5.days, 'cannot be in past')
valid!(:birth_date, Date.today)
end
end
describe ":between option" do
describe "array value" do
it 'should be split option into :on_or_after and :on_or_before values' do

View File

@@ -1,6 +1,4 @@
require 'spec_helper'
describe ValidatesTimeliness do
RSpec.describe ValidatesTimeliness do
it 'should alias use_euro_formats to remove_us_formats on Timeliness gem' do
expect(Timeliness).to respond_to(:remove_us_formats)

View File

@@ -10,11 +10,12 @@ Gem::Specification.new do |s|
s.description = %q{Adds validation methods to ActiveModel for validating dates and times. Works with multiple ORMS.}
s.email = %q{adam.meehan@gmail.com}
s.homepage = %q{http://github.com/adzap/validates_timeliness}
s.license = "MIT"
s.require_paths = ["lib"]
s.files = `git ls-files`.split("\n") - %w{ .gitignore .rspec Gemfile Gemfile.lock autotest/discover.rb Appraisals Travis.yml } - Dir['gemsfiles/*']
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
s.extra_rdoc_files = ["README.rdoc", "CHANGELOG.rdoc", "LICENSE"]
s.add_runtime_dependency(%q<timeliness>, ["~> 0.3.7"])
s.add_runtime_dependency(%q<timeliness>, [">= 0.3.10", "< 1"])
end