saxy 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7aece0820f9857b94f42d54164325ea667652065
4
- data.tar.gz: 3c98297e4859dd500d6ec283a164e694119943fb
3
+ metadata.gz: c9486f25851c6f1fc75f37b2196b02cc27831386
4
+ data.tar.gz: d914fa68442184ac2066e8f860f1f82d029222a3
5
5
  SHA512:
6
- metadata.gz: 1cd890ce2423a1b7e19f7a5350e49d04b2863a1e0b03940a996aa33a9d998e5aa238b05200af20dc7466c9337269c260dd03ba7157ca9d8a16170248352b4fe0
7
- data.tar.gz: 9d24f74bbd19185bfab0c164652c845befaf7be740264a21f32ecb979e7a6530d6c5ca7f077d57c8c408f5ba475c4bb183eee2bb3db0a0c57d4c8d81ea2c380f
6
+ metadata.gz: 116cf7b365cecb245cec43dc7e45ec62f5e36f05461d47ce270b8aab2113a546de053d4772ac97878518d5a0534241ee44ffcd37cd9db172016872edd7192d04
7
+ data.tar.gz: de32e8c5e86c0a29300a5f0dc64b29c3282c40d3aa8fb5d4a2ad0f70d6352d860cb95c040a985eca2782c7e1a0e70fa507fc677272e0c8e25b0a277d71e98e88
data/.gitignore CHANGED
@@ -3,7 +3,7 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
- Gemfile.lock
6
+ *emfile.lock
7
7
  InstalledFiles
8
8
  _yardoc
9
9
  coverage
@@ -6,3 +6,12 @@ rvm:
6
6
  - 2.1
7
7
  - 2.0.0
8
8
  - 1.9.3
9
+ gemfile:
10
+ - gemfiles/nokogiri_1.6.gemfile
11
+ - gemfiles/nokogiri_latest.gemfile
12
+ matrix:
13
+ exclude:
14
+ - rvm: 2.0.0
15
+ gemfile: gemfiles/nokogiri_latest.gemfile
16
+ - rvm: 1.9.3
17
+ gemfile: gemfiles/nokogiri_latest.gemfile
@@ -0,0 +1,7 @@
1
+ appraise "nokogiri 1.6" do
2
+ gem "nokogiri", "~> 1.6.0"
3
+ end
4
+
5
+ appraise "nokogiri latest" do
6
+ gem "nokogiri"
7
+ end
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "nokogiri", "~> 1.6.0"
6
+
7
+ gemspec :path => "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "nokogiri"
6
+
7
+ gemspec :path => "../"
@@ -16,9 +16,10 @@ module Saxy
16
16
  # Will yield objects inside the callback after they're built
17
17
  attr_reader :callback
18
18
 
19
- def initialize(object, object_tag)
19
+ def initialize(object, object_tag, encoding=nil)
20
20
  @object, @object_tag = object, object_tag
21
21
  @tags, @elements = [], []
22
+ @encoding = encoding
22
23
  end
23
24
 
24
25
  def start_element(tag, attributes=[])
@@ -67,7 +68,9 @@ module Saxy
67
68
 
68
69
  @callback = blk
69
70
 
70
- parser = Nokogiri::XML::SAX::Parser.new(self)
71
+ args = [self, @encoding].compact
72
+
73
+ parser = Nokogiri::XML::SAX::Parser.new(*args)
71
74
 
72
75
  if @object.respond_to?(:read) && @object.respond_to?(:close)
73
76
  parser.parse_io(@object)
@@ -1,3 +1,3 @@
1
1
  module Saxy
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.2"
3
3
  end
@@ -4,7 +4,7 @@ require File.expand_path('../lib/saxy/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["Michał Szajbe"]
6
6
  gem.email = ["michal.szajbe@gmail.com"]
7
- gem.description = %q{Saxy finds object definitions in XML files and translates them into Ruby objects. It uses SAX parser under the hood, which means that it doesn't load the whole XML file into memory. It goes once though it and yields objects along the way.}
7
+ gem.description = %q{Saxy finds object definitions in XML files and translates them into Ruby objects. It uses SAX parser under the hood, which means that it doesn't load the whole XML file into memory. It goes once through it and yields objects along the way.}
8
8
  gem.summary = %q{Memory-efficient XML parser. Finds object definitions and translates them into Ruby objects.}
9
9
  gem.homepage = "http://github.com/humante/saxy"
10
10
 
@@ -20,4 +20,5 @@ Gem::Specification.new do |gem|
20
20
  gem.add_dependency "nokogiri"
21
21
 
22
22
  gem.add_development_dependency "rspec"
23
+ gem.add_development_dependency "appraisal"
23
24
  end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Saxy::Parser do
4
4
  include FixturesHelper
5
5
 
6
- let(:parser) { Saxy::Parser.new(fixture_file("webstore.xml"), "product") }
6
+ let(:parser) { Saxy::Parser.new(fixture_file("webstore.xml"), "product", "UTF-8") }
7
7
  let(:file_io) { File.new(fixture_file("webstore.xml")) }
8
8
  let(:io_like) { IOLike.new(file_io) }
9
9
 
@@ -18,6 +18,12 @@ describe Saxy::Parser do
18
18
  expect(parser.each.to_a.size).to eq(2)
19
19
  end
20
20
 
21
+ it "should accept optional force-encoding" do
22
+ parser = Saxy::Parser.new(file_io, "product", 'UTF-8')
23
+ expect(Nokogiri::XML::SAX::Parser).to receive(:new).with(parser, "UTF-8").and_call_original
24
+ expect(parser.each.to_a.size).to eq(2)
25
+ end
26
+
21
27
  it "should accept an IO-like for parsing" do
22
28
  parser = Saxy::Parser.new(io_like, "product")
23
29
  expect(parser.each.to_a.size).to eq(2)
@@ -158,5 +164,4 @@ describe Saxy::Parser do
158
164
  it "should return Enumerator when calling #each without a block" do
159
165
  expect(parser.each).to be_an(Enumerator)
160
166
  end
161
-
162
167
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michał Szajbe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-27 00:00:00.000000000 Z
11
+ date: 2017-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -38,9 +38,23 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: appraisal
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: Saxy finds object definitions in XML files and translates them into Ruby
42
56
  objects. It uses SAX parser under the hood, which means that it doesn't load the
43
- whole XML file into memory. It goes once though it and yields objects along the
57
+ whole XML file into memory. It goes once through it and yields objects along the
44
58
  way.
45
59
  email:
46
60
  - michal.szajbe@gmail.com
@@ -51,10 +65,13 @@ files:
51
65
  - ".gitignore"
52
66
  - ".rspec"
53
67
  - ".travis.yml"
68
+ - Appraisals
54
69
  - Gemfile
55
70
  - LICENSE.txt
56
71
  - README.md
57
72
  - Rakefile
73
+ - gemfiles/nokogiri_1.6.gemfile
74
+ - gemfiles/nokogiri_latest.gemfile
58
75
  - lib/saxy.rb
59
76
  - lib/saxy/element.rb
60
77
  - lib/saxy/parser.rb