hashid-rails 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66d9ab4bf57ba4701a2c7b6b3623918acf8d6d5b
4
- data.tar.gz: 9c3d4ddb80707ba6d37527fb42866a5d207476a4
3
+ metadata.gz: 507694ba57b2e4a2bcdfa90869828753f0cb30d1
4
+ data.tar.gz: 91496f73e9b29be5cb2a4c72693de1f60c545b08
5
5
  SHA512:
6
- metadata.gz: 890565c0d8146c4cd14767b6532c00173e94f2d0d88945575a763ad657c68c01cca430740849914321024f46978006f49e1f4c3818b270dfdfabe6477cf0de63
7
- data.tar.gz: 462f649bb6208099c1aa5901d6868fb2ee94841121864f1c4d5a29059b8dc3abdf230804d9deb052469071345c29e7fc9959a7975afc2cbcda2a516c1856d227
6
+ metadata.gz: 661591b2767fae3adc5556e7e6c78fe912cbad133fedcd4266ee1d2317fc82cd29afe6fdf9d2870b2f4ce41d3f4e89fa7d56c0cc23ea5eed20c475eb96460006
7
+ data.tar.gz: 01c86a260f13fa72a9a253175ff3728d583ee41a70fc2e1960546efe0f716994ef2c4c2b7abe59218745543c501542dcd2abf62f93e8b54fa037b32472eae0e1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.0 (2017-11-17)
4
+ - Fix regression where `find_by_hashid` and `find_by_hashid!` attempt to decode
5
+ values that are not hashids. ([#41](https://github.com/jcypret/hashid-rails/pull/41))
6
+
3
7
  ## 1.1.1 (2017-11-03)
4
8
  - Fix eager loading and finding records through a parent. ([#39](https://github.com/jcypret/hashid-rails/pull/39))
5
9
 
data/README.md CHANGED
@@ -18,7 +18,7 @@ be added or removed at any time.
18
18
  Add this line to your application's Gemfile:
19
19
 
20
20
  ```ruby
21
- gem 'hashid-rails'
21
+ gem 'hashid-rails', '~> 1.0'
22
22
  ```
23
23
 
24
24
  And then execute:
@@ -30,7 +30,7 @@ $ bundle
30
30
  Or install it yourself as:
31
31
 
32
32
  ```shell
33
- $ gem install hashid-rails
33
+ $ gem install hashid-rails -v 1.0
34
34
  ```
35
35
 
36
36
  ## Basic Usage
data/lib/hashid/rails.rb CHANGED
@@ -52,11 +52,14 @@ module Hashid
52
52
  end
53
53
  end
54
54
 
55
- def decode_id(ids)
55
+ # @param ids [String, Integer, Array<Integer, String>] id(s) to decode.
56
+ # @param fallback [Boolean] indicates whether to return the passed in
57
+ # id(s) if unable to decode or if already decoded.
58
+ def decode_id(ids, fallback: false)
56
59
  if ids.is_a?(Array)
57
- ids.map { |id| hashid_decode(id) }
60
+ ids.map { |id| hashid_decode(id, fallback: fallback) }
58
61
  else
59
- hashid_decode(ids)
62
+ hashid_decode(ids, fallback: fallback)
60
63
  end
61
64
  end
62
65
 
@@ -67,18 +70,18 @@ module Hashid
67
70
  uniq_ids = uniq_ids.first unless expects_array || uniq_ids.size > 1
68
71
 
69
72
  if Hashid::Rails.configuration.override_find
70
- super(decode_id(uniq_ids))
73
+ super(decode_id(uniq_ids, fallback: true))
71
74
  else
72
75
  super
73
76
  end
74
77
  end
75
78
 
76
79
  def find_by_hashid(hashid)
77
- find_by(id: decode_id(hashid))
80
+ find_by(id: decode_id(hashid, fallback: false))
78
81
  end
79
82
 
80
83
  def find_by_hashid!(hashid)
81
- find_by!(id: decode_id(hashid))
84
+ find_by!(id: decode_id(hashid, fallback: false))
82
85
  end
83
86
 
84
87
  private
@@ -95,10 +98,12 @@ module Hashid
95
98
  end
96
99
  end
97
100
 
98
- def hashid_decode(id)
101
+ def hashid_decode(id, fallback:)
99
102
  decoded_hashid = hashids.decode(id.to_s)
103
+ fallback_value = fallback ? id : nil
104
+
100
105
  if Hashid::Rails.configuration.sign_hashids
101
- valid_hashid?(decoded_hashid) ? decoded_hashid.last : id
106
+ valid_hashid?(decoded_hashid) ? decoded_hashid.last : fallback_value
102
107
  else
103
108
  decoded_hashid.first
104
109
  end
@@ -1,5 +1,5 @@
1
1
  module Hashid
2
2
  module Rails
3
- VERSION = "1.1.1".freeze
3
+ VERSION = "1.2.0".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hashid-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Cypret
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-04 00:00:00.000000000 Z
11
+ date: 2017-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler