german_numbers 0.7 → 0.8

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: 1c69a4ae9284efcc24b09557e2f4b8dbad914d0b26cfdf541c564de021eb1eb3
4
- data.tar.gz: 4c3b0358adda93768847113a414f58a4785f8d257dbd7863453a27aa4ff9b189
3
+ metadata.gz: cc75dfff46fb6d28d6c2c1cfaa342441e546c0cebdfdfcf1d9fe3459ea627429
4
+ data.tar.gz: 7083530b748d6b2b67456699dade28d60a12cb08b260052f0728456df57a8fb5
5
5
  SHA512:
6
- metadata.gz: 506041e8f80b4a90fed72d0006b36ee18606fa85a5b3ae04dc67c17ba1612fdbf784f9fb6d1a6826bf65cc045c6e36dbe68c68057251627b466a52c0ea95d76e
7
- data.tar.gz: 832857c4f115fde37d01ef3e4d23e6091d846587ef8fbd4f6664ac35a1afda5550d1903cf4042a01b229f7307453283e33ad469ff328a5a586fe5bc5cebf2916
6
+ metadata.gz: dc7ee38d18853e5a525e5cf820d3dcfe5f8d051f961ae7bbd3d1a1896bb1dd7928cda6d2ee11e6dd148751e8c2b5043ba02b4891bf0d546d6a7b1291e7f8afbc
7
+ data.tar.gz: 05a5750adbd6df591abe390edf99d5e49d3a812b784376c715c597858067ab8c93316f53e0eeb4ea04266239a90fe106520d5baf1e36418ce0d21179b6679783
@@ -1,5 +1,11 @@
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rspec
4
+ - rubocop-rake
5
+
1
6
  AllCops:
2
- TargetRubyVersion: 2.4.2
7
+ TargetRubyVersion: 3.0.0
8
+ NewCops: enable
3
9
 
4
10
  Exclude:
5
11
  - ./**/schema.rb
@@ -1,89 +1,100 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- german_numbers (0.7)
4
+ german_numbers (0.8)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- ast (2.4.0)
9
+ ast (2.4.1)
10
10
  backport (1.1.2)
11
- benchmark (0.1.0)
12
- coderay (1.1.2)
13
- diff-lcs (1.3)
14
- docile (1.3.2)
11
+ benchmark (0.1.1)
12
+ coderay (1.1.3)
13
+ diff-lcs (1.4.4)
14
+ docile (1.3.4)
15
15
  e2mmap (0.1.0)
16
- io-console (0.5.3)
17
- irb (1.1.0)
18
- reline (>= 0.0.1)
19
16
  jaro_winkler (1.5.4)
20
- json (2.3.0)
21
- maruku (0.7.3)
22
- method_source (0.9.2)
17
+ kramdown (2.3.0)
18
+ rexml
19
+ kramdown-parser-gfm (1.1.0)
20
+ kramdown (~> 2.0)
21
+ method_source (1.0.0)
23
22
  mini_portile2 (2.4.0)
24
- nokogiri (1.10.8)
23
+ nokogiri (1.10.10)
25
24
  mini_portile2 (~> 2.4.0)
26
- parallel (1.19.1)
27
- parser (2.7.0.2)
28
- ast (~> 2.4.0)
29
- pry (0.12.2)
30
- coderay (~> 1.1.0)
31
- method_source (~> 0.9.0)
25
+ parallel (1.20.1)
26
+ parser (2.7.2.0)
27
+ ast (~> 2.4.1)
28
+ pry (0.13.1)
29
+ coderay (~> 1.1)
30
+ method_source (~> 1.0)
32
31
  rainbow (3.0.0)
33
- rake (13.0.1)
34
- reline (0.1.2)
35
- io-console (~> 0.5)
36
- reverse_markdown (1.4.0)
32
+ rake (13.0.3)
33
+ regexp_parser (2.0.2)
34
+ reverse_markdown (2.0.0)
37
35
  nokogiri
38
- rspec (3.9.0)
39
- rspec-core (~> 3.9.0)
40
- rspec-expectations (~> 3.9.0)
41
- rspec-mocks (~> 3.9.0)
42
- rspec-core (3.9.1)
43
- rspec-support (~> 3.9.1)
44
- rspec-expectations (3.9.0)
36
+ rexml (3.2.4)
37
+ rspec (3.10.0)
38
+ rspec-core (~> 3.10.0)
39
+ rspec-expectations (~> 3.10.0)
40
+ rspec-mocks (~> 3.10.0)
41
+ rspec-core (3.10.0)
42
+ rspec-support (~> 3.10.0)
43
+ rspec-expectations (3.10.0)
45
44
  diff-lcs (>= 1.2.0, < 2.0)
