schema_validations 1.1.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a393a0d55876bd8f8e7564c4697d49e39192a253
4
- data.tar.gz: da40a15493d7ee658427ad9b8fa84d55b18cf1c5
3
+ metadata.gz: 6ea33d2335e1af126b8d168661412173f65bd12c
4
+ data.tar.gz: 91b7ba79752b866df0c1184356f5aa9f43ec311f
5
5
  SHA512:
6
- metadata.gz: 46e9332822a7060a8815c85607a5879299b69626ceffa5cf5702d28272557f62341ae0e6af197841bbf398e985c8726d0eac7d5a7645adeaf75658d7d28e5644
7
- data.tar.gz: ff590cab2b092c7cc5cdfb75bfe0a5acfc5235a6e8ef787a807550cc1b1fb2072d804447bedbe67df08cd2c2005ba316e18278fa0e8d8adc7a2dbc83fbc9c974
6
+ metadata.gz: f5d11da519e0fab53b9d494e0e51b203b7a593c22c35e1d68f92a2c442185dd703ea96461566bbb7723b285fe4194db2863f5de3a5d4f2550dbdf3c5831d480b
7
+ data.tar.gz: 27d023e4d31824c6f85444cdefc34d15002da1efd1f252960c5cb961a1f04abd5cf870d556e9e087baa0361bc993a947eb35fcd18090a6168161e6c23171142f
data/.gitignore CHANGED
@@ -22,6 +22,7 @@ pkg
22
22
  .rvmrc
23
23
  *.log
24
24
  tmp/
25
+ Gemfile.local
25
26
  Gemfile.lock
26
27
  gemfiles/*.lock
27
28
  gemfiles/**/*.lock
data/.travis.yml CHANGED
@@ -5,10 +5,14 @@
5
5
  ---
6
6
  sudo: false
7
7
  rvm:
8
- - 1.9.3
9
8
  - 2.1.5
10
9
  gemfile:
11
- - gemfiles/rails-3.2/Gemfile.sqlite3
12
- - gemfiles/rails-4.1/Gemfile.sqlite3
13
- - gemfiles/rails-4.2/Gemfile.sqlite3
10
+ - gemfiles/activerecord-4.2.1/Gemfile.mysql2
11
+ - gemfiles/activerecord-4.2.1/Gemfile.postgresql
12
+ - gemfiles/activerecord-4.2.1/Gemfile.sqlite3
13
+ env: POSTGRESQL_DB_USER=postgres MYSQL_DB_USER=travis
14
+ addons:
15
+ postgresql: '9.4'
16
+ before_script: bundle exec rake create_databases
17
+ after_script: bundle exec rake drop_databases
14
18
  script: bundle exec rake travis
data/README.md CHANGED
@@ -45,17 +45,24 @@ hood.
45
45
 
46
46
  ## Compatibility
47
47
 
48
- SchemaValidations is tested on all combinations of:
48
+ As of version 1.2.0, SchemaValidations supports and is tested on:
49
49
 
50
- * rails 3.2, 4.1, and 4.2
51
- * MRI ruby 1.9.3 and 2.1.5)'s
52
- config.
50
+ <!-- SCHEMA_DEV: MATRIX - begin -->
51
+ <!-- These lines are auto-generated by schema_dev based on schema_dev.yml -->
52
+ * ruby **2.1.5** with activerecord **4.2.1**, using **mysql2**, **postgresql** or **sqlite3**
53
+
54
+ <!-- SCHEMA_DEV: MATRIX - end -->
55
+
56
+ Earlier versions of SchemaValidations supported:
57
+
58
+ * rails 3.2, 4.1, and 4.2.0
59
+ * MRI ruby 1.9.3 and 2.1.5
53
60
 
54
61
  ## Installation
55
62
 
56
63
  Simply add schema_validations to your Gemfile.
57
64
 
