toml 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +26 -0
- data/lib/toml.rb +1 -1
- data/lib/toml/transformer.rb +4 -0
- data/test/spec.toml +1 -0
- data/test/test_parser.rb +2 -1
- data/toml.gemspec +2 -2
- metadata +2 -2
data/README.md
CHANGED
@@ -6,6 +6,12 @@ This is far superior to YAML and JSON because it doesn't suck. Really it doesn'
|
|
6
6
|
|
7
7
|
## Usage
|
8
8
|
|
9
|
+
Add to your Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem "toml", "~> 0.0.3"
|
13
|
+
```
|
14
|
+
|
9
15
|
It's simple, really.
|
10
16
|
|
11
17
|
```ruby
|
@@ -32,6 +38,26 @@ TOML.load_file("my_file.toml")
|
|
32
38
|
# => {"whatever" => "keys"}
|
33
39
|
```
|
34
40
|
|
41
|
+
There's also a beta feature for generating a TOML file from a Ruby hash. Please note this will likely not give beautiful output right now.
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
hash = {
|
45
|
+
"integer" => 1,
|
46
|
+
"float" => 3.14159,
|
47
|
+
"true" => true,
|
48
|
+
"false" => false,
|
49
|
+
"string" => "hi",
|
50
|
+
"array" => [[1], [2], [3]],
|
51
|
+
"key" => {
|
52
|
+
"group" => {
|
53
|
+
"value" => "lol"
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
doc = TOML::Generator.new(hash).body
|
58
|
+
# doc will be a string containing a proper TOML document.
|
59
|
+
```
|
60
|
+
|
35
61
|
## Contributors
|
36
62
|
|
37
63
|
Written by Jeremy McAnally (@jm) and Dirk Gadsden (@dirk) based on TOML from Tom Preston-Werner (@mojombo).
|
data/lib/toml.rb
CHANGED
data/lib/toml/transformer.rb
CHANGED
@@ -42,6 +42,10 @@ module TOML
|
|
42
42
|
rule(:string => simple(:s)) {
|
43
43
|
Transformer.parse_string(s.to_s)
|
44
44
|
}
|
45
|
+
rule(:string => sequence(:s)) {
|
46
|
+
raise "Unexpected string-sequence: #{s.inspect}" unless s.empty?
|
47
|
+
""
|
48
|
+
}
|
45
49
|
rule(:datetime => simple(:d)) { DateTime.iso8601(d) }
|
46
50
|
rule(:true => simple(:b)) { true }
|
47
51
|
rule(:false => simple(:b)) { false }
|
data/test/spec.toml
CHANGED
data/test/test_parser.rb
CHANGED
@@ -10,9 +10,10 @@ class TestParser < MiniTest::Unit::TestCase
|
|
10
10
|
filepath = File.join(File.dirname(__FILE__), 'spec.toml')
|
11
11
|
@doc = TOML::Parser.new(File.read(filepath)).parsed
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
def test_string
|
15
15
|
assert_equal "string\n\t\"string", @doc["strings"]["string"]
|
16
|
+
assert_equal "", @doc["strings"]["empty"]
|
16
17
|
end
|
17
18
|
|
18
19
|
def test_integer
|
data/toml.gemspec
CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
13
13
|
## If your rubyforge_project name is different, then edit it and comment out
|
14
14
|
## the sub! line in the Rakefile
|
15
15
|
s.name = 'toml'
|
16
|
-
s.version = '0.0.
|
17
|
-
s.date = '2013-03-
|
16
|
+
s.version = '0.0.4'
|
17
|
+
s.date = '2013-03-28'
|
18
18
|
|
19
19
|
## Make sure your summary is short. The description may be as long
|
20
20
|
## as you like.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-03-
|
13
|
+
date: 2013-03-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: parslet
|