german_numbers 0.7 → 0.8

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
  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
  - - ">="