acts_as_hashed 1.0.0 → 1.1.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 +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/README.md +31 -6
- data/Rakefile +13 -0
- data/lib/acts_as_hashed.rb +6 -0
- data/lib/acts_as_hashed/version.rb +1 -1
- data/spec/acts_as_hashed_spec.rb +35 -24
- metadata +13 -20
- data/.rvmrc +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5526f241d84691664bb38299149aa9ec434c8c1c
|
4
|
+
data.tar.gz: 0c6d06978022f6c304e440ff2f052f6eebffb00c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2bf2c050e6e9f2dc88a317ce42877b90121c8bd994a8f430dc0bdb9965ab055f8653c6a5f7a86fd06982266855caf6200c8c6bd1bf1d83c2422698cd335f6ac4
|
7
|
+
data.tar.gz: c2e1cee5821839d64708520cdd389065b6a0f7e98290de80c8109f3119cd0a092734158d153ac4defd5d59f4b60477ba8e2cebd6acef861ea7754483187fe63b
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
acts_as_hashed
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.9.3
|
data/README.md
CHANGED
@@ -18,16 +18,22 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
####
|
21
|
+
#### Create your migrations for the desired models
|
22
|
+
|
23
|
+
```bash
|
24
|
+
$ rails g migration AddHashedCodeToOrders hashed_code:string
|
25
|
+
```
|
26
|
+
|
27
|
+
or
|
22
28
|
|
23
29
|
```ruby
|
24
|
-
class
|
30
|
+
class AddHashedCodeToOrders < ActiveRecord::Migration
|
25
31
|
def self.up
|
26
|
-
add_column :
|
32
|
+
add_column :orders, :hashed_code, :string
|
27
33
|
end
|
28
34
|
|
29
35
|
def self.down
|
30
|
-
remove_column :
|
36
|
+
remove_column :orders, :hashed_code, :string
|
31
37
|
end
|
32
38
|
end
|
33
39
|
```
|
@@ -37,9 +43,13 @@ end
|
|
37
43
|
#### In your model:
|
38
44
|
|
39
45
|
```ruby
|
40
|
-
class
|
46
|
+
class Order < ActiveRecord::Base
|
41
47
|
acts_as_hashed
|
42
48
|
|
49
|
+
def to_param
|
50
|
+
hashed_code
|
51
|
+
end
|
52
|
+
|
43
53
|
...
|
44
54
|
end
|
45
55
|
```
|
@@ -47,7 +57,7 @@ end
|
|
47
57
|
or you can overwrite the method that will generate the hash.
|
48
58
|
|
49
59
|
```ruby
|
50
|
-
class
|
60
|
+
class Order < ActiveRecord::Base
|
51
61
|
acts_as_hashed
|
52
62
|
|
53
63
|
class << self
|
@@ -58,6 +68,12 @@ class Seller < ActiveRecord::Base
|
|
58
68
|
end
|
59
69
|
```
|
60
70
|
|
71
|
+
If you are adding acts_as_hashed after having some records on your database you need too run the code above to update the records:
|
72
|
+
|
73
|
+
```ruby
|
74
|
+
Order.update_missing_hashed_code
|
75
|
+
```
|
76
|
+
|
61
77
|
## Contributing
|
62
78
|
|
63
79
|
1. Fork it
|
@@ -65,3 +81,12 @@ end
|
|
65
81
|
3. Commit your changes (`git commit -am 'Added some feature'`)
|
66
82
|
4. Push to the branch (`git push origin my-new-feature`)
|
67
83
|
5. Create new Pull Request
|
84
|
+
|
85
|
+
## Credits
|
86
|
+
|
87
|
+
ActsAsHashed is maintained and funded by [HE:labs](http://helabs.com.br/opensource/).
|
88
|
+
Thank you to all the [contributors](https://github.com/Helabs/acts_as_hashed/graphs/contributors).
|
89
|
+
|
90
|
+
## License
|
91
|
+
|
92
|
+
ActsAsHashed is Copyright © 2012-2014 HE:labs. It is free software, and may be redistributed under the terms specified in the LICENSE file.
|
data/Rakefile
CHANGED
@@ -1,2 +1,15 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
require "bundler/gem_tasks"
|
3
|
+
|
4
|
+
require 'rspec/core'
|
5
|
+
require 'rspec/core/rake_task'
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
7
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
8
|
+
end
|
9
|
+
|
10
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
11
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
12
|
+
spec.rcov = true
|
13
|
+
end
|
14
|
+
|
15
|
+
task :default => :spec
|
data/lib/acts_as_hashed.rb
CHANGED
@@ -19,6 +19,12 @@ module ActsAsHashed
|
|
19
19
|
def hashed_code_exists?(hashed_code)
|
20
20
|
where(:hashed_code => hashed_code).any?
|
21
21
|
end
|
22
|
+
|
23
|
+
def update_missing_hashed_code
|
24
|
+
where(hashed_code: nil).find_each do |record|
|
25
|
+
record.update_column(:hashed_code, friendly_token)
|
26
|
+
end
|
27
|
+
end
|
22
28
|
end
|
23
29
|
|
24
30
|
def set_hashed_code
|
data/spec/acts_as_hashed_spec.rb
CHANGED
@@ -29,36 +29,47 @@ describe ActsAsHashed do
|
|
29
29
|
before(:each) do
|
30
30
|
clean_database!
|
31
31
|
end
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
describe "persisted record" do
|
42
|
-
let(:model) do
|
43
|
-
model = SomeModel.new
|
44
|
-
model.save!
|
45
|
-
model
|
32
|
+
describe :save do
|
33
|
+
context "new record" do
|
34
|
+
let(:model) { SomeModel.new }
|
35
|
+
it "should save hashed code" do
|
36
|
+
SomeModel.stub(:friendly_token).and_return('new-hashed-code-here')
|
37
|
+
expect {
|
38
|
+
model.save!
|
39
|
+
}.to change(model, :hashed_code).from(nil).to('new-hashed-code-here')
|
40
|
+
end
|
46
41
|
end
|
47
|
-
|
48
|
-
|
49
|
-
|
42
|
+
describe "persisted record" do
|
43
|
+
let(:model) do
|
44
|
+
model = SomeModel.new
|
50
45
|
model.save!
|
51
|
-
|
46
|
+
model
|
47
|
+
end
|
48
|
+
it "should save hashed code" do
|
49
|
+
SomeModel.stub(:friendly_token).and_return('new-hashed-code-here')
|
50
|
+
expect {
|
51
|
+
model.save!
|
52
|
+
}.to_not change(model, :hashed_code)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
context "overwrite friendly_token" do
|
56
|
+
let!(:model) do
|
57
|
+
model = OverwritedModel.new
|
58
|
+
model.save
|
59
|
+
model
|
60
|
+
end
|
61
|
+
it "should have hashed_code with lenght 10" do
|
62
|
+
model.hashed_code.length.should == 10
|
63
|
+
end
|
52
64
|
end
|
53
65
|
end
|
54
|
-
|
66
|
+
describe :update_missing_hashed_code do
|
55
67
|
let!(:model) do
|
56
|
-
model =
|
68
|
+
model = SomeModel.new
|
57
69
|
model.save
|
58
|
-
model
|
59
|
-
|
60
|
-
it "should have hashed_code with lenght 10" do
|
61
|
-
model.hashed_code.length.should == 10
|
70
|
+
model.update_column(:hashed_code, nil)
|
71
|
+
model.reload
|
62
72
|
end
|
73
|
+
it { expect { SomeModel.update_missing_hashed_code }.to change { model.reload.hashed_code }.from(nil) }
|
63
74
|
end
|
64
75
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_hashed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Rodrigo Pinto
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-01-13 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - '='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - '='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,33 +27,29 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: sqlite3
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: activerecord
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: 3.0.0
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: 3.0.0
|
62
55
|
description: ActsAsHashed is helpful to set a hash_code column based on SecureRandom.hex(16).
|
@@ -68,7 +61,8 @@ extra_rdoc_files: []
|
|
68
61
|
files:
|
69
62
|
- .gitignore
|
70
63
|
- .rspec
|
71
|
-
- .
|
64
|
+
- .ruby-gemset
|
65
|
+
- .ruby-version
|
72
66
|
- Gemfile
|
73
67
|
- LICENSE
|
74
68
|
- README.md
|
@@ -81,27 +75,26 @@ files:
|
|
81
75
|
- spec/spec_helper.rb
|
82
76
|
homepage: ''
|
83
77
|
licenses: []
|
78
|
+
metadata: {}
|
84
79
|
post_install_message:
|
85
80
|
rdoc_options: []
|
86
81
|
require_paths:
|
87
82
|
- lib
|
88
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
84
|
requirements:
|
91
|
-
- -
|
85
|
+
- - '>='
|
92
86
|
- !ruby/object:Gem::Version
|
93
87
|
version: '0'
|
94
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
89
|
requirements:
|
97
|
-
- -
|
90
|
+
- - '>='
|
98
91
|
- !ruby/object:Gem::Version
|
99
92
|
version: '0'
|
100
93
|
requirements: []
|
101
94
|
rubyforge_project:
|
102
|
-
rubygems_version:
|
95
|
+
rubygems_version: 2.0.6
|
103
96
|
signing_key:
|
104
|
-
specification_version:
|
97
|
+
specification_version: 4
|
105
98
|
summary: SecureRandom hex generator for hashed_code column.
|
106
99
|
test_files:
|
107
100
|
- spec/acts_as_hashed_spec.rb
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm --create 1.9.3-p125@acts_as_hashed
|