acts_as_keyed 0.1.3 → 1.0.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 +15 -0
- data/.gitignore +2 -0
- data/.travis.yml +24 -0
- data/Appraisals +15 -0
- data/Gemfile +0 -5
- data/Rakefile +4 -2
- data/UPGRADING +17 -0
- data/acts_as_keyed.gemspec +12 -2
- data/gemfiles/3.0.gemfile +7 -0
- data/gemfiles/3.1.gemfile +7 -0
- data/gemfiles/3.2.gemfile +7 -0
- data/gemfiles/4.0.gemfile +7 -0
- data/lib/acts_as_keyed/class_methods.rb +1 -3
- data/lib/acts_as_keyed/version.rb +1 -1
- data/test/acts_as_keyed_test.rb +10 -13
- metadata +112 -61
- data/Gemfile.lock +0 -38
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
Mjg4ZDI4ZGY1MDNiNjQxN2JjNTEwZmEzOTA2NGRkMTg1ZGQ0MjBjOA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MjFjYTViMjBkNGI2NmQ1YmZlMzA3YjM4YWUxMTBjYzkxNTllNTU4MQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NjdjY2FmMTI0YjEwMDkxOTQ4MjUzODU0ZmRmMDZlN2JlMDA2NzA2ZTA1NzBl
|
10
|
+
OWM1OTFkOWE1OWQ1Nzk2NGVmNzU5ZjdkMWU1MDAzY2E0N2RlNWU0NDI4N2Fk
|
11
|
+
NWU0NDFiN2Q2OGM3ZGFmMDg3MDU2ZTFhNDAwZmVmNWJlYWI4YWY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NTcwYzRiM2ZlZGEyYmFmYTU3NDQzY2JiOTQ5NjM4MjVlYWE5YTZjNjQ3NGIy
|
14
|
+
ODYyMjY3ODM2MzQzZDQ2NzNlMDcwYzlmNzVhOTJiNTc5NWYyYzkyYzVkNTQ2
|
15
|
+
NTc2OTZmY2FiZWEyMDBkODZlYTFlZTBkNmI5NTg3YzA0OWRiNzc=
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
rvm:
|
2
|
+
- 1.9.2
|
3
|
+
- 1.9.3
|
4
|
+
- jruby-19mode
|
5
|
+
- rbx-19mode
|
6
|
+
- 2.0.0
|
7
|
+
|
8
|
+
install:
|
9
|
+
- "bundle install"
|
10
|
+
|
11
|
+
gemfile:
|
12
|
+
- gemfiles/3.0.gemfile
|
13
|
+
- gemfiles/3.1.gemfile
|
14
|
+
- gemfiles/3.2.gemfile
|
15
|
+
- gemfiles/4.0.gemfile
|
16
|
+
|
17
|
+
matrix:
|
18
|
+
allow_failures:
|
19
|
+
- rvm: jruby-19mode
|
20
|
+
- rvm: rbx-19mode
|
21
|
+
|
22
|
+
exclude:
|
23
|
+
- rvm: 1.9.2
|
24
|
+
gemfile: gemfiles/4.0.gemfile
|
data/Appraisals
ADDED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/UPGRADING
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
##################################################
|
2
|
+
# NOTE FOR UPGRADING FROM PRE-1.0 VERSION #
|
3
|
+
##################################################
|
4
|
+
|
5
|
+
In order to support Rails 4, versions >1.0.0 of the gem no
|
6
|
+
longer automatically protect the keyed column. Please make
|
7
|
+
sure to protect the column manually in your application.
|
8
|
+
|
9
|
+
If you are using Rails 3.x, you can use `attr_protected`:
|
10
|
+
|
11
|
+
attr_protected :key
|
12
|
+
|
13
|
+
If you are using Rails 4.x, you can either use the
|
14
|
+
protected_attributes gem or use strong parameters via
|
15
|
+
the controller.
|
16
|
+
|
17
|
+
----
|
data/acts_as_keyed.gemspec
CHANGED
@@ -6,15 +6,25 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = "acts_as_keyed"
|
7
7
|
s.version = ActsAsKeyed::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ["Jeremy
|
9
|
+
s.authors = ["Jeremy Baker"]
|
10
10
|
s.email = ["jhubert@gmail.com"]
|
11
11
|
s.homepage = "https://github.com/jhubert/acts-as-keyed"
|
12
12
|
s.summary = %q{Automatically key an active record model with a unique key}
|
13
13
|
s.description = %q{A simple plugin that automatically generates a key for a model on create. It takes care of protecting the key, automatically generating it and making sure it is unique.}
|
14
|
+
s.license = "The MIT License (MIT)"
|
14
15
|
|
15
|
-
s.add_dependency "activerecord", "~> 3.0"
|
16
16
|
s.rubyforge_project = "acts_as_keyed"
|
17
17
|
|
18
|
+
if File.exists?('UPGRADING')
|
19
|
+
s.post_install_message = File.read('UPGRADING')
|
20
|
+
end
|
21
|
+
|
22
|
+
s.add_dependency "activerecord", ">= 3.0.0"
|
23
|
+
s.add_development_dependency "rake"
|
24
|
+
s.add_development_dependency "activesupport", ">= 3.0.0"
|
25
|
+
s.add_development_dependency "sqlite3-ruby"
|
26
|
+
s.add_development_dependency "appraisal"
|
27
|
+
|
18
28
|
s.files = `git ls-files`.split("\n")
|
19
29
|
s.test_files = `git ls-files -- test/*`.split("\n")
|
20
30
|
s.require_paths = ["lib"]
|
@@ -15,8 +15,6 @@ module ActsAsKeyed
|
|
15
15
|
|
16
16
|
raise MissingKeyColumnError if ActiveRecord::Base.connection.table_exists?(self.table_name) && columns_hash[options[:column]].nil?
|
17
17
|
|
18
|
-
attr_protected options[:column]
|
19
|
-
|
20
18
|
class << self
|
21
19
|
def find(*args)
|
22
20
|
if self.options[:as_param] && args.first.is_a?(String)
|
@@ -42,4 +40,4 @@ module ActsAsKeyed
|
|
42
40
|
include InstanceMethods
|
43
41
|
end
|
44
42
|
end
|
45
|
-
end
|
43
|
+
end
|
data/test/acts_as_keyed_test.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
3
|
class ActsAsKeyedBaseTest < ActiveSupport::TestCase
|
4
4
|
def setup
|
@@ -16,11 +16,12 @@ class ActsAsKeyedTest < ActsAsKeyedBaseTest
|
|
16
16
|
assert_not_nil o.key
|
17
17
|
end
|
18
18
|
|
19
|
-
test "should generate key based on
|
20
|
-
|
19
|
+
test "should generate a key based on a set of characters in the chars option" do
|
20
|
+
character_set = %w(a b c)
|
21
|
+
owk_setup(:chars => %w(a b c))
|
21
22
|
|
22
23
|
o = ObjectWithKey.create
|
23
|
-
|
24
|
+
assert_contains_only character_set, o.key
|
24
25
|
end
|
25
26
|
|
26
27
|
test "should generate key based on size parameter" do
|
@@ -30,14 +31,6 @@ class ActsAsKeyedTest < ActsAsKeyedBaseTest
|
|
30
31
|
assert_equal 2, o.key.length
|
31
32
|
end
|
32
33
|
|
33
|
-
test "should treat key as a protected attribute" do
|
34
|
-
owk_setup
|
35
|
-
|
36
|
-
o = ObjectWithKey.create
|
37
|
-
o.update_attributes(:key => 'hello')
|
38
|
-
assert_not_equal 'hello', o.key
|
39
|
-
end
|
40
|
-
|
41
34
|
test "should require a unique key" do
|
42
35
|
owk_setup(:chars => (0...10).to_a, :size => 1)
|
43
36
|
|
@@ -87,4 +80,8 @@ class ActsAsKeyedTest < ActsAsKeyedBaseTest
|
|
87
80
|
def owk_setup(options = {})
|
88
81
|
ObjectWithKey.acts_as_keyed(options)
|
89
82
|
end
|
90
|
-
|
83
|
+
|
84
|
+
def assert_contains_only(expected_characters, actual_string, message=nil)
|
85
|
+
assert actual_string =~ Regexp.new("^[#{expected_characters.join}]+$"), "#{actual_string} contains more than just '#{expected_characters.join}'"
|
86
|
+
end
|
87
|
+
end
|
metadata
CHANGED
@@ -1,56 +1,109 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_keyed
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 3
|
10
|
-
version: 0.1.3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
- Jeremy
|
6
|
+
authors:
|
7
|
+
- Jeremy Baker
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2013-12-31 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
21
14
|
name: activerecord
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 7
|
29
|
-
segments:
|
30
|
-
- 3
|
31
|
-
- 0
|
32
|
-
version: "3.0"
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.0.0
|
33
20
|
type: :runtime
|
34
|
-
|
35
|
-
|
36
|
-
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activesupport
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.0.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.0.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sqlite3-ruby
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: appraisal
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: A simple plugin that automatically generates a key for a model on create.
|
84
|
+
It takes care of protecting the key, automatically generating it and making sure
|
85
|
+
it is unique.
|
86
|
+
email:
|
37
87
|
- jhubert@gmail.com
|
38
88
|
executables: []
|
39
|
-
|
40
89
|
extensions: []
|
41
|
-
|
42
90
|
extra_rdoc_files: []
|
43
|
-
|
44
|
-
files:
|
91
|
+
files:
|
45
92
|
- .gemtest
|
46
93
|
- .gitignore
|
47
94
|
- .rvmrc
|
95
|
+
- .travis.yml
|
96
|
+
- Appraisals
|
48
97
|
- Gemfile
|
49
|
-
- Gemfile.lock
|
50
98
|
- LICENSE
|
51
99
|
- README.md
|
52
100
|
- Rakefile
|
101
|
+
- UPGRADING
|
53
102
|
- acts_as_keyed.gemspec
|
103
|
+
- gemfiles/3.0.gemfile
|
104
|
+
- gemfiles/3.1.gemfile
|
105
|
+
- gemfiles/3.2.gemfile
|
106
|
+
- gemfiles/4.0.gemfile
|
54
107
|
- lib/acts_as_keyed.rb
|
55
108
|
- lib/acts_as_keyed/class_methods.rb
|
56
109
|
- lib/acts_as_keyed/errors.rb
|
@@ -59,38 +112,36 @@ files:
|
|
59
112
|
- test/acts_as_keyed_test.rb
|
60
113
|
- test/test_helper.rb
|
61
114
|
homepage: https://github.com/jhubert/acts-as-keyed
|
62
|
-
licenses:
|
63
|
-
|
64
|
-
|
115
|
+
licenses:
|
116
|
+
- The MIT License (MIT)
|
117
|
+
metadata: {}
|
118
|
+
post_install_message: ! "##################################################\n# NOTE
|
119
|
+
FOR UPGRADING FROM PRE-1.0 VERSION #\n##################################################\n\nIn
|
120
|
+
order to support Rails 4, versions >1.0.0 of the gem no\nlonger automatically protect
|
121
|
+
the keyed column. Please make\nsure to protect the column manually in your application.\n\nIf
|
122
|
+
you are using Rails 3.x, you can use `attr_protected`:\n\n attr_protected :key\n\nIf
|
123
|
+
you are using Rails 4.x, you can either use the\nprotected_attributes gem or use
|
124
|
+
strong parameters via\nthe controller.\n\n----\n"
|
65
125
|
rdoc_options: []
|
66
|
-
|
67
|
-
require_paths:
|
126
|
+
require_paths:
|
68
127
|
- lib
|
69
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
none: false
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
hash: 3
|
84
|
-
segments:
|
85
|
-
- 0
|
86
|
-
version: "0"
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ! '>='
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ! '>='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
87
138
|
requirements: []
|
88
|
-
|
89
139
|
rubyforge_project: acts_as_keyed
|
90
|
-
rubygems_version: 1.
|
140
|
+
rubygems_version: 2.1.11
|
91
141
|
signing_key:
|
92
|
-
specification_version:
|
142
|
+
specification_version: 4
|
93
143
|
summary: Automatically key an active record model with a unique key
|
94
|
-
test_files:
|
144
|
+
test_files:
|
95
145
|
- test/acts_as_keyed_test.rb
|
96
146
|
- test/test_helper.rb
|
147
|
+
has_rdoc:
|
data/Gemfile.lock
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
acts_as_keyed (0.0.9)
|
5
|
-
activerecord (~> 3.0)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: http://rubygems.org/
|
9
|
-
specs:
|
10
|
-
activemodel (3.2.1)
|
11
|
-
activesupport (= 3.2.1)
|
12
|
-
builder (~> 3.0.0)
|
13
|
-
activerecord (3.2.1)
|
14
|
-
activemodel (= 3.2.1)
|
15
|
-
activesupport (= 3.2.1)
|
16
|
-
arel (~> 3.0.0)
|
17
|
-
tzinfo (~> 0.3.29)
|
18
|
-
activesupport (3.2.1)
|
19
|
-
i18n (~> 0.6)
|
20
|
-
multi_json (~> 1.0)
|
21
|
-
arel (3.0.0)
|
22
|
-
builder (3.0.0)
|
23
|
-
i18n (0.6.0)
|
24
|
-
multi_json (1.0.4)
|
25
|
-
rake (0.9.2.2)
|
26
|
-
sqlite3 (1.3.5)
|
27
|
-
sqlite3-ruby (1.3.3)
|
28
|
-
sqlite3 (>= 1.3.3)
|
29
|
-
tzinfo (0.3.31)
|
30
|
-
|
31
|
-
PLATFORMS
|
32
|
-
ruby
|
33
|
-
|
34
|
-
DEPENDENCIES
|
35
|
-
activesupport (~> 3.0)
|
36
|
-
acts_as_keyed!
|
37
|
-
rake
|
38
|
-
sqlite3-ruby
|