acts_as_keyed 0.1.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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