active_record_uniqueness_via_db 0.1.1 → 0.1.2

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: d7556335bb1fcc56da55ed0031d128002c12369e
4
- data.tar.gz: d647666cf6c1017f75893b7a86977c1e3adc8454
3
+ metadata.gz: 7980eb4f317095b5096afb5a4bdf848000db18c4
4
+ data.tar.gz: 1fae04a20b3e9b4dfd5077089820a8260384d912
5
5
  SHA512:
6
- metadata.gz: efc263c832180afef0864b5ca3185d13918f4ff41d9d32f68859e0bb6261eafd117d667c6d320476aaaf413ae712de89816dae0bc48547d1ec9cb86a6c7884bf
7
- data.tar.gz: 2418afe4919adcbf6f6a36f0a49c031e1513413f14f4de0f85a6356627e3a4a130a12698eb1fe4f8d69e0542072f23d6905d12858d54be61e356c4ae74eb1590
6
+ metadata.gz: 5d92f5036357aa76ec2d2f1f05dd7d240a4ae6e27fbf2c6986ea13c4cddee212311570ea6110150a56718e319e7280afdd14e06826c4ef80638a1913314a25a4
7
+ data.tar.gz: 6f4a3fef3aab9565844761f4ae81c74b7d004504a4fde8bafd94a8389f8380cacf3bfd8b6c30f02e9838b1cff2ed66047748b49130c6e9f856c2e8829a981e5b
@@ -2,3 +2,9 @@ language: ruby
2
2
  rvm:
3
3
  - 2.2.0
4
4
  before_install: gem install bundler -v 1.10.6
5
+ before_script:
6
+ - gem install mysql2
7
+ - mysql -e 'create database myapp_test;'
8
+ - mysql myapp_test -e 'create table foos (bar varchar(36) NOT NULL, PRIMARY KEY(bar), UNIQUE KEY `index_foos_on_bar` (`bar`));'
9
+ script:
10
+ - rspec spec
data/README.md CHANGED
@@ -36,13 +36,16 @@ Or install it yourself as:
36
36
 
37
37
  $ gem install active_record_uniqueness_via_db
38
38
 
39
- run this command to set up the initializer:
40
- Note: if upgrading from v0.1.0, re-run the generator to add the
41
- uniqueness validator initializer
42
-
43
- ```ruby
44
- rails generate active_record_uniqueness_via_db:install
45
- ```
39
+ Notes:
40
+ - if you are upgrading from VERSION <= v0.1.1, remove the
41
+ initializers
42
+ - if you use the `composite_primary_keys` gem, ensure that
43
+ `gem 'active_record_uniqueness_via_db'` is
44
+ included **after** the reference for `composite_primary_keys`. (This is
45
+ necessary because `composite_primary_keys` rather than extending the
46
+ uniqueness validation overwrites it, in contrast, this gem just extends
47
+ the functionality so they play nice together as long as this gem comes
48
+ after that one).
46
49
 
47
50
  ## Usage
48
51
 
@@ -60,7 +63,7 @@ Note: to add databases, add a file under `lib/adapters/db_adapter_name.rb`
60
63
  that implements the `error_matches_att` method
61
64
  ## Contributing
62
65
 
63
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/active_record_uniqueness_via_db. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
66
+ Bug reports and pull requests are welcome on GitHub at https://github.com/jamesmacwilliam/active_record_uniqueness_via_db. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
64
67
 
65
68
 
66
69
  ## License
@@ -1,6 +1,5 @@
1
1
  module ActiveRecord
2
- module Persistence
3
- extend ActiveSupport::Concern
2
+ class Base
4
3
 
5
4
  cattr_accessor ActiveRecordUniquenessViaDb::ATTRS_IVAR
6
5
 
@@ -1,6 +1,6 @@
1
1
  module ActiveRecord
2
2
  module Validations
3
- class UniquenessValidator < ActiveModel::EachValidator
3
+ class UniquenessValidator
4
4
 
5
5
  alias :old_validate_each :validate_each
6
6
  alias :old_initialize :initialize
@@ -1,10 +1,13 @@
1
- require 'active_record'
1
+ module ActiveRecordUniquenessViaDb
2
+ ATTRS_IVAR = :attrs_to_rescue_uniqueness_db
3
+ end
4
+
2
5
  require 'active_record_uniqueness_via_db/version'
3
6
  require 'active_record_uniqueness_via_db/builder'
4
7
  require 'active_record_uniqueness_via_db/validator'
5
8
  require 'active_record_uniqueness_via_db/adapters'
6
9
  require 'active_record_uniqueness_via_db/adapter'
7
10
 
8
- module ActiveRecordUniquenessViaDb
9
- ATTRS_IVAR = :attrs_to_rescue_uniqueness_db
10
- end
11
+ require 'active_record'
12
+ require 'active_record/validations/uniqueness_validator'
13
+ require 'active_record/extend_base'
@@ -1,4 +1,5 @@
1
1
  require 'active_record_uniqueness_via_db/adapters/mysql2'
2
+ require 'active_record_uniqueness_via_db/adapters/postgresql'
2
3
  require 'active_support/inflector'
3
4
 
4
5
  class ActiveRecordUniquenessViaDb::Adapter
@@ -0,0 +1,5 @@
1
+ class ActiveRecordUniquenessViaDb::Adapters::Postgresql
2
+ def error_matches_attr(attr, err_msg)
3
+ err_msg =~ /PG[:]*UniqueViolation[^(]*[(]#{attr}[)].*/
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordUniquenessViaDb
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_uniqueness_via_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Mac William
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-05 00:00:00.000000000 Z
11
+ date: 2016-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -110,16 +110,16 @@ files:
110
110
  - active_record_uniqueness_via_db.gemspec
111
111
  - bin/console
112
112
  - bin/setup
113
+ - lib/active_record/extend_base.rb
114
+ - lib/active_record/validations/uniqueness_validator.rb
113
115
  - lib/active_record_uniqueness_via_db.rb
114
116
  - lib/active_record_uniqueness_via_db/adapter.rb
115
117
  - lib/active_record_uniqueness_via_db/adapters.rb
116
118
  - lib/active_record_uniqueness_via_db/adapters/mysql2.rb
119
+ - lib/active_record_uniqueness_via_db/adapters/postgresql.rb
117
120
  - lib/active_record_uniqueness_via_db/builder.rb
118
121
  - lib/active_record_uniqueness_via_db/validator.rb
119
122
  - lib/active_record_uniqueness_via_db/version.rb
120
- - lib/generators/active_record_uniqueness_via_db/install_generator.rb
121
- - lib/generators/templates/active_record_uniqueness_via_db.rb
122
- - lib/generators/templates/active_record_uniqueness_via_db_validator.rb
123
123
  homepage: https://github.com/jamesmacwilliam/active_record_uniqueness_via_db
124
124
  licenses:
125
125
  - MIT
@@ -1,15 +0,0 @@
1
- require 'rails/generators/base'
2
-
3
- module ActiveRecordUniquenessViaDb
4
- module Generators
5
- class InstallGenerator < Rails::Generators::Base
6
- source_root File.expand_path("../../templates", __FILE__)
7
- desc "Creates an ActiveRecordUniqunessViaDb initializer."
8
-
9
- def copy_initializer
10
- copy_file "active_record_uniqueness_via_db.rb", "config/initializers/active_record_uniqueness_via_db.rb"
11
- copy_file "active_record_uniqueness_via_db_validator.rb", "config/initializers/active_record_uniqueness_via_db_validator.rb"
12
- end
13
- end
14
- end
15
- end