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 +5 -1
- data/lib/dcf_grammar.treetop +8 -8
- data/test/test_dcf.rb +6 -5
- metadata +3 -3
    
        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
         | 
    
        data/lib/dcf_grammar.treetop
    CHANGED
    
    | @@ -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 | 
| 11 | 
            +
                attribute separator value
         | 
| 12 12 | 
             
              end
         | 
| 13 13 |  | 
| 14 14 | 
             
              rule attribute
         | 
| 15 | 
            -
                (! | 
| 15 | 
            +
                (!":" !eol .)+
         | 
| 16 16 | 
             
              end
         | 
| 17 17 |  | 
| 18 18 | 
             
              rule value
         | 
| 19 | 
            -
                eol?  | 
| 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( | 
| 23 | 
            +
                    super.strip.gsub(/\n */, ' ')
         | 
| 24 24 | 
             
                  end
         | 
| 25 25 | 
             
                }
         | 
| 26 26 | 
             
              end
         | 
| 27 27 |  | 
| 28 | 
            -
              rule  | 
| 29 | 
            -
                 | 
| 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 | 
            -
                "\ | 
| 37 | 
            +
                "\n"
         | 
| 38 38 | 
             
              end
         | 
| 39 39 |  | 
| 40 40 | 
             
              rule white
         | 
    
        data/test/test_dcf.rb
    CHANGED
    
    | @@ -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(" | 
| 122 | 
            -
                match = (RUBY_VERSION =~ /1.9/) ? "Grömping".force_encoding(" | 
| 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. | 
| 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- | 
| 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
         |