honey_format 0.21.0 → 0.21.1
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/CHANGELOG.md +4 -0
- data/README.md +2 -2
- data/honey_format.gemspec +1 -1
- data/lib/honey_format/configuration.rb +1 -28
- data/lib/honey_format/converters/convert_boolean.rb +2 -2
- data/lib/honey_format/converters/convert_date_and_time.rb +2 -2
- data/lib/honey_format/converters/converters.rb +31 -0
- data/lib/honey_format/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd0d06f453986109809c196cef032b5f60233e165a8d5e029162b26b6cc801b2
|
4
|
+
data.tar.gz: 8f5a15f42e9f2587bc80b7e88d5c929d74a04ef69bd6be272513ba8fc544a22a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 563e6ba6a8ede49e13d15957c12c247b6e26c981afe25b150d6ae8c6c3dab58929c100341dcc0181790a03eabffca5ddd3ac127cf97fcdb4ac76ef04b01c9839
|
7
|
+
data.tar.gz: 93a08cb9b2683961e80f8f2bb79f763f05fb1401e112458a6188bf86530233e93f9d397b0ee415e4ce9c8b95ff644485e50dc6b52a2c8381aa4379b0bce0e65a
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -91,7 +91,7 @@ __Type converters__
|
|
91
91
|
|
92
92
|
> Type converters are great if you want to convert column values, like numbers and dates.
|
93
93
|
|
94
|
-
There are a
|
94
|
+
There are a bunch of [default type converters](https://github.com/buren/honey_format/blob/master/lib/honey_format/converters/converters.rb)
|
95
95
|
```ruby
|
96
96
|
csv_string = "Id,Username\n1,buren"
|
97
97
|
type_map = { id: :integer }
|
@@ -139,7 +139,7 @@ Default converter names
|
|
139
139
|
HoneyFormat.config.default_converters.keys
|
140
140
|
```
|
141
141
|
|
142
|
-
See [`
|
142
|
+
See [`Converters::DEFAULT`](https://github.com/buren/honey_format/blob/master/lib/honey_format/converters.rb) for a complete list of the default converter names.
|
143
143
|
|
144
144
|
__Row builder__
|
145
145
|
|
data/honey_format.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_development_dependency 'benchmark-ips'
|
26
26
|
spec.add_development_dependency 'bundler', '> 1.10', '< 3'
|
27
27
|
spec.add_development_dependency 'byebug'
|
28
|
-
spec.add_development_dependency 'rake', '~>
|
28
|
+
spec.add_development_dependency 'rake', '~> 12.3'
|
29
29
|
spec.add_development_dependency 'rspec'
|
30
30
|
spec.add_development_dependency 'simplecov'
|
31
31
|
end
|
@@ -97,34 +97,7 @@ module HoneyFormat
|
|
97
97
|
# Default converter registry
|
98
98
|
# @return [Hash] hash with default converters
|
99
99
|
def default_converters
|
100
|
-
@default_converters ||=
|
101
|
-
# strict variants
|
102
|
-
decimal!: StrictConvertDecimal,
|
103
|
-
integer!: StrictConvertInteger,
|
104
|
-
date!: StrictConvertDate,
|
105
|
-
datetime!: StrictConvertDatetime,
|
106
|
-
symbol!: StrictConvertSymbol,
|
107
|
-
downcase!: StrictConvertDowncase,
|
108
|
-
upcase!: StrictConvertUpcase,
|
109
|
-
boolean!: StrictConvertBoolean,
|
110
|
-
# safe variants
|
111
|
-
decimal: ConvertDecimal,
|
112
|
-
decimal_or_zero: ConvertDecimalOrZero,
|
113
|
-
integer: ConvertInteger,
|
114
|
-
integer_or_zero: ConvertIntegerOrZero,
|
115
|
-
date: ConvertDate,
|
116
|
-
datetime: ConvertDatetime,
|
117
|
-
symbol: ConvertSymbol,
|
118
|
-
downcase: ConvertDowncase,
|
119
|
-
upcase: ConvertUpcase,
|
120
|
-
boolean: ConvertBoolean,
|
121
|
-
md5: ConvertMD5,
|
122
|
-
hex: ConvertHex,
|
123
|
-
nil: ConvertNil,
|
124
|
-
blank: ConvertBlank,
|
125
|
-
header_column: ConvertHeaderColumn,
|
126
|
-
method_name: ConvertHeaderColumn,
|
127
|
-
}.freeze
|
100
|
+
@default_converters ||= Converters::DEFAULT
|
128
101
|
end
|
129
102
|
end
|
130
103
|
end
|
@@ -4,9 +4,9 @@ require 'set'
|
|
4
4
|
|
5
5
|
module HoneyFormat
|
6
6
|
# String values considered truthy
|
7
|
-
TRUTHY = Set.new(%w[t T 1 y Y true TRUE]).freeze
|
7
|
+
TRUTHY = Set.new(%w[t T 1 y Y true TRUE] + [true]).freeze
|
8
8
|
# String values considered falsy
|
9
|
-
FALSY = Set.new(%w[f F 0 n N false FALSE]).freeze
|
9
|
+
FALSY = Set.new(%w[f F 0 n N false FALSE] + [false]).freeze
|
10
10
|
|
11
11
|
# Tries to convert value boolean to, returns nil if it can't convert
|
12
12
|
ConvertBoolean = proc do |v|
|
@@ -23,8 +23,8 @@ module HoneyFormat
|
|
23
23
|
end
|
24
24
|
|
25
25
|
# Convert to date or raise error
|
26
|
-
StrictConvertDate = proc { |v| Date.parse(v) }
|
26
|
+
StrictConvertDate = proc { |v| v.is_a?(Date) ? v : Date.parse(v) }
|
27
27
|
|
28
28
|
# Convert to datetime or raise error
|
29
|
-
StrictConvertDatetime = proc { |v| Time.parse(v) }
|
29
|
+
StrictConvertDatetime = proc { |v| v.is_a?(Time) ? v : Time.parse(v) }
|
30
30
|
end
|
@@ -9,4 +9,35 @@ require 'honey_format/converters/convert_string'
|
|
9
9
|
module HoneyFormat
|
10
10
|
# Convert to nil
|
11
11
|
ConvertNil = proc {}
|
12
|
+
|
13
|
+
module Converters
|
14
|
+
DEFAULT = {
|
15
|
+
# strict variants
|
16
|
+
decimal!: StrictConvertDecimal,
|
17
|
+
integer!: StrictConvertInteger,
|
18
|
+
date!: StrictConvertDate,
|
19
|
+
datetime!: StrictConvertDatetime,
|
20
|
+
symbol!: StrictConvertSymbol,
|
21
|
+
downcase!: StrictConvertDowncase,
|
22
|
+
upcase!: StrictConvertUpcase,
|
23
|
+
boolean!: StrictConvertBoolean,
|
24
|
+
# safe variants
|
25
|
+
decimal: ConvertDecimal,
|
26
|
+
decimal_or_zero: ConvertDecimalOrZero,
|
27
|
+
integer: ConvertInteger,
|
28
|
+
integer_or_zero: ConvertIntegerOrZero,
|
29
|
+
date: ConvertDate,
|
30
|
+
datetime: ConvertDatetime,
|
31
|
+
symbol: ConvertSymbol,
|
32
|
+
downcase: ConvertDowncase,
|
33
|
+
upcase: ConvertUpcase,
|
34
|
+
boolean: ConvertBoolean,
|
35
|
+
md5: ConvertMD5,
|
36
|
+
hex: ConvertHex,
|
37
|
+
nil: ConvertNil,
|
38
|
+
blank: ConvertBlank,
|
39
|
+
header_column: ConvertHeaderColumn,
|
40
|
+
method_name: ConvertHeaderColumn,
|
41
|
+
}.freeze
|
42
|
+
end
|
12
43
|
end
|
data/lib/honey_format/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: honey_format
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.21.
|
4
|
+
version: 0.21.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacob Burenstam
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: benchmark-ips
|
@@ -64,14 +64,14 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '12.3'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '12.3'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rspec
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|