toml_parser-ruby 0.1.0

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MGMzYmMxNTY5OTM0ZjZhM2QzZDk4YzFiZGFhZmJjMjJmMDY2MjE2ZQ==
5
+ data.tar.gz: !binary |-
6
+ MDUxMzllYTE4MzA0ZmNlYTcxNjdlMjUzYzU3ZDQ3NjgyMGUwODgzNA==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ OGU1NmI3N2Q1ZjNiMWVjZDA3ZDUzZDk3MzhiYTgxYmFjYTVhMWI0MWE3MjRh
10
+ MzRjOGIxNDkxMGY3MGIxZGJlZGU0NTE0NmQxZjM0NWVhZDgxMGU5NGQzNjk1
11
+ ZWNhNGIzNGE2MTlkM2ZkMzZhY2ZiY2NmZjgwMjFjNmNjMWUwYWU=
12
+ data.tar.gz: !binary |-
13
+ NzkyNzcwODgyNDY4YzEyN2RjODk2MTUyZjllODc3ZTlhMGI0OTUwODFlZDU2
14
+ YzA2NWM3MDg1MGMwMjM0MWI2NTlhNTlkYzk2ZDkzNzNhNDI2Yjg0OGU3MmEx
15
+ YWUxY2E4NzRjMTAyNWExZTU2MTE0NDMxZjQ3NTU1NDZlY2QzMDg=
@@ -0,0 +1,72 @@
1
+ toml-rb
2
+ =======
3
+
4
+ Formerly known as __toml_parser-ruby__.
5
+
6
+ A [TOML](https://github.com/mojombo/toml) parser using [Citrus](http://mjijackson.com/citrus/example.html) library.
7
+
8
+
9
+ Installation
10
+ ------------
11
+
12
+ $ gem install toml-rb
13
+
14
+ Usage
15
+ -----
16
+
17
+ ```ruby
18
+ require 'toml'
19
+
20
+ # From a file!
21
+ path = File.join(File.dirname(__FILE__), 'path', 'to', 'file')
22
+ TOML.load_file(path)
23
+
24
+ # From a stream!
25
+ stream = <<-EOS
26
+ title = "wow!"
27
+
28
+ [awesome]
29
+ you = true
30
+ others = false
31
+ EOS
32
+ TOML.parse(stream)
33
+
34
+ # You want symbols as your keys? No problem!
35
+ TOML.load_file(path, symbolize_keys: true)
36
+ # Works the same for TOML.parse
37
+ ```
38
+
39
+ Contributing
40
+ ------------
41
+
42
+ 1. Fork it
43
+ 2. Bundle it `$ dep install` (install [dep](https://github.com/cyx/dep) if you don't have it)
44
+ 3. Create your feature branch `git checkout -b my-new-feature`
45
+ 4. Add tests and commit your changes `git commit -am 'Add some feature'`
46
+ 5. Run tests `$ rake`
47
+ 6. Push the branch `git push origin my-new-feature`
48
+ 7. Create new Pull Request
49
+
50
+ License
51
+ -------
52
+
53
+ MIT License
54
+
55
+ Permission is hereby granted, free of charge, to any person obtaining
56
+ a copy of this software and associated documentation files (the
57
+ "Software"), to deal in the Software without restriction, including
58
+ without limitation the rights to use, copy, modify, merge, publish,
59
+ distribute, sublicense, and/or sell copies of the Software, and to
60
+ permit persons to whom the Software is furnished to do so, subject to
61
+ the following conditions:
62
+
63
+ The above copyright notice and this permission notice shall be
64
+ included in all copies or substantial portions of the Software.
65
+
66
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
67
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
68
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
69
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
70
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
71
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
72
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,6 @@
1
+ task :test do
2
+ Dir["test/*_test.rb"].each { |file| load file }
3
+ end
4
+
5
+ task :default => :test
6
+
@@ -0,0 +1,56 @@
1
+ require_relative "../init"
2
+
3
+ module TOML
4
+
5
+ # Public: Returns a hash from *TOML* content.
6
+ #
7
+ # content - TOML string to be parsed.
8
+ # options - The Hash options used to refine the parser (default: {}):
9
+ # :symbolize_keys - true|false (optional).
10
+ #
11
+ #
12
+ # Examples
13
+ #
14
+ # TOML.parse('[group]')
15
+ # # => {"group"=>{}}
16
+ #
17
+ # TOML.parse('title = "TOML parser"')
18
+ # # => {"title"=>"TOML parser"}
19
+ #
20
+ # TOML.parse('[group]', symbolize_keys: true)
21
+ # # => {group: {}}
22
+ #
23
+ # TOML.parse('title = "TOML parser"', symbolize_keys: true)
24
+ # # => {title: "TOML parser"}
25
+ #
26
+ #
27
+ # Returns a Ruby hash representation of the content according to TOML spec.
28
+ # Raises ValueOverwriteError if a key is overwritten
29
+ def self.parse(content, options = {})
30
+ Parser.new(content, options).hash
31
+ end
32
+
33
+ # Public: Returns a hash from a *TOML* file.
34
+ #
35
+ # path - TOML File path
36
+ # options - The Hash options used to refine the parser (default: {}):
37
+ # :symbolize_keys - true|false (optional).
38
+ #
39
+ #
40
+ # Examples
41
+ #
42
+ # TOML.load_file('/tmp/simple.toml')
43
+ # # => {"group"=>{}}
44
+ #
45
+ # TOML.load_file('/tmp/simple.toml', symbolize_keys: true)
46
+ # # => {group: {}}
47
+ #
48
+ #
49
+ # Returns a Ruby hash representation of the content.
50
+ # Raises ValueOverwriteError if a key is overwritten
51
+ # Raises Errno::ENOENT if the file cannot be found.
52
+ # Raises Errno::EACCES if the file cannot be accessed.
53
+ def self.load_file(path, options = {})
54
+ TOML.parse(File.read(path), options)
55
+ end
56
+ end
@@ -0,0 +1,24 @@
1
+ module TOML
2
+ class Keygroup
3
+ def initialize(nested_keys)
4
+ @nested_keys = nested_keys
5
+ end
6
+
7
+ def navigate_keys(hash, symbolize_keys = false)
8
+ @nested_keys.each do |key|
9
+ key = symbolize_keys ? key.to_sym : key
10
+ hash[key] = {} unless hash[key]
11
+ hash = hash[key]
12
+ end
13
+
14
+ hash
15
+ end
16
+ end
17
+ end
18
+
19
+ # Used in toml.citrus
20
+ module Keygroup
21
+ def value
22
+ TOML::Keygroup.new(nested_keys.to_s.split("."))
23
+ end
24
+ end
@@ -0,0 +1,23 @@
1
+ module TOML
2
+ class ValueOverwriteError < StandardError; end
3
+
4
+ class Keyvalue
5
+ def initialize(key, value)
6
+ @key, @value = key, value
7
+ end
8
+
9
+ def assign(hash, symbolize_keys = false)
10
+ raise ValueOverwriteError if hash[@key]
11
+
12
+ key = symbolize_keys ? @key.to_sym : @key
13
+ hash[key] = @value
14
+ end
15
+ end
16
+ end
17
+
18
+ # Used in toml.citrus
19
+ module Keyvalue
20
+ def value
21
+ TOML::Keyvalue.new(key.value, v.value)
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ module TOML
2
+ class Parser
3
+ attr_reader :hash
4
+
5
+ def initialize(content, options = {})
6
+ @hash = {}
7
+ @current = @hash
8
+
9
+ parsed = Document.parse(content)
10
+ parsed.matches.map(&:value).compact.each do |match|
11
+ if match.is_a? Keygroup
12
+ @current = match.navigate_keys(@hash, options[:symbolize_keys])
13
+ elsif match.is_a? Keyvalue
14
+ match.assign(@current, options[:symbolize_keys])
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,27 @@
1
+ # Used in primitive.citrus
2
+ module TomlString
3
+ def value
4
+ aux = first.value
5
+ s = 0
6
+ o = []
7
+ while s < aux.length
8
+ if aux[s] == "\\"
9
+ s += 1
10
+ case aux[s]
11
+ when "t" then o << "\t"
12
+ when "n" then o << "\n"
13
+ when "\\" then o << "\\"
14
+ when '"' then o << '"'
15
+ when "r" then o << "\r"
16
+ when "0" then o << "\0"
17
+ else
18
+ o << '\\' << aux[s]
19
+ end
20
+ else
21
+ o << aux[s]
22
+ end
23
+ s += 1
24
+ end
25
+ o[1...-1].join
26
+ end
27
+ end
@@ -0,0 +1,38 @@
1
+ # This is a TOML document. Boom.
2
+
3
+ title = "TOML Example"
4
+
5
+ [owner]
6
+ name = "Tom Preston-Werner"
7
+ organization = "GitHub"
8
+ bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
9
+ dob = 1979-05-27T07:32:00Z # First class dates? Why not?
10
+
11
+ [database]
12
+ server = "192.168.1.1"
13
+ ports = [ 8001, 8001, 8002 ]
14
+ connection_max = 5000
15
+ enabled = true
16
+
17
+ [servers]
18
+
19
+ # You can indent as you please. Tabs or spaces. TOML don't care.
20
+ [servers.alpha]
21
+ ip = "10.0.0.1"
22
+ dc = "eqdc10"
23
+
24
+ [servers.beta]
25
+ ip = "10.0.0.2"
26
+ dc = "eqdc10"
27
+
28
+ [servers]
29
+ amount = 2
30
+
31
+ [clients]
32
+ data = [ ["gamma", "delta"], [1, 2] ]
33
+
34
+ # Line breaks are OK when inside arrays
35
+ hosts = [
36
+ "alpha",
37
+ "omega"
38
+ ]
@@ -0,0 +1,121 @@
1
+ require_relative "helper"
2
+
3
+ class GrammarTest < Test::Unit::TestCase
4
+
5
+ def test_comment
6
+ match = Document.parse(" # A comment", root: :comment)
7
+ assert_equal(nil, match.value)
8
+ end
9
+
10
+ def test_keygroup
11
+ indentation_alternatives_for('[akey]') do |str|
12
+ match = Document.parse(str, root: :keygroup)
13
+ assert_equal(TOML::Keygroup, match.value.class)
14
+ assert_equal(['akey'], match.value.instance_variable_get("@nested_keys"))
15
+ end
16
+
17
+ match = Document.parse('[owner.emancu]', root: :keygroup)
18
+ assert_equal(['owner', 'emancu'], match.value.instance_variable_get("@nested_keys"))
19
+ end
20
+
21
+ def test_keyvalue
22
+ indentation_alternatives_for('key = "value"') do |str|
23
+ match = Document.parse(str, root: :keyvalue)
24
+ assert_equal(TOML::Keyvalue, match.value.class)
25
+
26
+ keyvalue = match.value
27
+ assert_equal('key', keyvalue.instance_variable_get("@key"))
28
+ assert_equal('value', keyvalue.instance_variable_get("@value"))
29
+ end
30
+ end
31
+
32
+ def test_string
33
+ match = Document.parse('"TOML-Example, should work."', root: :string)
34
+ assert_equal("TOML-Example, should work.", match.value)
35
+ end
36
+
37
+ def test_special_characters
38
+ match = Document.parse('"\0 \" \t \n \r"', root: :string)
39
+ assert_equal("\0 \" \t \n \r", match.value)
40
+
41
+ match = Document.parse('"C:\\Documents\\virus.exe"', root: :string)
42
+ assert_equal("C:\\Documents\\virus.exe", match.value)
43
+ end
44
+
45
+ def test_bool
46
+ match = Document.parse('true', root: :bool)
47
+ assert_equal(true, match.value)
48
+
49
+ match = Document.parse('false', root: :bool)
50
+ assert_equal(false, match.value)
51
+ end
52
+
53
+ def test_integer
54
+ match = Document.parse('26', root: :number)
55
+ assert_equal(26, match.value)
56
+ end
57
+
58
+ def test_float
59
+ match = Document.parse('1.69', root: :number)
60
+ assert_equal(1.69, match.value)
61
+ end
62
+
63
+ def test_signed_numbers
64
+ match = Document.parse('+26', root: :number)
65
+ assert_equal(26, match.value)
66
+
67
+ match = Document.parse('-26', root: :number)
68
+ assert_equal(-26, match.value)
69
+
70
+ match = Document.parse('1.69', root: :number)
71
+ assert_equal(1.69, match.value)
72
+
73
+ match = Document.parse('-1.69', root: :number)
74
+ assert_equal(-1.69, match.value)
75
+ end
76
+
77
+ def test_expressions_with_comments
78
+ match = Document.parse('[shouldwork] # with comment', root: :keygroup)
79
+ assert_equal(['shouldwork'], match.value.instance_variable_get("@nested_keys"))
80
+
81
+ match = Document.parse('works = true # with comment', root: :keyvalue).value
82
+ assert_equal("works", match.instance_variable_get("@key"))
83
+ assert_equal(true, match.instance_variable_get("@value"))
84
+ end
85
+
86
+ def test_array
87
+ match = Document.parse('[]', root: :array)
88
+ assert_equal([], match.value)
89
+
90
+ match = Document.parse('[ 2, 4]', root: :array)
91
+ assert_equal([2,4], match.value)
92
+
93
+ match = Document.parse('[ 2.4, 4.72]', root: :array)
94
+ assert_equal([2.4,4.72], match.value)
95
+
96
+ match = Document.parse('[ "hey", "TOML"]', root: :array)
97
+ assert_equal(["hey","TOML"], match.value)
98
+
99
+ match = Document.parse('[ ["hey", "TOML"], [2,4] ]', root: :array)
100
+ assert_equal([["hey","TOML"], [2,4]], match.value)
101
+
102
+ multiline_array = "[ \"hey\",\n \"ho\",\n\t \"lets\", \"go\",\n ]"
103
+ match = Document.parse(multiline_array, root: :array)
104
+ assert_equal(["hey", "ho", "lets", "go"], match.value)
105
+ end
106
+
107
+ def test_datetime
108
+ match = Document.parse('1986-08-28T15:15:00Z', root: :datetime)
109
+ assert_equal(Time.utc(1986,8,28,15,15), match.value)
110
+ end
111
+
112
+ private
113
+
114
+ # Creates all the alternatives of valid indentations to test
115
+ def indentation_alternatives_for(str)
116
+ [str, " #{str}", "\t#{str}", "\t\t#{str}"].each do |alternative|
117
+ yield(alternative)
118
+ end
119
+ end
120
+ end
121
+
@@ -0,0 +1,23 @@
1
+ # Test file for TOML
2
+ # Only this one tries to emulate a TOML file written by a user of the kind of parser writers probably hate
3
+ # This part you'll really hate
4
+
5
+ [the]
6
+ test_string = "You'll hate me after this - #" # " Annoying, isn't it?
7
+
8
+ [the.hard]
9
+ test_array = [ "] ", " # "] # ] There you go, parse this!
10
+ test_array2 = [ "Test #11 ]proved that", "Experiment #9 was a success" ]
11
+ # You didn't think it'd as easy as chucking out the last #, did you?
12
+ another_test_string = " Same thing, but with a string #"
13
+ harder_test_string = " And when \"'s are in the string, along with # \"" # "and comments are there too"
14
+ # Things will get harder
15
+
16
+ [the.hard.bit#]
17
+ what? = "You don't think some user won't do that?"
18
+ multi_line_array = [
19
+ "]",
20
+ # ] Oh yes I did
21
+ ]
22
+
23
+ # Each of the following keygroups/key value pairs should produce an error. Uncomment to them to test
@@ -0,0 +1,2 @@
1
+ require "test/unit"
2
+ require_relative "../lib/toml"
@@ -0,0 +1,110 @@
1
+ require_relative 'helper'
2
+
3
+ class TomlTest < Test::Unit::TestCase
4
+ def test_file
5
+ path = File.join(File.dirname(__FILE__), 'example.toml')
6
+ parsed = TOML.load_file(path)
7
+
8
+ hash = {
9
+ "title" => "TOML Example",
10
+
11
+ "owner" => {
12
+ "name" => "Tom Preston-Werner",
13
+ "organization" => "GitHub",
14
+ "bio" => "GitHub Cofounder & CEO\nLikes tater tots and beer.",
15
+ "dob" => Time.utc(1979,05,27,07,32,00)
16
+ },
17
+
18
+ "database" => {
19
+ "server" => "192.168.1.1",
20
+ "ports" => [ 8001, 8001, 8002 ],
21
+ "connection_max" => 5000,
22
+ "enabled" => true
23
+ },
24
+
25
+ "servers" => {
26
+ "amount" => 2,
27
+ "alpha" => {
28
+ "ip" => "10.0.0.1",
29
+ "dc" => "eqdc10"
30
+ },
31
+ "beta" => {
32
+ "ip" => "10.0.0.2",
33
+ "dc" => "eqdc10"
34
+ }
35
+ },
36
+
37
+ "clients" => {
38
+ "data" => [["gamma", "delta"], [1, 2]],
39
+ "hosts" => ["alpha", "omega"]
40
+ }
41
+ }
42
+
43
+ assert_equal(hash, parsed)
44
+ end
45
+
46
+ def test_hard_example
47
+ path = File.join(File.dirname(__FILE__), 'hard_example.toml')
48
+ parsed = TOML.load_file(path)
49
+
50
+ hash = {
51
+ "the" => {
52
+ "test_string" => "You'll hate me after this - #",
53
+ "hard" => {
54
+ "test_array" => [ "] ", " # "],
55
+ "test_array2" => [ "Test #11 ]proved that", "Experiment #9 was a success" ],
56
+ "another_test_string" => " Same thing, but with a string #",
57
+ "harder_test_string" => " And when \"'s are in the string, along with # \"",
58
+ "bit#" => {
59
+ "what?" => "You don't think some user won't do that?",
60
+ "multi_line_array" => [ "]" ]
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ assert_equal(hash, parsed)
67
+ end
68
+
69
+ def test_symbolize_keys
70
+ path = File.join(File.dirname(__FILE__), 'example.toml')
71
+ parsed = TOML.load_file(path, symbolize_keys: true)
72
+
73
+ hash = {
74
+ title: "TOML Example",
75
+
76
+ owner: {
77
+ name: "Tom Preston-Werner",
78
+ organization: "GitHub",
79
+ bio: "GitHub Cofounder & CEO\nLikes tater tots and beer.",
80
+ dob: Time.utc(1979,05,27,07,32,00)
81
+ },
82
+
83
+ database: {
84
+ server: "192.168.1.1",
85
+ ports: [ 8001, 8001, 8002 ],
86
+ connection_max: 5000,
87
+ enabled: true
88
+ },
89
+
90
+ servers: {
91
+ amount: 2,
92
+ alpha: {
93
+ ip: "10.0.0.1",
94
+ dc: "eqdc10"
95
+ },
96
+ beta: {
97
+ ip: "10.0.0.2",
98
+ dc: "eqdc10"
99
+ }
100
+ },
101
+
102
+ clients: {
103
+ data: [["gamma", "delta"], [1, 2]],
104
+ hosts: ["alpha", "omega"]
105
+ }
106
+ }
107
+
108
+ assert_equal(hash, parsed)
109
+ end
110
+ end
@@ -0,0 +1,22 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'toml-rb'
3
+ s.version = '0.1.0'
4
+ s.date = Time.now.strftime('%Y-%m-%d')
5
+ s.summary = "TOML parser in ruby, for ruby."
6
+ s.description = "A TOML parser using Citrus parsing library. Formerly known as 'toml_parser-ruby'. "
7
+ s.authors = ["Emiliano Mancuso", "Lucas Tolchinsky"]
8
+ s.email = ['emiliano.mancuso@gmail.com', 'lucas.tolchinsky@gmail.com']
9
+ s.homepage = 'http://github.com/eMancu/toml-rb'
10
+ s.license = "MIT"
11
+
12
+ s.files = Dir[
13
+ "README.md",
14
+ "Rakefile",
15
+ "lib/**/*.rb",
16
+ "lib/**/*.citrus",
17
+ "*.gemspec",
18
+ "test/*.*"
19
+ ]
20
+
21
+ s.add_dependency "citrus"
22
+ end
@@ -0,0 +1,28 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'toml_parser-ruby'
3
+ s.version = '0.1.0'
4
+ s.date = Time.now.strftime('%Y-%m-%d')
5
+ s.summary = "TOML parser in ruby, for ruby."
6
+ s.description = "DEPRECATED by 'toml-rb' gem.\n A TOML parser using Citrus parsing library"
7
+ s.authors = ["Emiliano Mancuso"]
8
+ s.email = 'emiliano.mancuso@gmail.com'
9
+ s.homepage = 'http://github.com/eMancu/toml_parser-ruby'
10
+ s.license = "MIT"
11
+
12
+ s.files = Dir[
13
+ "README.md",
14
+ "Rakefile",
15
+ "lib/**/*.rb",
16
+ "*.gemspec",
17
+ "test/*.*"
18
+ ]
19
+
20
+ s.add_dependency "citrus"
21
+
22
+
23
+ s.post_install_message = <<-MESSAGE
24
+ ! The 'toml_parser-ruby' gem has been deprecated and has been replaced by 'toml-rb'.
25
+ ! See: https://rubygems.org/gems/toml-rb
26
+ ! And: https://github.com/eMancu/toml-rb
27
+ MESSAGE
28
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: toml_parser-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Emiliano Mancuso
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: citrus
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: ! "DEPRECATED by 'toml-rb' gem.\n A TOML parser using Citrus parsing
28
+ library"
29
+ email: emiliano.mancuso@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - README.md
35
+ - Rakefile
36
+ - lib/toml/keygroup.rb
37
+ - lib/toml/keyvalue.rb
38
+ - lib/toml/parser.rb
39
+ - lib/toml/string.rb
40
+ - lib/toml.rb
41
+ - toml-rb.gemspec
42
+ - toml_parser-ruby.gemspec
43
+ - test/example.toml
44
+ - test/grammar_test.rb
45
+ - test/hard_example.toml
46
+ - test/helper.rb
47
+ - test/toml_test.rb
48
+ homepage: http://github.com/eMancu/toml_parser-ruby
49
+ licenses:
50
+ - MIT
51
+ metadata: {}
52
+ post_install_message: ! " ! The 'toml_parser-ruby' gem has been deprecated and
53
+ has been replaced by 'toml-rb'.\n ! See: https://rubygems.org/gems/toml-rb\n
54
+ \ ! And: https://github.com/eMancu/toml-rb\n"
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.0.3
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: TOML parser in ruby, for ruby.
74
+ test_files: []