german_numbers 0.5 → 0.7
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 +5 -5
- data/.circleci/config.yml +3 -5
- data/.rubocop.yml +2 -2
- data/Gemfile.lock +70 -37
- data/german_numbers.gemspec +10 -10
- data/lib/german_numbers/parser/parser.rb +10 -2
- data/lib/german_numbers/parser/small_number_parser.rb +5 -4
- data/lib/german_numbers/parser/stack_machine.rb +3 -2
- data/lib/german_numbers/state_machine.rb +12 -8
- data/lib/german_numbers/stringifier.rb +5 -2
- data/lib/german_numbers/version.rb +1 -1
- metadata +49 -37
- data/.ruby-version +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 1c69a4ae9284efcc24b09557e2f4b8dbad914d0b26cfdf541c564de021eb1eb3
|
|
4
|
+
data.tar.gz: 4c3b0358adda93768847113a414f58a4785f8d257dbd7863453a27aa4ff9b189
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 506041e8f80b4a90fed72d0006b36ee18606fa85a5b3ae04dc67c17ba1612fdbf784f9fb6d1a6826bf65cc045c6e36dbe68c68057251627b466a52c0ea95d76e
|
|
7
|
+
data.tar.gz: 832857c4f115fde37d01ef3e4d23e6091d846587ef8fbd4f6664ac35a1afda5550d1903cf4042a01b229f7307453283e33ad469ff328a5a586fe5bc5cebf2916
|
data/.circleci/config.yml
CHANGED
|
@@ -2,7 +2,7 @@ version: 2
|
|
|
2
2
|
jobs:
|
|
3
3
|
build:
|
|
4
4
|
docker:
|
|
5
|
-
- image: circleci/ruby:2.
|
|
5
|
+
- image: circleci/ruby:2.7.0
|
|
6
6
|
working_directory: ~/german_numbers
|
|
7
7
|
|
|
8
8
|
steps:
|
|
@@ -10,8 +10,7 @@ jobs:
|
|
|
10
10
|
|
|
11
11
|
- restore_cache:
|
|
12
12
|
keys:
|
|
13
|
-
-
|
|
14
|
-
- v1-dependencies-
|
|
13
|
+
- dependencies-{{ checksum "Gemfile.lock" }}
|
|
15
14
|
|
|
16
15
|
- run:
|
|
17
16
|
name: install dependencies
|
|
@@ -20,8 +19,7 @@ jobs:
|
|
|
20
19
|
- save_cache:
|
|
21
20
|
paths:
|
|
22
21
|
- ./vendor/bundle
|
|
23
|
-
key:
|
|
24
|
-
|
|
22
|
+
key: dependencies-{{ checksum "Gemfile.lock" }}
|
|
25
23
|
- run:
|
|
26
24
|
name: run rubocop
|
|
27
25
|
command: bundle exec rubocop
|
data/.rubocop.yml
CHANGED
|
@@ -10,7 +10,7 @@ AllCops:
|
|
|
10
10
|
|
|
11
11
|
DisplayCopNames: true
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Layout/LineLength:
|
|
14
14
|
Max: 120
|
|
15
15
|
Exclude:
|
|
16
16
|
- spec/**/*.rb
|
|
@@ -63,5 +63,5 @@ Metrics/ClassLength:
|
|
|
63
63
|
Style/ClassAndModuleChildren:
|
|
64
64
|
Enabled: false
|
|
65
65
|
|
|
66
|
-
Documentation:
|
|
66
|
+
Style/Documentation:
|
|
67
67
|
Enabled: false
|
data/Gemfile.lock
CHANGED
|
@@ -1,67 +1,100 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
german_numbers (0.
|
|
4
|
+
german_numbers (0.7)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
9
|
ast (2.4.0)
|
|
10
|
+
backport (1.1.2)
|
|
11
|
+
benchmark (0.1.0)
|
|
10
12
|
coderay (1.1.2)
|
|
11
13
|
diff-lcs (1.3)
|
|
12
|
-
docile (1.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
docile (1.3.2)
|
|
15
|
+
e2mmap (0.1.0)
|
|
16
|
+
io-console (0.5.3)
|
|
17
|
+
irb (1.1.0)
|
|
18
|
+
reline (>= 0.0.1)
|
|
19
|
+
jaro_winkler (1.5.4)
|
|
20
|
+
json (2.3.0)
|
|
21
|
+
maruku (0.7.3)
|
|
22
|
+
method_source (0.9.2)
|
|
23
|
+
mini_portile2 (2.4.0)
|
|
24
|
+
nokogiri (1.10.8)
|
|
25
|
+
mini_portile2 (~> 2.4.0)
|
|
26
|
+
parallel (1.19.1)
|
|
27
|
+
parser (2.7.0.2)
|
|
17
28
|
ast (~> 2.4.0)
|
|
18
|
-
|
|
19
|
-
pry (0.11.3)
|
|
29
|
+
pry (0.12.2)
|
|
20
30
|
coderay (~> 1.1.0)
|
|
21
31
|
method_source (~> 0.9.0)
|
|
22
32
|
rainbow (3.0.0)
|
|
23
|
-
rake (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
rspec
|
|
29
|
-
rspec-
|
|
30
|
-
|
|
33
|
+
rake (13.0.1)
|
|
34
|
+
reline (0.1.2)
|
|
35
|
+
io-console (~> 0.5)
|
|
36
|
+
reverse_markdown (1.4.0)
|
|
37
|
+
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)
|
|
31
45
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
32
|
-
rspec-support (~> 3.
|
|
33
|
-
rspec-mocks (3.
|
|
46
|
+
rspec-support (~> 3.9.0)
|
|
47
|
+
rspec-mocks (3.9.1)
|
|
34
48
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
35
|
-
rspec-support (~> 3.
|
|
36
|
-
rspec-support (3.
|
|
37
|
-
rubocop (0.
|
|
49
|
+
rspec-support (~> 3.9.0)
|
|
50
|
+
rspec-support (3.9.2)
|
|
51
|
+
rubocop (0.79.0)
|
|
52
|
+
jaro_winkler (~> 1.5.1)
|
|
38
53
|
parallel (~> 1.10)
|
|
39
|
-
parser (>= 2.
|
|
40
|
-
powerpack (~> 0.1)
|
|
54
|
+
parser (>= 2.7.0.1)
|
|
41
55
|
rainbow (>= 2.2.2, < 4.0)
|
|
42
56
|
ruby-progressbar (~> 1.7)
|
|
43
|
-
unicode-display_width (
|
|
44
|
-
ruby-prof (
|
|
45
|
-
ruby-progressbar (1.
|
|
46
|
-
simplecov (0.
|
|
47
|
-
docile (~> 1.1
|
|
57
|
+
unicode-display_width (>= 1.4.0, < 1.7)
|
|
58
|
+
ruby-prof (1.1.0)
|
|
59
|
+
ruby-progressbar (1.10.1)
|
|
60
|
+
simplecov (0.17.1)
|
|
61
|
+
docile (~> 1.1)
|
|
48
62
|
json (>= 1.8, < 3)
|
|
49
63
|
simplecov-html (~> 0.10.0)
|
|
50
64
|
simplecov-html (0.10.2)
|
|
51
|
-
|
|
65
|
+
solargraph (0.38.1)
|
|
66
|
+
backport (~> 1.1)
|
|
67
|
+
benchmark
|
|
68
|
+
bundler (>= 1.17.2)
|
|
69
|
+
e2mmap
|
|
70
|
+
irb (<= 1.1.0)
|
|
71
|
+
jaro_winkler (~> 1.5)
|
|
72
|
+
maruku (~> 0.7, >= 0.7.3)
|
|
73
|
+
nokogiri (~> 1.9, >= 1.9.1)
|
|
74
|
+
parser (~> 2.3)
|
|
75
|
+
reverse_markdown (~> 1.0, >= 1.0.5)
|
|
76
|
+
rubocop (~> 0.52)
|
|
77
|
+
thor (~> 1.0)
|
|
78
|
+
tilt (~> 2.0)
|
|
79
|
+
yard (~> 0.9)
|
|
80
|
+
thor (1.0.1)
|
|
81
|
+
tilt (2.0.10)
|
|
82
|
+
unicode-display_width (1.6.0)
|
|
83
|
+
yard (0.9.24)
|
|
52
84
|
|
|
53
85
|
PLATFORMS
|
|
54
86
|
ruby
|
|
55
87
|
|
|
56
88
|
DEPENDENCIES
|
|
57
|
-
bundler
|
|
89
|
+
bundler
|
|
58
90
|
german_numbers!
|
|
59
|
-
pry
|
|
60
|
-
rake
|
|
61
|
-
rspec
|
|
62
|
-
rubocop
|
|
63
|
-
ruby-prof
|
|
64
|
-
simplecov
|
|
91
|
+
pry
|
|
92
|
+
rake
|
|
93
|
+
rspec
|
|
94
|
+
rubocop
|
|
95
|
+
ruby-prof
|
|
96
|
+
simplecov
|
|
97
|
+
solargraph
|
|
65
98
|
|
|
66
99
|
BUNDLED WITH
|
|
67
|
-
1.
|
|
100
|
+
2.1.2
|
data/german_numbers.gemspec
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
1
|
# frozen_string_literal: true
|
|
3
2
|
|
|
4
|
-
lib = File.expand_path('
|
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
|
5
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
6
5
|
require 'german_numbers/version'
|
|
7
6
|
|
|
@@ -13,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
|
13
12
|
|
|
14
13
|
spec.summary = 'Gem for converting numbers to german words and vise-versa.'
|
|
15
14
|
spec.description = 'Gem for converting numbers to german words and vise-versa.'
|
|
16
|
-
spec.homepage = 'https://github.com/zhulik/
|
|
15
|
+
spec.homepage = 'https://github.com/zhulik/german_numbers'
|
|
17
16
|
spec.license = 'MIT'
|
|
18
17
|
|
|
19
18
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
@@ -23,11 +22,12 @@ Gem::Specification.new do |spec|
|
|
|
23
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
24
23
|
spec.require_paths = ['lib']
|
|
25
24
|
|
|
26
|
-
spec.add_development_dependency 'bundler'
|
|
27
|
-
spec.add_development_dependency 'pry'
|
|
28
|
-
spec.add_development_dependency 'rake'
|
|
29
|
-
spec.add_development_dependency 'rspec'
|
|
30
|
-
spec.add_development_dependency 'rubocop'
|
|
31
|
-
spec.add_development_dependency 'ruby-prof'
|
|
32
|
-
spec.add_development_dependency 'simplecov'
|
|
25
|
+
spec.add_development_dependency 'bundler'
|
|
26
|
+
spec.add_development_dependency 'pry'
|
|
27
|
+
spec.add_development_dependency 'rake'
|
|
28
|
+
spec.add_development_dependency 'rspec'
|
|
29
|
+
spec.add_development_dependency 'rubocop'
|
|
30
|
+
spec.add_development_dependency 'ruby-prof'
|
|
31
|
+
spec.add_development_dependency 'simplecov'
|
|
32
|
+
spec.add_development_dependency 'solargraph'
|
|
33
33
|
end
|
|
@@ -8,7 +8,7 @@ module GermanNumbers
|
|
|
8
8
|
class Parser
|
|
9
9
|
extend GermanNumbers::StateMachine
|
|
10
10
|
state_machine_for :order do
|
|
11
|
-
state :initial,
|
|
11
|
+
state :initial, final: false
|
|
12
12
|
state :thousands
|
|
13
13
|
state :million_keyword, final: false
|
|
14
14
|
state :millionen_keyword, final: false
|
|
@@ -21,7 +21,8 @@ module GermanNumbers
|
|
|
21
21
|
|
|
22
22
|
transition from: :initial, to: %i[thousands million_keyword millionen_keyword
|
|
23
23
|
milliarde_keyword milliarden_keyword]
|
|
24
|
-
transition from: :thousands, to: %i[million_keyword millionen_keyword milliarde_keyword
|
|
24
|
+
transition from: :thousands, to: %i[million_keyword millionen_keyword milliarde_keyword
|
|
25
|
+
milliarden_keyword]
|
|
25
26
|
transition from: :million_keyword, to: :million
|
|
26
27
|
transition from: :millionen_keyword, to: :millions
|
|
27
28
|
transition from: :milliarde_keyword, to: :billion
|
|
@@ -31,7 +32,9 @@ module GermanNumbers
|
|
|
31
32
|
end
|
|
32
33
|
|
|
33
34
|
DIGITS = GermanNumbers::DIGITS.invert
|
|
35
|
+
|
|
34
36
|
ERRORS = ['ein', 'sech', 'sieb', nil, ''].freeze
|
|
37
|
+
|
|
35
38
|
KEYWORDS = {
|
|
36
39
|
'Million' => :million_keyword,
|
|
37
40
|
'Millionen' => :millionen_keyword,
|
|
@@ -45,6 +48,7 @@ module GermanNumbers
|
|
|
45
48
|
|
|
46
49
|
def parse(string)
|
|
47
50
|
raise ParsingError if ERRORS.include?(string)
|
|
51
|
+
|
|
48
52
|
string.split(' ').reverse.inject(0, &method(:parse_part)).tap do
|
|
49
53
|
raise ParsingError unless final_order_state?
|
|
50
54
|
end
|
|
@@ -76,15 +80,19 @@ module GermanNumbers
|
|
|
76
80
|
|
|
77
81
|
if order_state == :million
|
|
78
82
|
raise ParsingError unless part == 'eine'
|
|
83
|
+
|
|
79
84
|
return sum + 1_000_000
|
|
80
85
|
end
|
|
81
86
|
if order_state == :billion
|
|
82
87
|
raise ParsingError unless part == 'eine'
|
|
88
|
+
|
|
83
89
|
return sum + 1_000_000_000
|
|
84
90
|
end
|
|
85
91
|
|
|
86
92
|
return sum + SmallNumberParser.new(2..999).parse(part) * 1_000_000 if order_state == :millions
|
|
87
93
|
return sum + SmallNumberParser.new(2..999).parse(part) * 1_000_000_000 if order_state == :billions
|
|
94
|
+
|
|
95
|
+
raise ParsingError
|
|
88
96
|
end
|
|
89
97
|
# rubocop:enable Metrics/AbcSize
|
|
90
98
|
# rubocop:enable Metrics/MethodLength
|
|
@@ -6,7 +6,7 @@ module GermanNumbers
|
|
|
6
6
|
extend GermanNumbers::StateMachine
|
|
7
7
|
|
|
8
8
|
state_machine_for :order do
|
|
9
|
-
state :initial,
|
|
9
|
+
state :initial, final: false
|
|
10
10
|
state :units
|
|
11
11
|
state :tausend_keyword, unique: true, final: false
|
|
12
12
|
state :thousands
|
|
@@ -36,14 +36,15 @@ module GermanNumbers
|
|
|
36
36
|
self.order_state = :tausend_keyword
|
|
37
37
|
return sum
|
|
38
38
|
end
|
|
39
|
-
raise ParsingError if (
|
|
39
|
+
raise ParsingError if %w(eins null).include?(part) && order_state == :thousands
|
|
40
|
+
|
|
40
41
|
parse_number(sum, part)
|
|
41
42
|
end
|
|
42
43
|
|
|
43
44
|
def parse_number(sum, part)
|
|
44
45
|
m = StackMachine.new
|
|
45
|
-
(sum + part.split('').reverse.inject(0, &m.method(:step)) * @k).tap do
|
|
46
|
-
raise ParsingError if !m.empty? || !m.final_stack_state? || !@range.cover?(
|
|
46
|
+
(sum + part.split('').reverse.inject(0, &m.method(:step)) * @k).tap do
|
|
47
|
+
raise ParsingError if !m.empty? || !m.final_stack_state? || !@range.cover?(_1)
|
|
47
48
|
end
|
|
48
49
|
end
|
|
49
50
|
end
|
|
@@ -6,7 +6,7 @@ module GermanNumbers
|
|
|
6
6
|
extend GermanNumbers::StateMachine
|
|
7
7
|
|
|
8
8
|
state_machine_for :stack do
|
|
9
|
-
state :initial,
|
|
9
|
+
state :initial, final: false
|
|
10
10
|
state :null, unique: true
|
|
11
11
|
state :eins, unique: true
|
|
12
12
|
state :zehn, unique: true
|
|
@@ -42,7 +42,7 @@ module GermanNumbers
|
|
|
42
42
|
'hundert' => :hundert_keyword
|
|
43
43
|
}.freeze
|
|
44
44
|
|
|
45
|
-
SHORT_UNITS = Set.new(%w(drei vier fünf sech sieb acht neun))
|
|
45
|
+
SHORT_UNITS = Set.new(%w(drei vier fünf sech sieb acht neun))
|
|
46
46
|
|
|
47
47
|
def initialize
|
|
48
48
|
initialize_stack(:initial)
|
|
@@ -67,6 +67,7 @@ module GermanNumbers
|
|
|
67
67
|
return result
|
|
68
68
|
end
|
|
69
69
|
return result if num.nil?
|
|
70
|
+
|
|
70
71
|
@collector = ''
|
|
71
72
|
result + num * @k
|
|
72
73
|
end
|
|
@@ -29,26 +29,28 @@ module GermanNumbers
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
class Machine
|
|
32
|
-
attr_reader :states
|
|
32
|
+
attr_reader :states
|
|
33
|
+
|
|
34
|
+
attr_reader :transitions
|
|
33
35
|
|
|
34
36
|
def initialize
|
|
35
37
|
@states = {}
|
|
36
38
|
@transitions = Hash.new { [] }
|
|
37
39
|
end
|
|
38
40
|
|
|
39
|
-
def state(state,
|
|
40
|
-
@states[state] = State.new(state,
|
|
41
|
+
def state(state, final: true, unique: false)
|
|
42
|
+
@states[state] = State.new(state, @states.empty?, final, unique)
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
def transition(from:, to:)
|
|
44
46
|
to = [to].flatten
|
|
45
|
-
validate_state!(from,
|
|
46
|
-
to.each do
|
|
47
|
-
@transitions[from] = @transitions[from] <<
|
|
47
|
+
validate_state!([from, to].flatten)
|
|
48
|
+
to.each do
|
|
49
|
+
@transitions[from] = @transitions[from] << _1
|
|
48
50
|
end
|
|
49
51
|
end
|
|
50
52
|
|
|
51
|
-
def validate_state!(
|
|
53
|
+
def validate_state!(states)
|
|
52
54
|
states.each do |state|
|
|
53
55
|
raise StateError, "#{state} is unknown state" unless @states.include?(state)
|
|
54
56
|
end
|
|
@@ -74,13 +76,15 @@ module GermanNumbers
|
|
|
74
76
|
if instance_variable_get(history_name).include?(ns) && m.states[ns].unique?
|
|
75
77
|
raise StateError, "#{ns} is a unique state and has already been taken"
|
|
76
78
|
end
|
|
79
|
+
|
|
77
80
|
instance_variable_get(history_name) << ns
|
|
78
81
|
instance_variable_set(var_name, ns)
|
|
79
82
|
end
|
|
80
83
|
|
|
81
84
|
define_method("initialize_#{field}") do |initial|
|
|
82
|
-
m.validate_state!(initial)
|
|
85
|
+
m.validate_state!([initial])
|
|
83
86
|
raise StateError, "#{initial} is not possible initial state" unless m.states[initial].can_be_initial?
|
|
87
|
+
|
|
84
88
|
instance_variable_set(history_name, Set.new)
|
|
85
89
|
instance_variable_set(var_name, initial)
|
|
86
90
|
end
|
|
@@ -11,8 +11,8 @@ module GermanNumbers
|
|
|
11
11
|
|
|
12
12
|
number = number.to_s.rjust(12, '0')
|
|
13
13
|
|
|
14
|
-
billions, millions, thousands, number = number.
|
|
15
|
-
|
|
14
|
+
billions, millions, thousands, number = number.reverse.scan(/.{1,3}/).map do
|
|
15
|
+
_1.reverse.to_i
|
|
16
16
|
end.reverse
|
|
17
17
|
|
|
18
18
|
postprocess(process(billions, millions, thousands, number))
|
|
@@ -50,14 +50,17 @@ module GermanNumbers
|
|
|
50
50
|
|
|
51
51
|
def under_hundred(digits)
|
|
52
52
|
return '' if digits.all?(&:zero?)
|
|
53
|
+
|
|
53
54
|
n = DIGITS["#{digits[1]}#{digits[0]}".to_i]
|
|
54
55
|
return n unless n.nil?
|
|
56
|
+
|
|
55
57
|
DIGITS[digits[0]] + 'und' + DIGITS[(digits[1] * 10)]
|
|
56
58
|
end
|
|
57
59
|
|
|
58
60
|
def decline(count, number)
|
|
59
61
|
return number if count == 1
|
|
60
62
|
return number + 'n' if number.end_with?('e')
|
|
63
|
+
|
|
61
64
|
number + 'en'
|
|
62
65
|
end
|
|
63
66
|
end
|
metadata
CHANGED
|
@@ -1,113 +1,127 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: german_numbers
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: '0.
|
|
4
|
+
version: '0.7'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gleb Sinyavsky
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-10-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '0'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: pry
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0
|
|
33
|
+
version: '0'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- - "
|
|
38
|
+
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0
|
|
40
|
+
version: '0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rake
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '0'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - "
|
|
52
|
+
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rspec
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
|
-
- - "
|
|
59
|
+
- - ">="
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '0'
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
|
-
- - "
|
|
66
|
+
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
68
|
+
version: '0'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: rubocop
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- - "
|
|
73
|
+
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0
|
|
75
|
+
version: '0'
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0
|
|
82
|
+
version: '0'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: ruby-prof
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
|
-
- - "
|
|
87
|
+
- - ">="
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0
|
|
89
|
+
version: '0'
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
|
-
- - "
|
|
94
|
+
- - ">="
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0
|
|
96
|
+
version: '0'
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: simplecov
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
|
-
- - "
|
|
101
|
+
- - ">="
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0
|
|
103
|
+
version: '0'
|
|
104
104
|
type: :development
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
|
-
- - "
|
|
108
|
+
- - ">="
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0
|
|
110
|
+
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: solargraph
|
|
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'
|
|
111
125
|
description: Gem for converting numbers to german words and vise-versa.
|
|
112
126
|
email:
|
|
113
127
|
- zhulik.gleb@gmail.com
|
|
@@ -121,7 +135,6 @@ files:
|
|
|
121
135
|
- ".rspec"
|
|
122
136
|
- ".rubocop.yml"
|
|
123
137
|
- ".ruby-gemset"
|
|
124
|
-
- ".ruby-version"
|
|
125
138
|
- Gemfile
|
|
126
139
|
- Gemfile.lock
|
|
127
140
|
- LICENSE
|
|
@@ -138,11 +151,11 @@ files:
|
|
|
138
151
|
- lib/german_numbers/state_machine.rb
|
|
139
152
|
- lib/german_numbers/stringifier.rb
|
|
140
153
|
- lib/german_numbers/version.rb
|
|
141
|
-
homepage: https://github.com/zhulik/
|
|
154
|
+
homepage: https://github.com/zhulik/german_numbers
|
|
142
155
|
licenses:
|
|
143
156
|
- MIT
|
|
144
157
|
metadata: {}
|
|
145
|
-
post_install_message:
|
|
158
|
+
post_install_message:
|
|
146
159
|
rdoc_options: []
|
|
147
160
|
require_paths:
|
|
148
161
|
- lib
|
|
@@ -157,9 +170,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
157
170
|
- !ruby/object:Gem::Version
|
|
158
171
|
version: '0'
|
|
159
172
|
requirements: []
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
signing_key:
|
|
173
|
+
rubygems_version: 3.1.2
|
|
174
|
+
signing_key:
|
|
163
175
|
specification_version: 4
|
|
164
176
|
summary: Gem for converting numbers to german words and vise-versa.
|
|
165
177
|
test_files: []
|
data/.ruby-version
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2.4.2
|