formatting 0.0.17 → 0.0.18
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/.github/workflows/ci.yml +26 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +5 -0
- data/Gemfile +11 -1
- data/README.md +2 -0
- data/Rakefile +3 -1
- data/formatting.gemspec +8 -10
- data/lib/formatting/currency.rb +2 -0
- data/lib/formatting/number.rb +4 -2
- data/lib/formatting/percent.rb +2 -0
- data/lib/formatting/version.rb +3 -1
- data/lib/formatting.rb +2 -1
- data/spec/currency_spec.rb +11 -9
- data/spec/number_spec.rb +7 -6
- data/spec/percent_spec.rb +5 -3
- data/spec/spec_helper.rb +8 -0
- metadata +12 -52
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bc0d48715ff358482643c0ab965fcd3965399fb78eec281e109142917d0e249c
|
4
|
+
data.tar.gz: 74079c3f59a8f5c7e925ba627f1213c7956a7be5b5e23a7e0f5a9ad7dee19447
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fa29df5ceb15a52ff8630678295306dd88cc2de04f0aa2ca46bf2a636bfe56dcd0afd6fc7356ba68229e1c33ba7171bcdf6fe339bee209b7f407d44930aaf08
|
7
|
+
data.tar.gz: 5d43ba483c1d4b0c1e5805e70d6689242b8ff4261d8b4089372eac01115cb382a3f1cf147ad29c4667d35610cdba811a49be12d8173db58dd926c3a656349203
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: Ruby CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
|
14
|
+
strategy:
|
15
|
+
matrix:
|
16
|
+
ruby-version: ["3.0", "2.7", "2.6", "2.5"]
|
17
|
+
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v2
|
20
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
21
|
+
uses: ruby/setup-ruby@v1
|
22
|
+
with:
|
23
|
+
ruby-version: ${{ matrix.ruby-version }}
|
24
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
25
|
+
- name: Run tests
|
26
|
+
run: bundle exec rake
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
data/Gemfile
CHANGED
@@ -1,4 +1,14 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
2
4
|
|
3
5
|
# Specify your gem's dependencies in formatting.gemspec
|
4
6
|
gemspec
|
7
|
+
|
8
|
+
group :development do
|
9
|
+
gem "barsoom_utils", github: "barsoom/barsoom_utils"
|
10
|
+
gem "bundler"
|
11
|
+
gem "rake"
|
12
|
+
gem "rspec"
|
13
|
+
gem "rubocop"
|
14
|
+
end
|
data/README.md
CHANGED
data/Rakefile
CHANGED
data/formatting.gemspec
CHANGED
@@ -1,24 +1,22 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
5
|
+
require "formatting/version"
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
8
|
spec.name = "formatting"
|
8
9
|
spec.version = Formatting::VERSION
|
9
|
-
spec.authors = ["Henrik Nyh", "Tomas Skogberg"]
|
10
|
-
spec.email = ["henrik@barsoom.se", "tomas@barsoom.se"]
|
10
|
+
spec.authors = [ "Henrik Nyh", "Tomas Skogberg" ]
|
11
|
+
spec.email = [ "henrik@barsoom.se", "tomas@barsoom.se" ]
|
11
12
|
spec.summary = %q{Rails-less formatting for your unit-testable code.}
|
12
13
|
spec.homepage = ""
|
13
14
|
spec.license = "MIT"
|
15
|
+
spec.metadata = { "rubygems_mfa_required" => "true" }
|
14
16
|
|
15
17
|
spec.files = `git ls-files`.split($/)
|
16
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
-
spec.require_paths = ["lib"]
|
19
|
+
spec.require_paths = [ "lib" ]
|
19
20
|
|
20
21
|
spec.add_dependency "attr_extras"
|
21
|
-
spec.add_development_dependency "bundler", "~> 1.3"
|
22
|
-
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "rspec"
|
24
22
|
end
|
data/lib/formatting/currency.rb
CHANGED
data/lib/formatting/number.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "attr_extras"
|
2
4
|
|
3
5
|
module Formatting
|
@@ -39,7 +41,7 @@ module Formatting
|
|
39
41
|
end
|
40
42
|
|
41
43
|
# Avoid negative zero.
|
42
|
-
number =
|
44
|
+
number = number.abs if number.zero?
|
43
45
|
|
44
46
|
if round
|
45
47
|
number = number.round(round) if has_decimals
|
@@ -59,7 +61,7 @@ module Formatting
|
|
59
61
|
decimals = decimals.ljust(min_decimals, "0")
|
60
62
|
end
|
61
63
|
|
62
|
-
[integer, decimals].compact.join(decimal_separator)
|
64
|
+
[ integer, decimals ].compact.join(decimal_separator)
|
63
65
|
end
|
64
66
|
|
65
67
|
private
|
data/lib/formatting/percent.rb
CHANGED
data/lib/formatting/version.rb
CHANGED
data/lib/formatting.rb
CHANGED
data/spec/currency_spec.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "spec_helper"
|
2
4
|
|
3
|
-
describe Formatting::Currency do
|
5
|
+
RSpec.describe Formatting::Currency do
|
4
6
|
it "can be included as a module" do
|
5
7
|
object = Object.new
|
6
8
|
object.extend Formatting::Currency
|
@@ -8,7 +10,7 @@ describe Formatting::Currency do
|
|
8
10
|
end
|
9
11
|
end
|
10
12
|
|
11
|
-
describe Formatting do
|
13
|
+
RSpec.describe Formatting do
|
12
14
|
describe ".format_currency" do
|
13
15
|
let(:item) { double }
|
14
16
|
|
@@ -18,7 +20,7 @@ describe Formatting do
|
|
18
20
|
end
|
19
21
|
|
20
22
|
it "can take a record and a method name" do
|
21
|
-
item.
|
23
|
+
allow(item).to receive(:price).and_return(2)
|
22
24
|
expect_formatted(item, :price).to eq space_to_nbsp("2.00")
|
23
25
|
end
|
24
26
|
|
@@ -48,12 +50,12 @@ describe Formatting do
|
|
48
50
|
end
|
49
51
|
|
50
52
|
it "is read from the record's #currency if present" do
|
51
|
-
item.
|
53
|
+
allow(item).to receive(:currency).and_return("SEK")
|
52
54
|
expect_formatted(item, 1).to eq space_to_nbsp("1.00 SEK")
|
53
55
|
end
|
54
56
|
|
55
57
|
it "is not added if the record's #currency is blank" do
|
56
|
-
item.
|
58
|
+
allow(item).to receive(:currency).and_return("")
|
57
59
|
expect_formatted(item, 1).to eq space_to_nbsp("1.00")
|
58
60
|
end
|
59
61
|
|
@@ -68,8 +70,8 @@ describe Formatting do
|
|
68
70
|
|
69
71
|
context "format string option" do
|
70
72
|
it "is used if provided" do
|
71
|
-
expect_formatted(item, 123, format: "C: <currency> A: <amount>", currency: "XYZ")
|
72
|
-
to eq space_to_nbsp("C: XYZ A: 123.00")
|
73
|
+
expect_formatted(item, 123, format: "C: <currency> A: <amount>", currency: "XYZ")
|
74
|
+
.to eq space_to_nbsp("C: XYZ A: 123.00")
|
73
75
|
end
|
74
76
|
|
75
77
|
it "will have spaces turned into non-breaking spaces" do
|
@@ -79,8 +81,8 @@ describe Formatting do
|
|
79
81
|
end
|
80
82
|
|
81
83
|
it "is stripped" do
|
82
|
-
expect_formatted(item, 123, format: "<amount> <currency>", currency: nil)
|
83
|
-
to eq space_to_nbsp("123.00")
|
84
|
+
expect_formatted(item, 123, format: "<amount> <currency>", currency: nil)
|
85
|
+
.to eq space_to_nbsp("123.00")
|
84
86
|
end
|
85
87
|
end
|
86
88
|
|
data/spec/number_spec.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "spec_helper"
|
2
4
|
|
3
|
-
describe Formatting::Number do
|
5
|
+
RSpec.describe Formatting::Number do
|
4
6
|
it "can be included as a module" do
|
5
7
|
object = Object.new
|
6
8
|
object.extend Formatting::Number
|
@@ -8,7 +10,7 @@ describe Formatting::Number do
|
|
8
10
|
end
|
9
11
|
end
|
10
12
|
|
11
|
-
describe Formatting do
|
13
|
+
RSpec.describe Formatting do
|
12
14
|
describe ".format_number" do
|
13
15
|
it "formats a number" do
|
14
16
|
expect_formatted(1234567.89).to eq space_to_nbsp("1 234 567.89")
|
@@ -25,9 +27,9 @@ describe Formatting do
|
|
25
27
|
|
26
28
|
it "uses I18n.t('number.format.delimiter') if present" do
|
27
29
|
allow(i18n).to receive(:t).with(:separator, instance_of(Hash))
|
28
|
-
expect(i18n).to receive(:t)
|
29
|
-
with(:delimiter, scope: "number.format", default: space_to_nbsp(" "))
|
30
|
-
and_return(";")
|
30
|
+
expect(i18n).to receive(:t)
|
31
|
+
.with(:delimiter, scope: "number.format", default: space_to_nbsp(" "))
|
32
|
+
.and_return(";")
|
31
33
|
expect_formatted(1234).to include "1;234"
|
32
34
|
end
|
33
35
|
end
|
@@ -90,7 +92,6 @@ describe Formatting do
|
|
90
92
|
end
|
91
93
|
end
|
92
94
|
|
93
|
-
|
94
95
|
context "minimum number of decimals" do
|
95
96
|
it "defaults to two decimals" do
|
96
97
|
expect_formatted(12).to eq "12.00"
|
data/spec/percent_spec.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "spec_helper"
|
2
4
|
|
3
|
-
describe Formatting::Percent do
|
5
|
+
RSpec.describe Formatting::Percent do
|
4
6
|
it "can be included as a module" do
|
5
7
|
object = Object.new
|
6
8
|
object.extend Formatting::Percent
|
@@ -8,7 +10,7 @@ describe Formatting::Percent do
|
|
8
10
|
end
|
9
11
|
end
|
10
12
|
|
11
|
-
describe Formatting, ".format_percent" do
|
13
|
+
RSpec.describe Formatting, ".format_percent" do
|
12
14
|
it "formats a number" do
|
13
15
|
expect_formatted(1.2).to eq "1.20%"
|
14
16
|
end
|
@@ -26,7 +28,7 @@ describe Formatting, ".format_percent" do
|
|
26
28
|
let(:i18n) { stub_const("I18n", double) }
|
27
29
|
|
28
30
|
it "defaults sensibly for some locales that require spacing the sign" do
|
29
|
-
i18n.
|
31
|
+
allow(i18n).to receive(:locale).and_return(:sv)
|
30
32
|
expect_formatted(1).to eq space_to_nbsp("1.00 %")
|
31
33
|
end
|
32
34
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "formatting"
|
2
4
|
|
3
5
|
module Helpers
|
@@ -8,4 +10,10 @@ end
|
|
8
10
|
|
9
11
|
RSpec.configure do |config|
|
10
12
|
config.include Helpers
|
13
|
+
|
14
|
+
config.example_status_persistence_file_path = ".rspec_results"
|
15
|
+
config.disable_monkey_patching!
|
16
|
+
|
17
|
+
config.order = :random
|
18
|
+
Kernel.srand config.seed
|
11
19
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formatting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henrik Nyh
|
@@ -9,62 +9,20 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-11-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: attr_extras
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
version: '0'
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: bundler
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '1.3'
|
35
|
-
type: :development
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - ~>
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '1.3'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: rake
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - '>='
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '0'
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - '>='
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '0'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: rspec
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - '>='
|
25
|
+
- - ">="
|
68
26
|
- !ruby/object:Gem::Version
|
69
27
|
version: '0'
|
70
28
|
description:
|
@@ -75,7 +33,9 @@ executables: []
|
|
75
33
|
extensions: []
|
76
34
|
extra_rdoc_files: []
|
77
35
|
files:
|
78
|
-
- .
|
36
|
+
- ".github/workflows/ci.yml"
|
37
|
+
- ".gitignore"
|
38
|
+
- ".rubocop.yml"
|
79
39
|
- Gemfile
|
80
40
|
- LICENSE.txt
|
81
41
|
- README.md
|
@@ -93,24 +53,24 @@ files:
|
|
93
53
|
homepage: ''
|
94
54
|
licenses:
|
95
55
|
- MIT
|
96
|
-
metadata:
|
56
|
+
metadata:
|
57
|
+
rubygems_mfa_required: 'true'
|
97
58
|
post_install_message:
|
98
59
|
rdoc_options: []
|
99
60
|
require_paths:
|
100
61
|
- lib
|
101
62
|
required_ruby_version: !ruby/object:Gem::Requirement
|
102
63
|
requirements:
|
103
|
-
- -
|
64
|
+
- - ">="
|
104
65
|
- !ruby/object:Gem::Version
|
105
66
|
version: '0'
|
106
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
68
|
requirements:
|
108
|
-
- -
|
69
|
+
- - ">="
|
109
70
|
- !ruby/object:Gem::Version
|
110
71
|
version: '0'
|
111
72
|
requirements: []
|
112
|
-
|
113
|
-
rubygems_version: 2.2.0
|
73
|
+
rubygems_version: 3.2.31
|
114
74
|
signing_key:
|
115
75
|
specification_version: 4
|
116
76
|
summary: Rails-less formatting for your unit-testable code.
|