conpar 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
- # Conpar
1
+ # Conpar
2
2
  [![Gem Version](https://badge.fury.io/rb/conpar.svg)](http://badge.fury.io/rb/conpar)
3
3
  [![Build Status](https://travis-ci.org/CITguy/conpar.png?branch=master)](https://travis-ci.org/CITguy/conpar)
4
4
  [![Coverage Status](https://coveralls.io/repos/CITguy/conpar/badge.png?branch=master)](https://coveralls.io/r/CITguy/conpar?branch=master)
5
+ [![Dependency Status](https://gemnasium.com/CITguy/conpar.svg)](https://gemnasium.com/CITguy/conpar)
5
6
 
6
7
  Conpar (short for Configuration Parser) is designed to be a flexible and extendable library for parsing through a Firewall configuration file by tokenizing the configuration directives into ruby objects for evaluation.
7
8
 
@@ -37,6 +38,12 @@ The returned array will have parsed every line in the configuration string into
37
38
  ## Configuration
38
39
  **NOTE:** While configuration _is_ functional, it is **not** advised to do any configuration for the current version of this gem.
39
40
 
41
+ ## CHANGELOG
42
+ ### 0.2.0
43
+ * Minor version bumped due to potentially breaking change in functionality.
44
+ * Changes
45
+ * Directive line_number now returns a string that is in the same encoding as the line it refers.
46
+
40
47
  ## Contributing
41
48
 
42
49
  1. Fork it
@@ -44,3 +51,4 @@ The returned array will have parsed every line in the configuration string into
44
51
  3. Commit your changes (`git commit -am 'Add some feature'`)
45
52
  4. Push to the branch (`git push origin my-new-feature`)
46
53
  5. Create new Pull Request
54
+
@@ -5,8 +5,9 @@ module Conpar
5
5
  SIGNATURE = /^(.*)$/ # Matches any non-empty string
6
6
 
7
7
  # @!attribute [rw] line_number
8
- # @return [Integer]
8
+ # @return [String]
9
9
  # 1-based line number within the configuration
10
+ # String returned is in same encoding as the line it refers
10
11
  attr_accessor :line_number
11
12
 
12
13
  # @!attribute [rw] line_span
@@ -13,7 +13,7 @@ module Conpar
13
13
  lines = fw_config.split("\n")
14
14
 
15
15
  lines.each_with_index do |line, i|
16
- human_line = i+1
16
+ human_line = "#{i+1}".encode(line.encoding)
17
17
  parsed << Conpar.config.parser.new( line, line_number:human_line )
18
18
  end
19
19
 
@@ -1,3 +1,3 @@
1
1
  module Conpar
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -46,11 +46,23 @@ describe Conpar::Document do
46
46
  end
47
47
  it { expect(acls).to have(1).item }
48
48
  it "first acl should be on line #3" do
49
- expect(acls.first.line_number).to eq(3)
49
+ expect(acls.first.line_number).to eq("3")
50
50
  end
51
51
  end
52
52
  # f
53
53
  end
54
+
55
+ context "as UTF-8 encoding" do
56
+ let(:content) { config.encode("UTF-8") }
57
+ context "result" do
58
+ let(:result) { subject.parse(content) }
59
+ it "line_number encodings should all be same as content encoding" do
60
+ encodings = result.collect{|r| r.line_number.to_s.encoding }
61
+ encodings &= encodings
62
+ expect(encodings).to eq([content.encoding])
63
+ end
64
+ end
65
+ end
54
66
  end
55
67
 
56
68
  # 2 comments and 2 different ACLs
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conpar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-21 00:00:00.000000000 Z
12
+ date: 2014-05-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -227,7 +227,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
227
227
  version: '0'
228
228
  segments:
229
229
  - 0
230
- hash: -1371363594229726120
230
+ hash: -220778513351759836
231
231
  required_rubygems_version: !ruby/object:Gem::Requirement
232
232
  none: false
233
233
  requirements:
@@ -236,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
236
  version: '0'
237
237
  segments:
238
238
  - 0
239
- hash: -1371363594229726120
239
+ hash: -220778513351759836
240
240
  requirements: []
241
241
  rubyforge_project:
242
242
  rubygems_version: 1.8.23