valle 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7c0c148d64fc0b076b0575401d9c4918333fb7b8
4
- data.tar.gz: 94db8d353ef331cd637eba7186e2509ab021035f
3
+ metadata.gz: 03548fc5db23ebbefcdbfd0215fd6b770b37ae5b
4
+ data.tar.gz: c5254b2a714721e09610e9f7b958a00f61813a3b
5
5
  SHA512:
6
- metadata.gz: bb10fe590b5426ed77e95da67aabd3800379a6d3afc2c625f22a48c08e3e6b91c1ad9787e84b15d4f6da1a1dd38f2314332320dbc1a5e2c26d92840ee9bec0d0
7
- data.tar.gz: feb65d2c8e597d4623f35e72735f886318ba3a17cf18ec2aa7b5b58d2be315cca52f4c66d722372a5a3d2ac392036fdd9bb04b80d8450c1f7ce7e6a5679ffabb
6
+ metadata.gz: 79dcc9f84474cd7578106b21aad7c6533cfb13e526867d14a5846307ccfcf7f2bf511c98f71a892da3e5666dae71dac882d28d0cd334850f016120c352d3a84a
7
+ data.tar.gz: ab8ec2d290146f03dfd7e1a139ecc7e75d3ee02c4944487fdb344050526d2fb54b6ef4ff2516ca3dd689eb3af77b3895e2c0759ae78ee73423f4cfc54629fd71
@@ -0,0 +1,2 @@
1
+ pkg/
2
+ temp/
@@ -1,8 +1,21 @@
1
- language: ruby
1
+ sudo: false
2
+
2
3
  rvm:
3
- - 1.9.3
4
- - 2.0.0
5
- - 2.1.0
4
+ - 2.3.0
5
+ - ruby-head
6
+ - rbx-2
7
+ - jruby-head
8
+
9
+ matrix:
10
+ allow_failures:
11
+ - rvm: ruby-head
12
+ - rvm: rbx-2
13
+ - rvm: jruby-head
14
+ fast_finish: true
15
+
6
16
  branches:
7
17
  only:
8
18
  - master
19
+
20
+ before_install:
21
+ - gem update bundler
@@ -1,3 +1,7 @@
1
+ ## 1.1.0 / 2016-03-18
2
+
3
+ * fixed #23: issue with config.chache_classes=true [a.nikishin]
4
+
1
5
  ## 1.0.1 / 2014-07-22
2
6
 