58
- gem "schema_validations"
65
+ gem "schema_validations"
59
66
 
60
67
  ### What if I want something special?
61
68
 
@@ -105,15 +112,6 @@ Data types:
105
112
  | :float | :validates ... :numericality => true |
106
113
  | :integer | :validates ... :numericality => { :only_integer => true } |
107
114
 
108
- ## Dependency
109
-
110
- SchemaValidations uses the [schema_plus](http://rubygems.org/gems/schema_plus)
111
- gem for its schema queries. That gem will by default auto-create foreign key
112
- constraints that you probably want -- but if you don't want them, you can
113
- disable them using [schema_plus](http://rubygems.org/gems/schema_plus
114
-
115
-
116
-
117
115
  ## How do I know what it did?
118
116
  If you're curious (or dubious) about what validations SchemaValidations
119
117
  defines, you can check the log file. For every assocation that
@@ -133,6 +131,10 @@ use case.
133
131
 
134
132
  ## Release Notes
135
133
 
134
+ ### 1.2.0
135
+
136
+ * No longer pull in schema_plus's auto-foreign key behavior. Limited to AR >= 4.2.1
137
+
136
138
  ### 1.1.0
137
139
 
138
140
  * Works with Rails 4.2.
@@ -147,7 +149,7 @@ use case.
147
149
  * No longer support Rails < 3.2 or Ruby < 1.9.3
148
150
 
149
151
  ### 0.2.2
150
-
152
+
151
153
  * Rails 2.3 compatibility (check for Rails::Railties symbol). thanks to https://github.com/thehappycoder
152
154
 
153
155
  ### 0.2.0
@@ -165,14 +167,30 @@ use case.
165
167
 
166
168
  ## Testing
167
169
 
168
- SchemaValidations is tested against the matrix of combinations. To run the full combo of
169
- tests, after you've forked & cloned:
170
+ Are you interested in contributing to schema_validations? Thanks! Please follow
171
+ the standard protocol: fork, feature branch, develop, push, and issue pull request.
172
+
173
+ Some things to know about to help you develop and test:
174
+
175
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_DEV - begin -->
176
+ <!-- These lines are auto-inserted from a schema_dev template -->
177
+ * **schema_dev**: SchemaValidations uses [schema_dev](https://github.com/SchemaPlus/schema_dev) to
178
+ facilitate running rspec tests on the matrix of ruby, activerecord, and database
179
+ versions that the gem supports, both locally and on
180
+ [travis-ci](http://travis-ci.org/SchemaPlus/schema_validations)
181
+
182
+ To to run rspec locally on the full matrix, do:
183
+
184
+ $ schema_dev bundle install
185
+ $ schema_dev rspec
186
+
187
+ You can also run on just one configuration at a time; For info, see `schema_dev --help` or the [schema_dev](https://github.com/SchemaPlus/schema_dev) README.
188
+
189
+ The matrix of configurations is specified in `schema_dev.yml` in
190
+ the project root.
170
191
 
171
- $ cd schema_validations
172
- $ schema_dev bundle install
173
- $ schema_dev rspec
174
192
 
175
- For more info, see [schema_dev](https://github.com/SchemaPlus/schema_dev)
193
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_DEV - end -->
176
194
 
177
195
  Code coverage results will be in coverage/index.html -- it should be at 100% coverage.
178
196
 
@@ -1,6 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec :path => File.expand_path('..', __FILE__)
3
3
 
4
- platform :ruby do
5
- gem "byebug" if RUBY_VERSION > "2"
6
- end
4
+ File.exist?(gemfile_local = File.expand_path('../Gemfile.local', __FILE__)) and eval File.read(gemfile_local), binding, gemfile_local
@@ -1,3 +1,3 @@
1
1
  eval File.read File.expand_path('../../Gemfile.base', __FILE__)
2
2
 
3
- gem "rails", "~> 3.2.0"
3
+ gem "activerecord", "4.2.1"
@@ -2,9 +2,9 @@ require "pathname"
2
2
  eval(Pathname.new(__FILE__).dirname.join("Gemfile.base").read, binding)
3
3
 
4
4
  platform :ruby do
5
- gem "sqlite3"
5
+ gem "mysql2"
6
6
  end
7
7
 
8
8
  platform :jruby do
9
- gem 'activerecord-jdbcsqlite3-adapter', '>=1.3.0.beta2'
10
- end
9
+ gem 'activerecord-jdbcmysql-adapter'
10
+ end
@@ -2,9 +2,9 @@ require "pathname"
2
2
  eval(Pathname.new(__FILE__).dirname.join("Gemfile.base").read, binding)
3
3
 
4
4
  platform :ruby do
5
- gem "sqlite3"
5
+ gem "pg"
6
6
  end
7
7
 
8
8
  platform :jruby do
9
- gem 'activerecord-jdbcsqlite3-adapter', '>=1.3.0.beta2'
10
- end
9
+ gem 'activerecord-jdbcpostgresql-adapter'
10
+ end
@@ -100,8 +100,7 @@ module SchemaValidations
100
100
  when respond_to?(:defined_enums) && defined_enums.has_key?(column.name) then :enum
101
101
  when column.type == :integer then :integer
102
102
  when column.number? then :numeric
103
- when column.respond_to?(:text?) && column.text? then :text
104
- when [:string, :text].include?(column.type) then :text
103
+ when column.text? then :text
105
104
  when column.type == :boolean then :boolean
106
105
  end
107
106
 
@@ -155,7 +154,7 @@ module SchemaValidations
155
154
  end
156
155
 
157
156
  def validate_logged(method, arg, opts={}) #:nodoc:
158
- if _filter_validation(method, arg)
157
+ if _filter_validation(method, arg)
159
158
  msg = "[schema_validations] #{self.name}.#{method} #{arg.inspect}"
160
159
  msg += ", #{opts.inspect[1...-1]}" if opts.any?
161
160
  logger.info msg
@@ -166,7 +165,7 @@ module SchemaValidations
166
165
  def _filter_validation(macro, name) #:nodoc:
167
166
  config = schema_validations_config
168
167
  types = [macro]
169
- if match = macro.to_s.match(/^validates_(.*)_of$/)
168
+ if match = macro.to_s.match(/^validates_(.*)_of$/)
170
169
  types << match[1].to_sym
171
170
  end
172
171
  return false if config.only and not Array.wrap(config.only).include?(name)
@@ -1,3 +1,3 @@
1
1
  module SchemaValidations
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require 'valuable'
2
2
 
3
- require 'schema_plus'
3
+ require 'schema_plus_columns'
4
4
  require 'schema_validations/version'
5
5
  require 'schema_validations/active_record/validations'
6
6
  require 'schema_validations/railtie' if defined?(Rails::Railtie)
data/schema_dev.yml CHANGED
@@ -1,8 +1,8 @@
1
1
  ruby:
2
- - 1.9.3
3
2
  - 2.1.5
4
- rails:
5
- - 3.2
6
- - 4.1
7
- - 4.2
8
- db: sqlite3
3
+ activerecord:
4
+ - 4.2.1
5
+ db:
6
+ - mysql2
7
+ - postgresql
8
+ - sqlite3
@@ -20,9 +20,11 @@ Gem::Specification.new do |s|
20
20
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
21
  s.require_paths = ["lib"]
22
22
 
23
- s.add_dependency("schema_plus")
23
+ s.add_dependency("schema_plus_columns")
24
+ s.add_dependency("activerecord", "~> 4.2", ">= 4.2.1")
25
+ s.add_dependency("valuable")
24
26
 
25
- s.add_development_dependency("schema_dev", "~> 1.2")
27
+ s.add_development_dependency("schema_dev", "~> 3.5")
26
28
  s.add_development_dependency("rake")
27
29
  s.add_development_dependency("rdoc")
28
30
  s.add_development_dependency("rspec")
data/spec/spec_helper.rb CHANGED
@@ -12,7 +12,7 @@ require 'schema_dev/rspec'
12
12
  require 'database_cleaner'
13
13
  DatabaseCleaner.strategy = :truncation
14
14
 
15
- SchemaDev::Rspec.setup_db
15
+ SchemaDev::Rspec.setup
16
16
 
17
17
  RSpec.configure do |config|
18
18
  config.before(:each) do
@@ -34,9 +34,11 @@ describe "Validations" do
34
34
  end
35
35
 
36
36
  it "should create validations for introspection with validators_on" do
37
- expect(Article.validators_on(:content).map{|v| v.class.name.demodulize}.uniq).to match_array(%W[
38
- PresenceValidator
39
- ])
37
+ expected = case
38
+ when SchemaDev::Rspec::Helpers.mysql? then %W[PresenceValidator LengthValidator]
39
+ else %W[PresenceValidator]
40
+ end
41
+ expect(Article.validators_on(:content).map{|v| v.class.name.demodulize}.uniq).to match_array(expected)
40
42
  end
41
43
 
42
44
  it "should be valid with valid attributes" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_validations
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronen Barzel
@@ -9,10 +9,44 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-01-02 00:00:00.000000000 Z
12
+ date: 2015-05-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: schema_plus
15
+ name: schema_plus_columns
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: activerecord
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '4.2'
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: 4.2.1
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - "~>"
43
+ - !ruby/object:Gem::Version
44
+ version: '4.2'
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 4.2.1
48
+ - !ruby/object:Gem::Dependency
49
+ name: valuable
16
50
  requirement: !ruby/object:Gem::Requirement
17
51
  requirements:
18
52
  - - ">="
@@ -31,14 +65,14 @@ dependencies:
31
65
  requirements:
32
66
  - - "~>"
33
67
  - !ruby/object:Gem::Version
34
- version: '1.2'
68
+ version: '3.5'
35
69
  type: :development
36
70
  prerelease: false
37
71
  version_requirements: !ruby/object:Gem::Requirement
38
72
  requirements:
39
73
  - - "~>"
40
74
  - !ruby/object:Gem::Version
41
- version: '1.2'
75
+ version: '3.5'
42
76
  - !ruby/object:Gem::Dependency
43
77
  name: rake
44
78
  requirement: !ruby/object:Gem::Requirement
@@ -141,12 +175,10 @@ files:
141
175
  - README.md
142
176
  - Rakefile
143
177
  - gemfiles/Gemfile.base
144
- - gemfiles/rails-3.2/Gemfile.base
145
- - gemfiles/rails-3.2/Gemfile.sqlite3
146
- - gemfiles/rails-4.1/Gemfile.base
147
- - gemfiles/rails-4.1/Gemfile.sqlite3
148
- - gemfiles/rails-4.2/Gemfile.base
149
- - gemfiles/rails-4.2/Gemfile.sqlite3
178
+ - gemfiles/activerecord-4.2.1/Gemfile.base
179
+ - gemfiles/activerecord-4.2.1/Gemfile.mysql2
180
+ - gemfiles/activerecord-4.2.1/Gemfile.postgresql
181
+ - gemfiles/activerecord-4.2.1/Gemfile.sqlite3
150
182
  - init.rb
151
183
  - lib/schema_validations.rb
152
184
  - lib/schema_validations/active_record/validations.rb
@@ -1,3 +0,0 @@
1
- eval File.read File.expand_path('../../Gemfile.base', __FILE__)
2
-
3
- gem "rails", "~> 4.1.0"
@@ -1,3 +0,0 @@
1
- eval File.read File.expand_path('../../Gemfile.base', __FILE__)
2
-
3
- gem "rails", "~> 4.2.0"