46
- rspec-support (~> 3.9.0)
47
- rspec-mocks (3.9.1)
45
+ rspec-support (~> 3.10.0)
46
+ rspec-mocks (3.10.0)
48
47
  diff-lcs (>= 1.2.0, < 2.0)
49
- rspec-support (~> 3.9.0)
50
- rspec-support (3.9.2)
51
- rubocop (0.79.0)
52
- jaro_winkler (~> 1.5.1)
48
+ rspec-support (~> 3.10.0)
49
+ rspec-support (3.10.0)
50
+ rubocop (1.7.0)
53
51
  parallel (~> 1.10)
54
- parser (>= 2.7.0.1)
52
+ parser (>= 2.7.1.5)
55
53
  rainbow (>= 2.2.2, < 4.0)
54
+ regexp_parser (>= 1.8, < 3.0)
55
+ rexml
56
+ rubocop-ast (>= 1.2.0, < 2.0)
56
57
  ruby-progressbar (~> 1.7)
57
- unicode-display_width (>= 1.4.0, < 1.7)
58
- ruby-prof (1.1.0)
58
+ unicode-display_width (>= 1.4.0, < 2.0)
59
+ rubocop-ast (1.3.0)
60
+ parser (>= 2.7.1.5)
61
+ rubocop-performance (1.9.1)
62
+ rubocop (>= 0.90.0, < 2.0)
63
+ rubocop-ast (>= 0.4.0)
64
+ rubocop-rake (0.5.1)
65
+ rubocop
66
+ rubocop-rspec (2.1.0)
67
+ rubocop (~> 1.0)
68
+ rubocop-ast (>= 1.1.0)
69
+ ruby-prof (1.4.2)
59
70
  ruby-progressbar (1.10.1)
60
- simplecov (0.17.1)
71
+ simplecov (0.20.0)
61
72
  docile (~> 1.1)
62
- json (>= 1.8, < 3)
63
- simplecov-html (~> 0.10.0)
64
- simplecov-html (0.10.2)
65
- solargraph (0.38.1)
73
+ simplecov-html (~> 0.11)
74
+ simplecov_json_formatter (~> 0.1)
75
+ simplecov-html (0.12.3)
76
+ simplecov_json_formatter (0.1.2)
77
+ solargraph (0.40.0)
66
78
  backport (~> 1.1)
67
79
  benchmark
68
80
  bundler (>= 1.17.2)
69
81
  e2mmap
70
- irb (<= 1.1.0)
71
82
  jaro_winkler (~> 1.5)
72
- maruku (~> 0.7, >= 0.7.3)
73
- nokogiri (~> 1.9, >= 1.9.1)
83
+ kramdown (~> 2.3)
84
+ kramdown-parser-gfm (~> 1.1)
74
85
  parser (~> 2.3)
75
- reverse_markdown (~> 1.0, >= 1.0.5)
76
- rubocop (~> 0.52)
86
+ reverse_markdown (>= 1.0.5, < 3)
87
+ rubocop (>= 0.52)
77
88
  thor (~> 1.0)
78
89
  tilt (~> 2.0)
79
- yard (~> 0.9)
90
+ yard (~> 0.9, >= 0.9.24)
80
91
  thor (1.0.1)
81
92
  tilt (2.0.10)
82
- unicode-display_width (1.6.0)
83
- yard (0.9.24)
93
+ unicode-display_width (1.7.0)
94
+ yard (0.9.26)
84
95
 
85
96
  PLATFORMS
86
- ruby
97
+ x86_64-linux
87
98
 
88
99
  DEPENDENCIES
89
100
  bundler
@@ -92,9 +103,12 @@ DEPENDENCIES
92
103
  rake
93
104
  rspec
94
105
  rubocop
106
+ rubocop-performance
107
+ rubocop-rake
108
+ rubocop-rspec
95
109
  ruby-prof
96
110
  simplecov
97
111
  solargraph
98
112
 
99
113
  BUNDLED WITH
100
- 2.1.2
114
+ 2.2.3
@@ -4,11 +4,12 @@ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'german_numbers/version'
6
6
 
7
- Gem::Specification.new do |spec|
7
+ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
8
8
  spec.name = 'german_numbers'
9
9
  spec.version = GermanNumbers::VERSION
10
10
  spec.authors = ['Gleb Sinyavsky']
11
11
  spec.email = ['zhulik.gleb@gmail.com']
12
+ spec.required_ruby_version = '3.0.0'
12
13
 
