acts_as_hashids 0.1.4 → 0.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e73bc8dc01050b7cd4e73c8f66d41f9490505dc
4
- data.tar.gz: e45de056b6215bfcf51ff03872a15468430f08da
3
+ metadata.gz: 566fc3dc46c7d62d6b380440acc8f5b58a168be0
4
+ data.tar.gz: bd082d7e564dad63be19230dd89c5662b111d1b1
5
5
  SHA512:
6
- metadata.gz: 418e43334a2518847872d4cfa12ddae479d26d6a604edf65ea4b042bdde73150dd732d17fd5112b8d1b3657870f66c7364157c48566113e09dc42d674d5c800f
7
- data.tar.gz: 2304ac53bd1c53ce1f00f8eb2fb16d5f172dd64e7f4cceaf73974af0057312b836499089aca832f2ff5824210062c076ceb0d820bba1e150c7f56c4cbf728ee8
6
+ metadata.gz: 359269409ec054b38093f527a6b57b2b0ee6bae5103828e40d14504a897901e4eb72f42b2e486350ebd352500c79f83603bc611ec2fa41155c30b341bcc5880c
7
+ data.tar.gz: 89b03a0959d3bd501b047d1d42cd0110d3419420116936fe31a58f5023d7be6f2341e93fa32341adcbf3b658fc77ad4399977ae1c384d5fed7e9cbaa772e54c9
data/.gemrelease ADDED
@@ -0,0 +1,2 @@
1
+ bump:
2
+ tag: true
data/README.md CHANGED
@@ -1,11 +1,12 @@
1
1
  # acts_as_hashids
2
2
 
3
3
  [![Gem Version][gem-image]][gem-link]
4
+ [![Download][download-image]][download-link]
4
5
  [![Build Status][build-image]][build-link]
5
6
  [![Coverage Status][cov-image]][cov-link]
6
7
  [![Code Climate][gpa-image]][gpa-link]
7
8
 
8
- Use [Hashids](https://github.com/peterhellberg/hashids.rb) (a.k.a. Youtube-Like ID) in ActiveRecord effectively.
9
+ Use [Hashids](https://github.com/peterhellberg/hashids.rb) (a.k.a. Youtube-Like ID) in ActiveRecord seamlessly.
9
10
 
10
11
  ## Installation
11
12
 
@@ -81,6 +82,19 @@ Foo2.create.to_param
81
82
  # => "RxQce3a2"
82
83
  ```
83
84
 
85
+ ### alphabet
86
+
87
+ Specify which characters you use to generate hashids.
88
+
89
+ ```rb
90
+ class Foo < ActiveRecord::Base
91
+ acts_as_hashids alphabet: '0123456789uvwxyz'
92
+ end
93
+
94
+ Foo3.create(id: 1).to_param
95
+ # => "4xw8zwyv"
96
+ ```
97
+
84
98
  ## Test
85
99
 
86
100
  Execute the command below to run rspec and rubocop.
@@ -106,6 +120,8 @@ Copyright (c) 2014 Daisuke Taniwaki. See [LICENSE](LICENSE) for details.
106
120
 
107
121
  [gem-image]: https://badge.fury.io/rb/acts_as_hashids.svg
108
122
  [gem-link]: http://badge.fury.io/rb/acts_as_hashids
123
+ [download-image]:https://img.shields.io/gem/dt/acts_as_hashids.svg
124
+ [download-link]:https://rubygems.org/gems/acts_as_hashids
109
125
  [build-image]: https://secure.travis-ci.org/dtaniwaki/acts_as_hashids.png
110
126
  [build-link]: http://travis-ci.org/dtaniwaki/acts_as_hashids
111
127
  [cov-image]: https://coveralls.io/repos/dtaniwaki/acts_as_hashids/badge.png
@@ -10,8 +10,8 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ['dtaniwaki']
11
11
  spec.email = ['daisuketaniwaki@gmail.com']
12
12
 
13
- spec.summary = 'Hashids in ActiveRecord effectively.'
14
- spec.description = 'Use Hashids in ActiveRecord effectively.'
13
+ spec.summary = 'Use Youtube-Like ID in ActiveRecord seamlessly.'
14
+ spec.description = 'Use Youtube-Like ID in ActiveRecord seamlessly.'
15
15
  spec.homepage = 'https://github.com/dtaniwaki/acts_as_hashids'
16
16
  spec.license = 'MIT'
17
17
 
@@ -13,7 +13,17 @@ module ActsAsHashids
13
13
  def find(ids = nil, &block)
14
14
  return detect(&block) if block.present? && respond_to?(:detect)
15
15
 
16
- encoded_ids = Array(ids).map { |id| id.is_a?(String) ? id : hashids.encode(id) }.flatten
16
+ encoded_ids = Array(ids).map do |id|
17
+ begin
18
+ id = id.to_i if Float(id)
19
+ hashids.encode(id)
20
+ rescue TypeError, ArgumentError
21
+ id
22
+ end
23
+ end
24
+
25
+ encoded_ids = encoded_ids.flatten
26
+
17
27
  res = with_hashids(encoded_ids).all
18
28
  if ids.is_a?(Array)
19
29
  raise_record_not_found_exception! encoded_ids, res.size, encoded_ids.size if res.size != encoded_ids.size
@@ -1,3 +1,3 @@
1
1
  module ActsAsHashids
2
- VERSION = '0.1.4'.freeze
2
+ VERSION = '0.1.5'.freeze
3
3
  end
@@ -45,6 +45,9 @@ RSpec.describe ActsAsHashids::Core do
45
45
  )
46
46
  end
47
47
  end
48
+ it 'returns the record when finding by string id' do
49
+ expect(subject.find(foo1.id.to_s)).to eq foo1
50
+ end
48
51
  end
49
52
  context 'for multiple arguments' do
50
53
  it 'decodes hash id and returns the record' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_hashids
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - dtaniwaki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-19 00:00:00.000000000 Z
11
+ date: 2017-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashids
@@ -156,7 +156,7 @@ dependencies:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0.5'
159
- description: Use Hashids in ActiveRecord effectively.
159
+ description: Use Youtube-Like ID in ActiveRecord seamlessly.
160
160
  email:
161
161
  - daisuketaniwaki@gmail.com
162
162
  executables:
@@ -165,6 +165,7 @@ executables:
165
165
  extensions: []
166
166
  extra_rdoc_files: []
167
167
  files:
168
+ - ".gemrelease"
168
169
  - ".gitignore"
169
170
  - ".rspec"
170
171
  - ".rubocop.yml"
@@ -211,7 +212,7 @@ rubyforge_project:
211
212
  rubygems_version: 2.6.8
212
213
  signing_key:
213
214
  specification_version: 4
214
- summary: Hashids in ActiveRecord effectively.
215
+ summary: Use Youtube-Like ID in ActiveRecord seamlessly.
215
216
  test_files:
216
217
  - spec/acts_as_hashids/core_spec.rb
217
218
  - spec/acts_as_hashids/methods_spec.rb