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.
@@ -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
@@ -1,3 +1,5 @@
1
1
  pkg/*
2
2
  *.gem
3
3
  .bundle
4
+ Gemfile.lock
5
+ gemfiles/*.lock
@@ -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
@@ -0,0 +1,15 @@
1
+ appraise "3.0" do
2
+ gem "rails", "~> 3.0.20"
3
+ end
4
+
5
+ appraise "3.1" do
6
+ gem "rails", "~> 3.1.12"
7
+ end
8
+
9
+ appraise "3.2" do
10
+ gem "rails", "~> 3.2.15"
11
+ end
12
+
13
+ appraise "4.0" do
14
+ gem "rails", "~> 4.0.0"
15
+ end
data/Gemfile CHANGED
@@ -2,8 +2,3 @@ source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in acts_as_keyed.gemspec
4
4
  gemspec
5
-
6
- # Development dependencies
7
- gem "rake"
8
- gem "activesupport", "~>3.0"
9
- gem "sqlite3-ruby"
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require 'bundler'
1
+ require "rubygems"
2
+ require "bundler/setup"
2
3
  require 'rake/testtask'
3
- require 'rake/rdoctask'
4
+ require 'rdoc/task'
5
+ require 'appraisal'
4
6
 
5
7
  desc 'Default: run unit tests.'
6
8
  task :default => :test
@@ -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
+ ----
@@ -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 Hubert"]
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"]
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rails", "~> 3.0.20"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rails", "~> 3.1.12"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rails", "~> 3.2.15"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rails", "~> 4.0.0"
6
+
7
+ gemspec :path=>"../"
@@ -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
@@ -1,3 +1,3 @@
1
1
  module ActsAsKeyed
2
- VERSION = "0.1.3"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -1,4 +1,4 @@
1
- require 'test/test_helper'
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 custom characters" do
20
- owk_setup(:chars => ['a'])
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
- assert_equal 'aaaaaaaaaa', o.key
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
- end
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
- hash: 29
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 Hubert
6
+ authors:
7
+ - Jeremy Baker
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-04-30 00:00:00 Z
19
- dependencies:
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
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
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
- version_requirements: *id001
35
- description: 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.
36
- email:
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
- post_install_message:
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
- none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
78
- required_rubygems_version: !ruby/object:Gem::Requirement
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.8.15
140
+ rubygems_version: 2.1.11
91
141
  signing_key:
92
- specification_version: 3
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:
@@ -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