Chrononaut-treetop-dcf 0.1.2 → 0.2.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.
data/lib/dcf.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require "rubygems"
2
2
  require "treetop"
3
- require "dcf_grammar"
3
+ require File.join(File.dirname(__FILE__) + "/dcf_grammar")
4
4
 
5
5
  module Dcf
6
6
  # @param [String] input
@@ -17,4 +17,8 @@ module Dcf
17
17
  paragraph
18
18
  end
19
19
  end
20
+
21
+ def self.version
22
+ "0.2.0"
23
+ end
20
24
  end
@@ -1,6 +1,6 @@
1
1
  grammar Dcf
2
2
  rule paragraphs
3
- (paragraph eol?)*
3
+ (paragraph eol?)+
4
4
  end
5
5
 
6
6
  rule paragraph
@@ -8,25 +8,25 @@ grammar Dcf
8
8
  end
9
9
 
10
10
  rule field
11
- attribute separator value white*
11
+ attribute separator value
12
12
  end
13
13
 
14
14
  rule attribute
15
- (!eol !":" !" " .)+
15
+ (!":" !eol .)+
16
16
  end
17
17
 
18
18
  rule value
19
- eol? valid_value_symbols (eol white+ valid_value_symbols)*
19
+ eol? (!eol .)+ (eol white+ (!eol .)+)*
20
20
  {
21
21
  def text_value
22
22
  # I don't really like this, but it works for the files I'm parsing, so..
23
- super.strip.gsub(/[\r\n] */, ' ')
23
+ super.strip.gsub(/\n */, ' ')
24
24
  end
25
25
  }
26
26
  end
27
27
 
28
- rule valid_value_symbols
29
- (!eol .)+
28
+ rule next_record
29
+ "\n" [a-zA-Z]
30
30
  end
31
31
 
32
32
  rule separator
@@ -34,7 +34,7 @@ grammar Dcf
34
34
  end
35
35
 
36
36
  rule eol
37
- "\r\n" / [\n\r]
37
+ "\n"
38
38
  end
39
39
 
40
40
  rule white
@@ -2,9 +2,6 @@
2
2
  require File.dirname(__FILE__) + '/helper'
3
3
 
4
4
  class TestDcfParser < Test::Unit::TestCase
5
- should "not accept spaces in keys" do
6
- assert_nil Dcf.parse("As df: Value\n")
7
- end
8
5
 
9
6
  should "parse a description file" do
10
7
  description = <<EOF
@@ -113,15 +110,19 @@ EOF
113
110
 
114
111
  should "parse file with UTF-8 data" do
115
112
  sample = <<EOF
113
+ Author: Vincent Goulet, Sébastien Auclair, Christophe Dutang, Xavier
114
+ Milhaud, Tommy Ouellet, Louis-Philippe Pouliot, Mathieu Pigeon
116
115
  Encoding: latin1
117
116
  Packaged: Tue May 26 10:40:31 2009; Grömping
118
117
  Repository: CRAN
119
118
  Date/Publication: 2009-05-26 09:23:28
120
119
  EOF
121
- sample = (RUBY_VERSION =~ /1.9/) ? sample.force_encoding("binary") : sample
122
- match = (RUBY_VERSION =~ /1.9/) ? "Grömping".force_encoding("binary") : "Grömping"
120
+ sample = (RUBY_VERSION =~ /1.9/) ? sample.force_encoding("utf-8") : sample
121
+ match = (RUBY_VERSION =~ /1.9/) ? "Grömping".force_encoding("utf-8") : "Grömping"
123
122
  parse = Dcf.parse(sample).first
124
123
  assert_not_nil parse
124
+ assert_match "Sébastien Auclair", parse["Author"]
125
125
  assert_equal "Tue May 26 10:40:31 2009; #{match}", parse["Packaged"]
126
126
  end
127
+
127
128
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Chrononaut-treetop-dcf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bjorn Arild Maeland
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-06 00:00:00 -07:00
12
+ date: 2009-06-25 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -61,6 +61,6 @@ signing_key:
61
61
  specification_version: 3
62
62
  summary: Easy to use parser for Debian Control Files.
63
63
  test_files:
64
+ - test/test_dcf.rb
64
65
  - test/helper.rb
65
66
  - test/suite.rb
66
- - test/test_dcf.rb