active_record_uniqueness_via_db 0.1.1 → 0.1.2

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: 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