3
7
  * fix has_and_belongs_to_many causes Model to crash on initialization (#18) [Anton Kalyaev]
@@ -0,0 +1,13 @@
1
+ FROM ruby:latest
2
+
3
+ # fixes cucumber bug where it cannot find bundler
4
+ RUN gem install bundler --no-ri --no-rdoc
5
+
6
+ RUN mkdir -p /usr/src/lib
7
+ WORKDIR /usr/src/lib
8
+
9
+ COPY Gemfile* /usr/src/lib/
10
+ COPY *.gemspec /usr/src/lib/
11
+ RUN bundle install
12
+
13
+ COPY . /usr/src/lib/
data/Gemfile CHANGED
@@ -6,10 +6,10 @@ gemspec
6
6
  gem 'rake'
7
7
 
8
8
  group :test do
9
- gem 'rails', '~> 4.1.0'
9
+ gem 'rails', '~> 4.2.6'
10
10
 
11
11
  gem 'minitest', '~> 5'
12
12
  gem 'minitest-reporters'
13
- gem 'cucumber'
14
- gem 'aruba'
13
+ gem 'cucumber', '~> 2.3.2'
14
+ gem 'aruba', '~> 0.14.1'
15
15
  end
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 - 2014 Anton Kalyaev
1
+ Copyright (c) 2012 - 2016 Anton Kalyaev
2
2
 
3
3
  MIT License
4
4
 
@@ -0,0 +1,7 @@
1
+ docker_build:
2
+ docker build -t valle .
3
+
4
+ docker_test:
5
+ docker run -it --rm -v "$(PWD)":/usr/src/lib valle bundle exec rake
6
+
7
+ .PHONY: docker_build docker_test
data/README.md CHANGED
@@ -15,11 +15,6 @@ Example:
15
15
  PG::Error: ERROR: value "2147483648" is out of range for type integer
16
16
  : SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1
17
17
 
18
- ### Rails versions currently supported
19
-
20
- - 3.x
21
- - 4.x
22
-
23
18
  ### Supported ActiveRecord field types
24
19
 
25
20
  - `:primary_key`
@@ -41,6 +36,8 @@ Or install it yourself:
41
36
 
42
37
  $ gem install valle
43
38
 
39
+ If you are using other framework than Rails (e.g. Sinatra), call `Valle::Hooks.init` method during the boot process.
40
+
44
41
  ## Usage
45
42
 
46
43
  By default, this gem adds validators to all your ActiveRecord models. If that is the behavior you want, you don't need to tweak it.
@@ -77,6 +74,23 @@ end
77
74
 
78
75
  There is a similar gem, called [validates_lengths_from_database](http://github.com/rubiety/validates_lengths_from_database). It solves only one part of the problem — applicable to strings. Valle, however, is designed to work with all possible field types.
79
76
 
77
+ ## Docker container
78
+
79
+ If you have [docker](http://www.docker.com/) installed on your machine, you can
80
+ spin up a sandbox and run test suite in a few seconds:
81
+
82
+ ```
83
+ $ docker build -t valle .
84
+ $ docker run -it --rm -v "$PWD":/usr/src/lib valle bundle exec rake
85
+ ```
86
+
87
+ Or simply use Makefile commands:
88
+
89
+ ```
90
+ $ make docker_build
91
+ $ make docker_test
92
+ ```
93
+
80
94
  ## Contributing
81
95
 
82
96
  1. Fork it
@@ -88,14 +102,12 @@ There is a similar gem, called [validates_lengths_from_database](http://github.c
88
102
 
89
103
  ## Credits
90
104
 
91
- Authors:
105
+ Original authors:
92
106
 
93
107
  - [Anton Kalyaev](http://github.com/akalyaev)
94
108
  - [Andrew Kulakov](http://github.com/Andrew8xx8)
95
109
  - [Alexander Kirillov](http://github.com/saratovsource)
96
110
 
97
- Maintained by kaize team.
98
-
99
111
  Thank you to all our amazing [contributors](http://github.com/kaize/valle/contributors)!
100
112
 
101
113
  ## License
@@ -1,4 +1,3 @@
1
- @disable-bundler
2
1
  Feature:
3
2
  In order to temporary disable Valle or apply it only to a subset of models,
4
3
  as a user of Rails, I would like to use valle initializer options.
@@ -10,7 +9,7 @@ Feature:
10
9
  And I add "valle" from this project as a dependency
11
10
  And I successfully run `bundle install`
12
11
  And I successfully run `bundle exec rails g model User name:string`
13
- And I successfully run `bundle exec rake db:migrate --trace`
12
+ And I successfully run `bundle exec rake db:migrate -v`
14
13
 
15
14
  Scenario: Setting enabled option to false disable Valle
16
15
  When I write to "config/initializers/valle.rb" with:
@@ -34,12 +33,12 @@ Feature:
34
33
  end
35
34
  end
36
35
  """
37
- When I successfully run `bundle exec rake test --trace`
36
+ When I successfully run `bundle exec rake test -v`
38
37
  Then the output should contain "1 runs, 1 assertions, 0 failures, 0 errors"
39
38
 
40
39
  Scenario: Using the exclude_models option should skip the models specified in the list
41
40
  When I successfully run `bundle exec rails g model Post title:string`
42
- And I successfully run `bundle exec rake db:migrate --trace`
41
+ And I successfully run `bundle exec rake db:migrate -v`
43
42
  And I write to "config/initializers/valle.rb" with:
44
43
  """
45
44
  Valle.configure do |config|
@@ -75,7 +74,7 @@ Feature:
75
74
  end
76
75
  end
77
76
  """
78
- When I successfully run `bundle exec rake test --trace`
77
+ When I successfully run `bundle exec rake test -v`
79
78
  Then the output should contain "2 runs, 3 assertions, 0 failures, 0 errors"
80
79
 
81
80
  Scenario: Using exclude_attributes option should allow us to skip some attributes
@@ -102,5 +101,5 @@ Feature:
102
101
  end
103
102
  end
104
103
  """
105
- When I successfully run `bundle exec rake test --trace`
104
+ When I successfully run `bundle exec rake test -v`
106
105
  Then the output should contain "1 runs, 1 assertions, 0 failures, 0 errors"
@@ -6,7 +6,7 @@ Feature: sets validations
6
6
  And I add "valle" from this project as a dependency
7
7
  And I successfully run `bundle install`
8
8
  And I successfully run `bundle exec rails g model User name:string`
9
- And I successfully run `bundle exec rake db:migrate --trace`
9
+ And I successfully run `bundle exec rake db:migrate -v`
10
10
 
11
11
  @disable-bundler
12
12
  Scenario: Using Valle automatically sets validations
@@ -27,5 +27,5 @@ Feature: sets validations
27
27
  end
28
28
  end
29
29
  """
30
- When I successfully run `bundle exec rake test --trace`
30
+ When I successfully run `bundle exec rake test -v`
31
31
  Then the output should contain "1 runs, 2 assertions, 0 failures, 0 errors"
@@ -1,6 +1,6 @@
1
1
  module Valle
2
2
  class Railtie < ::Rails::Railtie #:nodoc:
3
- config.after_initialize do
3
+ initializer "valle.after_initialize" do
4
4
  Valle::Hooks.init
5
5
  end
6
6
  end
@@ -3,21 +3,21 @@ require "test_helper"
3
3
  class CharacterLimitedColumnTest < TestCase
4
4
 
5
5
  def test_maximum_should_return_value_for_string_column
6
- original_column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", "", "varchar(255)")
6
+ original_column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", "", ::ActiveRecord::Type::String.new(limit: 255))
7
7
  column = Valle::AbstractAdapter::CharacterLimitedColumn.new(original_column)
8
8
 
9
9
  assert column.maximum
10
10
  end
11
11
 
12
12
  def test_maximum_should_return_correct_value_for_string_column_if_user_redefine_limit
13
- original_column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", "", "varchar(200)")
13
+ original_column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", "", ::ActiveRecord::Type::String.new(limit: 200))
14
14
  column = Valle::AbstractAdapter::CharacterLimitedColumn.new(original_column)
15
15
 
16
16
  assert_equal 200, column.maximum
17
17
  end
18
18
 
19
19
  def test_minimum_should_return_nil
20
- original_column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", "", "varchar")
20
+ original_column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", "", ::ActiveRecord::Type::String.new)
21
21
  column = Valle::AbstractAdapter::CharacterLimitedColumn.new(original_column)
22
22
 
23
23
  assert_nil column.minimum
@@ -4,14 +4,14 @@ require "active_record"
4
4
  class ColumnWrapperTest < TestCase
5
5
 
6
6
  def test_wrap_should_return_instance_of_character_limited_column_for_string_column
7
- column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", "", "varchar(255)")
7
+ column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", "", ::ActiveRecord::Type::String.new(limit: 255))
8
8
  wrapped_column = Valle::AbstractAdapter::ColumnWrapper.wrap(column)
9
9
 
10
10
  assert wrapped_column.is_a?(Valle::AbstractAdapter::CharacterLimitedColumn)
11
11
  end
12
12
 
13
13
  def test_wrap_should_return_instance_of_byte_limited_column_for_int_column
14
- column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", "", "int")
14
+ column = ::ActiveRecord::ConnectionAdapters::Column.new("test_column", 25, ::ActiveRecord::Type::Integer.new)
15
15
  wrapped_column = Valle::AbstractAdapter::ColumnWrapper.wrap(column)
16
16
 
17
17
  assert wrapped_column.is_a?(Valle::AbstractAdapter::ByteLimitedColumn)
@@ -2,6 +2,7 @@ require 'bundler/setup'
2
2
  Bundler.require
3
3
 
4
4
  require "active_record"
5
+ require "active_support/core_ext/hash/keys"
5
6
 
6
7
  require 'minitest/autorun'
7
8
  require "minitest/reporters"
@@ -1,5 +1,4 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/valle/version', __FILE__)
3
2
 
4
3
  Gem::Specification.new do |gem|
5
4
  gem.authors = ["Anton Kalyaev"]
@@ -14,7 +13,7 @@ Gem::Specification.new do |gem|
14
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
15
14
  gem.name = "valle"
16
15
  gem.require_paths = ["lib"]
17
- gem.version = Valle::VERSION
16
+ gem.version = "1.1.0"
18
17
 
19
18
  gem.add_dependency 'activerecord', '>= 3.0'
20
19
  gem.add_dependency 'activesupport'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Kalyaev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-22 00:00:00.000000000 Z
11
+ date: 2016-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -47,12 +47,15 @@ executables: []
47
47
  extensions: []
48
48
  extra_rdoc_files: []
49
49
  files:
50
+ - ".dockerignore"
50
51
  - ".gitignore"
51
52
  - ".travis.yml"
52
53
  - CHANGELOG.md
53
54
  - CONTRIBUTING.md
55
+ - Dockerfile
54
56
  - Gemfile
55
57
  - LICENSE
58
+ - Makefile
56
59
  - README.md
57
60
  - Rakefile
58
61
  - features/configuration.feature
@@ -70,7 +73,6 @@ files:
70
73
  - lib/valle/manager.rb
71
74
  - lib/valle/railtie.rb
72
75
  - lib/valle/validation_setter.rb
73
- - lib/valle/version.rb
74
76
  - test/lib/abstract_adapter/character_limited_column_test.rb
75
77
  - test/lib/abstract_adapter/column_wrapper_test.rb
76
78
  - test/test_helper.rb
@@ -95,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
97
  version: '0'
96
98
  requirements: []
97
99
  rubyforge_project:
98
- rubygems_version: 2.2.2
100
+ rubygems_version: 2.6.2
99
101
  signing_key:
100
102
  specification_version: 4
101
103
  summary: Built-in limit validations for your ActiveRecord model.
@@ -1,3 +0,0 @@
1
- module Valle
2
- VERSION = "1.0.1"
3
- end