danica 2.7.2 → 2.7.3
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 +4 -4
- data/lib/danica/common.rb +2 -2
- data/lib/danica/formatted.rb +21 -6
- data/lib/danica/version.rb +1 -1
- data/spec/lib/danica/common_spec.rb +53 -6
- data/spec/lib/danica/formatted_spec.rb +17 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cb8a797fc699f5234e08cd31d87caa9706cea6a
|
4
|
+
data.tar.gz: 03cc19287859762cf1554f7243f550905bede4c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32c7797d3108c0598c6c18ed33e355e669c03fa944639038ab0d7fb3c2afc7c74feb9975c06e4c2fd80d253e9a2ad1c80d3d44263996c760836a204fe5b798ae
|
7
|
+
data.tar.gz: 16078df081cd008fa485d03f48a006030021cdd7a22ccccad7b86a6f3b4f9d55142429405fb88fc3d88fdadaee3982a3797f93bb7130ebee4ad15ee3e3c14999
|
data/lib/danica/common.rb
CHANGED
data/lib/danica/formatted.rb
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
class Danica::Formatted
|
2
|
-
attr_reader :content, :
|
2
|
+
attr_reader :content, :options
|
3
3
|
|
4
|
-
def initialize(content,
|
4
|
+
def initialize(content, **options)
|
5
5
|
@content = content
|
6
|
-
@
|
7
|
-
@decimals = decimals
|
6
|
+
@options = options
|
8
7
|
end
|
9
8
|
|
10
9
|
def to_s
|
11
|
-
content.to(format,
|
10
|
+
content.to(format, options)
|
12
11
|
end
|
13
12
|
|
14
13
|
def ==(other)
|
@@ -17,13 +16,29 @@ class Danica::Formatted
|
|
17
16
|
other.format == format
|
18
17
|
end
|
19
18
|
|
19
|
+
def format
|
20
|
+
options[:format]
|
21
|
+
end
|
22
|
+
|
20
23
|
def repack(object)
|
21
24
|
self.class.new(
|
22
25
|
object,
|
23
|
-
|
26
|
+
options
|
24
27
|
)
|
25
28
|
end
|
26
29
|
|
30
|
+
def to_tex(**opts)
|
31
|
+
to(:tex, **opts)
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_gnu(**opts)
|
35
|
+
to(:gnu, **opts)
|
36
|
+
end
|
37
|
+
|
38
|
+
def to(format, **opts)
|
39
|
+
content.to(format, options.merge(opts))
|
40
|
+
end
|
41
|
+
|
27
42
|
private
|
28
43
|
|
29
44
|
def method_missing(method, *args)
|
data/lib/danica/version.rb
CHANGED
@@ -81,6 +81,21 @@ describe Danica::Common do
|
|
81
81
|
expect(subject.to_tex).to eq('formatted: tex')
|
82
82
|
end
|
83
83
|
end
|
84
|
+
|
85
|
+
context 'when formatted was generated with gnu and with options' do
|
86
|
+
let(:number) { Danica::Wrapper::Number.new(1.0/3) }
|
87
|
+
subject { number.gnu(decimals: 3) }
|
88
|
+
|
89
|
+
it 'formats with the current options' do
|
90
|
+
expect(subject.to_tex).to eq('0.333')
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'but overwritting options' do
|
94
|
+
it 'formats with the current options' do
|
95
|
+
expect(subject.to_tex(decimals: 4)).to eq('0.3333')
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
84
99
|
end
|
85
100
|
|
86
101
|
describe '#to_gnu' do
|
@@ -90,6 +105,38 @@ describe Danica::Common do
|
|
90
105
|
expect(subject.to_gnu).to eq('formatted: gnu')
|
91
106
|
end
|
92
107
|
end
|
108
|
+
|
109
|
+
context 'when formatted was generated with tex and with options' do
|
110
|
+
let(:number) { Danica::Wrapper::Number.new(1.0/3) }
|
111
|
+
subject { number.tex(decimals: 3) }
|
112
|
+
|
113
|
+
it 'formats with the current options' do
|
114
|
+
expect(subject.to_gnu).to eq('0.333')
|
115
|
+
end
|
116
|
+
|
117
|
+
context 'but overwritting options' do
|
118
|
+
it 'formats with the current options' do
|
119
|
+
expect(subject.to_gnu(decimals: 4)).to eq('0.3333')
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe 'to' do
|
126
|
+
context 'when already formatted with options' do
|
127
|
+
let(:number) { Danica::Wrapper::Number.new(1.0/3) }
|
128
|
+
subject { number.tex(decimals: 3) }
|
129
|
+
|
130
|
+
it 'uses to with options' do
|
131
|
+
expect(subject.to(:gnu)).to eq('0.333')
|
132
|
+
end
|
133
|
+
|
134
|
+
context 'when calling with options' do
|
135
|
+
it 'uses options' do
|
136
|
+
expect(subject.to(:gnu, decimals: 4)).to eq('0.3333')
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
93
140
|
end
|
94
141
|
|
95
142
|
describe '#tex' do
|
@@ -98,12 +145,12 @@ describe Danica::Common do
|
|
98
145
|
end
|
99
146
|
|
100
147
|
it 'knows how to return a tex string' do
|
101
|
-
expect(subject.tex.to_s).to eq('tex {:
|
148
|
+
expect(subject.tex.to_s).to eq('tex {:format=>:tex}')
|
102
149
|
end
|
103
150
|
|
104
151
|
context 'when passing options' do
|
105
152
|
it 'uses the arguments' do
|
106
|
-
expect(subject.tex(decimals: 3).to_s).to eq('tex {:decimals=>3}')
|
153
|
+
expect(subject.tex(decimals: 3).to_s).to eq('tex {:format=>:tex, :decimals=>3}')
|
107
154
|
end
|
108
155
|
end
|
109
156
|
end
|
@@ -114,23 +161,23 @@ describe Danica::Common do
|
|
114
161
|
end
|
115
162
|
|
116
163
|
it 'knows how to return a gnu string' do
|
117
|
-
expect(subject.gnu.to_s).to eq('gnu {:
|
164
|
+
expect(subject.gnu.to_s).to eq('gnu {:format=>:gnu}')
|
118
165
|
end
|
119
166
|
|
120
167
|
context 'when passing options' do
|
121
168
|
it 'uses the arguments' do
|
122
|
-
expect(subject.gnu(decimals: 3).to_s).to eq('gnu {:decimals=>3}')
|
169
|
+
expect(subject.gnu(decimals: 3).to_s).to eq('gnu {:format=>:gnu, :decimals=>3}')
|
123
170
|
end
|
124
171
|
end
|
125
172
|
end
|
126
173
|
|
127
174
|
describe '#formatted' do
|
128
175
|
it do
|
129
|
-
expect(subject.formatted(:gnu)).to be_a(Danica::Formatted)
|
176
|
+
expect(subject.formatted(format: :gnu)).to be_a(Danica::Formatted)
|
130
177
|
end
|
131
178
|
|
132
179
|
it 'knows how to return to build the string string' do
|
133
|
-
expect(subject.formatted(:gnu, decimals: 3).to_s).to eq('gnu {:decimals=>3}')
|
180
|
+
expect(subject.formatted(format: :gnu, decimals: 3).to_s).to eq('gnu {:format=>:gnu, :decimals=>3}')
|
134
181
|
end
|
135
182
|
end
|
136
183
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
3
|
shared_examples 'a formatted result' do |output|
|
5
4
|
it do
|
6
5
|
expect(result).to be_a(described_class)
|
@@ -29,7 +28,23 @@ describe Danica::Formatted do
|
|
29
28
|
let(:format) { :tex }
|
30
29
|
let(:options) { {} }
|
31
30
|
subject do
|
32
|
-
described_class.new(content, format, options)
|
31
|
+
described_class.new(content, format: format, **options)
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#repack' do
|
35
|
+
let(:expression) { Danica::Wrapper::Number.new(1.0 / 3) }
|
36
|
+
|
37
|
+
it do
|
38
|
+
expect(subject.repack(expression)).to be_a(Danica::Formatted)
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'when there are options' do
|
42
|
+
let(:options) { { decimals: 3 } }
|
43
|
+
|
44
|
+
it 'wraps expression with options' do
|
45
|
+
expect(subject.repack(expression).to_s).to eq('0.333')
|
46
|
+
end
|
47
|
+
end
|
33
48
|
end
|
34
49
|
|
35
50
|
describe '#to_s' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danica
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.
|
4
|
+
version: 2.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Darthjee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|