key-value-parser 0.0.1 → 0.0.2
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/README.md +6 -6
- data/key-value-parser.gemspec +1 -1
- data/lib/key_value_parser.rb +3 -1
- data/test/test_key_value_parser.rb +14 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ba87aebd5ceb2c84353cc7d02f24f868c464e52
|
4
|
+
data.tar.gz: ea0ae5d078b12ddd1b4eab24b7227bd44ee235bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8581f6e7b13564742b4c493a4681e186fe4edcfd6d472ffb4740fa220e279169c738e99a496c15cb3cfa2f8e3814203e93e57f877b9668a5a05aa874ded9c99e
|
7
|
+
data.tar.gz: 134f4c28ff4db74f530775b2f9e7d42db36dc8675dabd96472fe0d09e88a9e18bcab33dbc1951f04c6186b144b01dedfe3cdfd0ea10e23ee444e0238c6976727
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@ Key Value Parser
|
|
3
3
|
|
4
4
|
The primary purpose of `KeyValueParser` is to have a
|
5
5
|
simple class to be able to parse command line arguments
|
6
|
-
which are all formated as `key
|
6
|
+
which are all formated as `key=value`.
|
7
7
|
|
8
8
|
For example you could call a script like this:
|
9
9
|
|
@@ -53,7 +53,7 @@ Typecasted Values
|
|
53
53
|
-----------------
|
54
54
|
|
55
55
|
As you may have noticed in previous examples, values are
|
56
|
-
typecasted. So far it does typecast integers and booleans.
|
56
|
+
typecasted. So far it does typecast integers, floats and booleans.
|
57
57
|
Also if you don't give a value, the parser will interpret
|
58
58
|
it as a flag and set it to `true`.
|
59
59
|
|
@@ -65,12 +65,12 @@ options[:broadcast] == false
|
|
65
65
|
options[:running] == true
|
66
66
|
```
|
67
67
|
|
68
|
-
If you don't want to cast values, you can use the second of
|
68
|
+
If you don't want to cast values, you can use the second argument of
|
69
69
|
`KeyValueParse#parse` which is a list of options. Just set
|
70
70
|
`typecast_values` to `false`.
|
71
71
|
|
72
72
|
```ruby
|
73
|
-
parser =
|
73
|
+
parser = KeyValueParser.new({}, {typecast_values: false})
|
74
74
|
```
|
75
75
|
|
76
76
|
Typecasting is still very basic and will most likely evolve,
|
@@ -81,7 +81,7 @@ Normalized Keys
|
|
81
81
|
|
82
82
|
Keys of the resulting `Hash` are normalized. Dash in the middle
|
83
83
|
of words are replaced by underscores. Double dash in front of a
|
84
|
-
word are also removed. It allows you to have unix style dash
|
84
|
+
word are also removed. It allows you to have unix style double dash
|
85
85
|
arguments.
|
86
86
|
|
87
87
|
```ruby
|
@@ -92,7 +92,7 @@ options[:user_name] == 'bob'
|
|
92
92
|
|
93
93
|
Because of the way command line arguments are created for `ARGV`
|
94
94
|
you can even surround an argument with quotes in order to have
|
95
|
-
spaces in the
|
95
|
+
spaces in the argument's value.
|
96
96
|
|
97
97
|
There is nothing yet for unix style single dash arguments.
|
98
98
|
I could remove the dash and treat it like a single letter key,
|
data/key-value-parser.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.licenses = ['MIT']
|
7
7
|
|
8
8
|
s.name = 'key-value-parser'
|
9
|
-
s.version = '0.0.
|
9
|
+
s.version = '0.0.2'
|
10
10
|
s.summary = "Key Value Parser"
|
11
11
|
s.description = "KeyValueParser parses arrays of string options like 'machine=coconut'. It is mainly done for parsing ARGV, but can be used for other things."
|
12
12
|
|
data/lib/key_value_parser.rb
CHANGED
@@ -32,8 +32,20 @@ class TestKeyValueParser < Minitest::Test
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def test_integers_are_typecasted
|
35
|
-
kvs = ['machine:
|
36
|
-
expected = {machine: '
|
35
|
+
kvs = ['machine:1coconut', 'size:11', 'negative:-5']
|
36
|
+
expected = {machine: '1coconut', size: 11, negative: -5}
|
37
|
+
assert_equal expected, @parser.parse(kvs)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_floats_are_typecasted
|
41
|
+
kvs = [
|
42
|
+
'machine:5.0coconut',
|
43
|
+
'float1:99.99', 'float2:-5.0', 'float3:.4'
|
44
|
+
]
|
45
|
+
expected = {
|
46
|
+
machine: '5.0coconut',
|
47
|
+
float1: 99.99, float2: -5.0, float3: 0.4
|
48
|
+
}
|
37
49
|
assert_equal expected, @parser.parse(kvs)
|
38
50
|
end
|
39
51
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: key-value-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mickael Riga
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: KeyValueParser parses arrays of string options like 'machine=coconut'.
|
14
14
|
It is mainly done for parsing ARGV, but can be used for other things.
|
@@ -45,7 +45,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
45
45
|
version: '0'
|
46
46
|
requirements: []
|
47
47
|
rubyforge_project:
|
48
|
-
rubygems_version: 2.
|
48
|
+
rubygems_version: 2.5.1
|
49
49
|
signing_key:
|
50
50
|
specification_version: 4
|
51
51
|
summary: Key Value Parser
|