13
14
  spec.summary = 'Gem for converting numbers to german words and vise-versa.'
14
15
  spec.description = 'Gem for converting numbers to german words and vise-versa.'
@@ -27,6 +28,9 @@ Gem::Specification.new do |spec|
27
28
  spec.add_development_dependency 'rake'
28
29
  spec.add_development_dependency 'rspec'
29
30
  spec.add_development_dependency 'rubocop'
31
+ spec.add_development_dependency 'rubocop-performance'
32
+ spec.add_development_dependency 'rubocop-rake'
33
+ spec.add_development_dependency 'rubocop-rspec'
30
34
  spec.add_development_dependency 'ruby-prof'
31
35
  spec.add_development_dependency 'simplecov'
32
36
  spec.add_development_dependency 'solargraph'
@@ -49,7 +49,7 @@ module GermanNumbers
49
49
  def parse(string)
50
50
  raise ParsingError if ERRORS.include?(string)
51
51
 
52
- string.split(' ').reverse.inject(0, &method(:parse_part)).tap do
52
+ string.split.reverse.inject(0) { parse_part(_1, _2) }.tap do
53
53
  raise ParsingError unless final_order_state?
54
54
  end
55
55
  rescue ParsingError, StateMachine::StateError
@@ -22,7 +22,7 @@ module GermanNumbers
22
22
  end
23
23
 
24
24
  def parse(string)
25
- string.split(/(tausend)/).reverse.inject(0, &method(:parse_part))
25
+ string.split(/(tausend)/).reverse.inject(0) { parse_part(_1, _2) }
26
26
  end
27
27
 
28
28
  private
@@ -43,7 +43,7 @@ module GermanNumbers
43
43
 
44
44
  def parse_number(sum, part)
45
45
  m = StackMachine.new
46
- (sum + part.split('').reverse.inject(0, &m.method(:step)) * @k).tap do
46
+ (sum + part.split('').reverse.inject(0) { m.step(_1, _2) } * @k).tap do
47
47
  raise ParsingError if !m.empty? || !m.final_stack_state? || !@range.cover?(_1)
48
48
  end
49
49
  end
@@ -29,9 +29,7 @@ module GermanNumbers
29
29
  end
30
30
 
31
31
  class Machine
32
- attr_reader :states
33
-
34
- attr_reader :transitions
32
+ attr_reader :states, :transitions
35
33
 
36
34
  def initialize
37
35
  @states = {}
@@ -36,8 +36,8 @@ module GermanNumbers
36
36
 
37
37
  def postprocess(result)
38
38
  result += 's' if result.end_with?('ein')
39
- result = 'ein' + result if SMALL_KEYWORDS.include?(result)
40
- result = 'eine ' + result if BIG_KEYWORDS.include?(result)
39
+ result = "ein#{result}" if SMALL_KEYWORDS.include?(result)
40
+ result = "eine #{result}" if BIG_KEYWORDS.include?(result)
41
41
  result.strip
42
42
  end
43
43
 
@@ -54,14 +54,14 @@ module GermanNumbers
54
54
  n = DIGITS["#{digits[1]}#{digits[0]}".to_i]
55
55
  return n unless n.nil?
56
56
 
57
- DIGITS[digits[0]] + 'und' + DIGITS[(digits[1] * 10)]
57
+ "#{DIGITS[digits[0]]}und#{DIGITS[(digits[1] * 10)]}"
58
58
  end
59
59
 
60
60
  def decline(count, number)
61
61
  return number if count == 1
62
- return number + 'n' if number.end_with?('e')
62
+ return "#{number}n" if number.end_with?('e')
63
63
 
64
- number + 'en'
64
+ "#{number}en"
65
65
  end
66
66
  end
67
67
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GermanNumbers
4
- VERSION = '0.7'
4
+ VERSION = '0.8'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: german_numbers
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.7'
4
+ version: '0.8'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Sinyavsky
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-01 00:00:00.000000000 Z
11
+ date: 2020-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,48 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-performance
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
83
125
  - !ruby/object:Gem::Dependency
84
126
  name: ruby-prof
85
127
  requirement: !ruby/object:Gem::Requirement
@@ -161,9 +203,9 @@ require_paths:
161
203
  - lib
162
204
  required_ruby_version: !ruby/object:Gem::Requirement
163
205
  requirements:
164
- - - ">="
206
+ - - '='
165
207
  - !ruby/object:Gem::Version
166
- version: '0'
208
+ version: 3.0.0
167
209
  required_rubygems_version: !ruby/object:Gem::Requirement
168
210
  requirements:
169
211
  - - ">="