phc_string_format 0.3.5 → 0.3.6

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
  SHA256:
3
- metadata.gz: bb2f0d0c00976c78f68dfc2ebdaa2fa87bbe930aecd1a97a29d41352f6f03bb2
4
- data.tar.gz: 98d1aa8ababe727401fe90b8235f645598037c864d23fc67b9992c6adc3aeeb5
3
+ metadata.gz: 41338e6a8802d92b3e88ce469726ef0c951e00aace68150830af98a5bd61198d
4
+ data.tar.gz: 48a98362995d3773109c0814a5d6882064a5007892e8b7306b0e4faca0cd1833
5
5
  SHA512:
6
- metadata.gz: d237ce6fc74598654b30c18b16688e15407d89e3df3d051282a77d4a8ab9be1d6f06da53927083dbf89cbdb238896004f2cbc20e83bbbd1b4206713dcfafb80b
7
- data.tar.gz: 3c81d00427397be5fe6357e9478eda86864bb35388430a97d86e83839d92409bc29b72c0f1a2bd3524249e2b7591a014f4cdd995abb4c0bba3162009da115f26
6
+ metadata.gz: 94a8ad963cb6f812fb3b613a3755a160c54186fbf574de250254f268f0a5ceeb00ea4927eb2b9f1af56a5eec8c3ef5a5f1165705ce52a103d6b780d955e09e89
7
+ data.tar.gz: bb96c7aff20a6fca4d6707ec03211c27a8748372b3ce8e35c2ae0b8f557a9671909339c8d3cf1d5049e3893ca2f2ad3d386f671d97d05fa6fcb67ac3c7bd113a
data/.reek.yml CHANGED
@@ -1,21 +1,14 @@
1
1
  ---
2
2
  detectors:
3
3
 
4
- FeatureEnvy:
5
- exclude:
6
- - 'PhcStringFormat::PhcString#parse_params'
7
-
8
4
  LongParameterList:
9
5
  max_params: 6
10
- overrides:
11
- initialize:
12
- max_params: 6
13
6
 
14
7
  TooManyStatements:
15
8
  max_statements: 10
16
9
 
17
10
  TooManyInstanceVariables:
18
- max_instance_variables: 6
11
+ max_instance_variables: 5
19
12
 
20
13
  UncommunicativeModuleName:
21
14
  accept:
@@ -17,7 +17,7 @@ Metrics/CyclomaticComplexity:
17
17
  Max: 7
18
18
 
19
19
  Metrics/LineLength:
20
- Max: 110
20
+ Max: 110
21
21
 
22
22
  Metrics/MethodLength:
23
23
  Max: 15
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- phc_string_format (0.3.5)
4
+ phc_string_format (0.3.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -26,13 +26,12 @@ module PhcStringFormat
26
26
  end
27
27
 
28
28
  def self.create(id:, version: nil, params: nil, salt: nil, hash: nil, hint: {})
29
- PhcString.new(
29
+ PhcString.new \
30
30
  id,
31
- ("v=#{version}" if version),
32
- (params.map { |entry| entry.join '=' }.join(',') if params),
31
+ (Parameters.to_s(v: version) if version),
32
+ (Parameters.to_s(params) if params),
33
33
  hint.dig(:salt, :encoding) == '7bit' ? salt : B64.encode(salt),
34
34
  B64.encode(hash)
35
- )
36
35
  end
37
36
 
38
37
  private_class_method :split
@@ -80,8 +79,8 @@ module PhcStringFormat
80
79
  pick ||= %i[id version params salt hash]
81
80
  {
82
81
  id: (@id if pick.include?(:id)),
83
- version: (parse_version(@version_string) if pick.include?(:version)),
84
- params: (parse_params(@params_string) if pick.include?(:params)),
82
+ version: (Parameters.to_h(@version_string)['v'] if pick.include?(:version)),
83
+ params: (Parameters.to_h(@params_string) if pick.include?(:params)),
85
84
  salt:
86
85
  if pick.include?(:salt)
87
86
  hint.dig(:salt, :encoding) == '7bit' ? @encoded_salt : B64.decode(@encoded_salt)
@@ -106,18 +105,23 @@ module PhcStringFormat
106
105
  @encoded_salt || !@encoded_hash
107
106
  end
108
107
 
109
- def parse_version(version_string)
110
- parse_params(version_string)['v']
111
- end
108
+ #
109
+ # PHC string parameters
110
+ #
111
+ module Parameters
112
+ def self.to_s(params)
113
+ params ||= {}
114
+ params.map { |param| param.join '=' }.join(',')
115
+ end
112
116
 
113
- def parse_params(params_string)
114
- mapper = ->(param) { param.split '=' }
115
- reducer = lambda do |param, params|
116
- name, value = param
117
- params[name] = value =~ /\A-?\d+(.\d+)?\Z/ ? value.to_i : value
117
+ def self.to_h(params_string)
118
+ params_string ||= ''
119
+ params_string
120
+ .split(/,/)
121
+ .map { |param| param.split '=' }
122
+ .map { |name, value| [name, value =~ /\A-?\d+(.\d+)?\Z/ ? value.to_i : value] }
123
+ .to_h
118
124
  end
119
- params_string ||= ''
120
- params_string.split(/,/).map(&mapper).each_with_object({}, &reducer)
121
125
  end
122
126
  end
123
127
 
@@ -1,3 +1,3 @@
1
1
  module PhcStringFormat
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phc_string_format
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - naokikimura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-04 00:00:00.000000000 Z
11
+ date: 2018-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler