configparser 0.1.4 → 0.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 26c531c67c5b36be5e065f5724dbbe79912fcd17
4
- data.tar.gz: 0a0dbe4809dd15cb05a0fb2a57f725eb34ad3991
3
+ metadata.gz: 42a4613bc96b535efac8c96b423eb3990946876c
4
+ data.tar.gz: ca2ee55f792fcde58014508cbc5ed23bedb9476e
5
5
  SHA512:
6
- metadata.gz: dcac507b266312e93519fadf779cc1d7954929bbb74fcc0af83438230bf8f1a3067f604f27684382d6c77dc38d5aa6ebfa5ba885047f2d7aa03f33e9d56432d8
7
- data.tar.gz: c754988f122b18ecd8dfacaea82951865d4e383d9d8a72d4c0e9cbfccfac8abe32aae47ab74e44981fa4f1cefed07111ac1619abf89ef240f13256dc51c7b634
6
+ metadata.gz: 9d3d5f30257627c7e91e1ec1df2a522ce90c5a450afcb4bb62fba1549d16f7737c6de202de1b3d0e08d416585ecbe775214def93a5fce1bdf52138249a101c56
7
+ data.tar.gz: ced3899217c2d2252824145acb1be8b7ad153fc9135465f1c39b4a3e20d40314b9f55a26fd72d8f6e4b71f007ee96bb3c44e0b52a685e86104d555bd43c28df4
@@ -14,7 +14,7 @@ class ConfigParser < Hash
14
14
  next if (line =~ /^\s*(#|;)/)
15
15
 
16
16
  # parse out the lines of the config
17
- if line =~ /^\s*(.+?)\s*[=:]\s*(.+)$/ # handle key=value lines
17
+ if line =~ /^\s*(.+?)\s*[=:]\s*(.*)$/ # handle key=value lines
18
18
  if section
19
19
  self[section] = {} unless self[section]
20
20
  key = $1
@@ -74,15 +74,17 @@ class ConfigParser < Hash
74
74
  end
75
75
  end
76
76
 
77
- def to_s
77
+ def to_s(sep=':')
78
78
  str = ""
79
79
  # print globals first
80
80
  self.keys.sort.each do |k|
81
81
  next if self[k].is_a? Hash
82
82
  if self[k] === true
83
83
  str << "#{k}\n"
84
+ elsif self[k] == ""
85
+ str << "#{k}#{sep}\n"
84
86
  else
85
- str << "#{k}: #{self[k]}\n"
87
+ str << "#{k}#{sep} #{self[k]}\n"
86
88
  end
87
89
  end
88
90
 
@@ -93,8 +95,10 @@ class ConfigParser < Hash
93
95
  self[k].keys.sort.each do |j|
94
96
  if self[k][j] === true
95
97
  str << "#{j}\n"
98
+ elsif self[k][j] == ""
99
+ str << "#{j}#{sep}\n"
96
100
  else
97
- str << "#{j}: #{self[k][j]}\n"
101
+ str << "#{j}#{sep} #{self[k][j]}\n"
98
102
  end
99
103
  end
100
104
  end
@@ -1,3 +1,3 @@
1
1
  class Configparser
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -31,7 +31,7 @@ yourtest: 99
31
31
  [second section]
32
32
  myway: or the highway
33
33
  "
34
- assert_equal(doc,cp.to_s)
34
+ assert_equal(doc, cp.to_s)
35
35
  end
36
36
 
37
37
  def test_parse_a_config_with_substitutions
@@ -69,7 +69,7 @@ end_of_simple
69
69
 
70
70
  cp = ConfigParser.new()
71
71
  cp.parse(simple_content.each_line)
72
- assert_equal(cp, {
72
+ assert_equal({
73
73
  "test1" => "hi",
74
74
  "test2" => "hello",
75
75
  "first_section" => {
@@ -79,7 +79,7 @@ end_of_simple
79
79
  },
80
80
  "second section" => {
81
81
  "myway" => "or the highway"
82
- }})
82
+ }}, cp)
83
83
  end
84
84
 
85
85
  def test_parse_configparser_example_from_python
@@ -94,6 +94,7 @@ values like this: 1000000
94
94
  [Multiline Values]
95
95
  chorus: I'm a lumberjack, and I'm okay I sleep all night and I work all day
96
96
  [No Values]
97
+ empty string value here:
97
98
  key_without_value
98
99
  [Sections Can Be Indented]
99
100
  can_values_be_as_well: True
@@ -110,5 +111,18 @@ you can also use: to delimit keys from values
110
111
 
111
112
  assert_equal(doc, cp.to_s)
112
113
  end
113
-
114
+
115
+ def test_nil_option
116
+ nil_content = <<end_of_simple
117
+ [some_section]
118
+ foo=
119
+ end_of_simple
120
+ cp = ConfigParser.new()
121
+ cp.parse(nil_content.each_line)
122
+ assert_equal({
123
+ "some_section" => {
124
+ "foo" => ""
125
+ }}, cp)
126
+ assert_equal(nil_content, cp.to_s("="))
127
+ end
114
128
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configparser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - chrislee35
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-17 00:00:00.000000000 Z
11
+ date: 2017-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -93,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  version: '0'
94
94
  requirements: []
95
95
  rubyforge_project:
96
- rubygems_version: 2.2.2
96
+ rubygems_version: 2.4.6
97
97
  signing_key:
98
98
  specification_version: 4
99
99
  summary: parses configuration files compatable with Python's ConfigParser