HTML-AutoTag 1.0.4 → 1.0.5

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: efb0d13dd8dbda045953096fb70847a370eb073c
4
+ data.tar.gz: c7d4c78fe89a7b973d18a2bb09d471452b4ae58c
5
+ SHA512:
6
+ metadata.gz: ea13dfdb575f7f3caab7fb20b3aecee404b6b476b33824a7044f82f47c417623d1328f7988da05f0eb4c9b303f488923028890b441c4901e386b2c23ebaa3737
7
+ data.tar.gz: 8563123b26d7276f1985ba9cb9c1f807b294f74a06509305fe3c540151e5b7a6c5673ab8035a57d59d786f59a13c9180c28e35ecb53fa32c5d07afb37f46f94e
data/Changes CHANGED
@@ -1,5 +1,8 @@
1
1
  Revision history for html-autotag-ruby
2
2
 
3
+ 1.0.5
4
+ - fixed double ampersand encoding bug
5
+
3
6
  1.0.4
4
7
  - fully implemented HTML::Encoder's functionality
5
8
 
@@ -1,5 +1,5 @@
1
1
  module HTML
2
2
  class AutoTag
3
- VERSION = "1.0.4"
3
+ VERSION = "1.0.5"
4
4
  end
5
5
  end
data/lib/HTML/Encoder.rb CHANGED
@@ -137,11 +137,21 @@ module HTML
137
137
  string = args[0]
138
138
  chars = args[1].nil? ? '&<>"\'' : args[1]
139
139
 
140
- chars.to_s.each_char { |c|
141
- string = string.to_s.gsub( c, @char2entity[c] || num_entity(c) )
140
+ lookup = {}
141
+ chars.to_s.each_char{ |c|
142
+ lookup[c] = @char2entity[c] || num_entity(c)
142
143
  }
143
144
 
144
- return string
145
+ encoded = ''
146
+ string.to_s.each_char { |c|
147
+ if lookup[c]
148
+ encoded += @char2entity[c] || num_entity(c)
149
+ else
150
+ encoded += c
151
+ end
152
+ }
153
+
154
+ return encoded
145
155
 
146
156
  end
147
157
 
data/t/05-encode.rb CHANGED
@@ -18,12 +18,25 @@ class TestHTML_Encoder < Test::Unit::TestCase
18
18
  encoder.encode( '&<>"\'', '' ),
19
19
  'no encodes when chars is empty'
20
20
  )
21
+
22
+ assert_equal(
23
+ 'hell&#48;',
24
+ encoder.encode( 'hell0', 0 ),
25
+ 'zero encodes correctly'
26
+ )
27
+
21
28
  assert_equal(
22
29
  'h&#101;llo',
23
30
  encoder.encode( 'hello', 'e' ),
24
31
  'requested chars encoded correctly'
25
32
  )
26
33
 
34
+ assert_equal(
35
+ '&amp;b&#97;r',
36
+ encoder.encode( '&bar', 'a&' ),
37
+ 'ampersand is not double encoded'
38
+ )
39
+
27
40
  assert_equal(
28
41
  'hello',
29
42
  encoder.encode( 'hello' ),
metadata CHANGED
@@ -1,63 +1,53 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: HTML-AutoTag
3
- version: !ruby/object:Gem::Version
4
- hash: 31
5
- prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 4
10
- version: 1.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.5
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - jeffa
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2015-11-04 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2015-11-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: bundler
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 9
29
- segments:
30
- - 1
31
- - 3
32
- version: "1.3"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
33
20
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: rake
37
21
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
41
31
  - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
47
34
  type: :development
48
- version_requirements: *id002
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
49
41
  description: Just another HTML tag generator for ruby.
50
- email:
42
+ email:
51
43
  - jeffa@cpan.org
52
44
  executables: []
53
-
54
45
  extensions: []
55
-
56
- extra_rdoc_files:
46
+ extra_rdoc_files:
57
47
  - README
58
- files:
59
- - .gitignore
60
- - .travis.yml
48
+ files:
49
+ - ".gitignore"
50
+ - ".travis.yml"
61
51
  - Changes
62
52
  - Gemfile
63
53
  - HTML-AutoTag.gemspec
@@ -76,37 +66,27 @@ files:
76
66
  - t/04-tag-attrs.rb
77
67
  - t/05-encode.rb
78
68
  homepage: https://github.com/jeffa/html-autotag-ruby
79
- licenses:
69
+ licenses:
80
70
  - MIT
71
+ metadata: {}
81
72
  post_install_message:
82
73
  rdoc_options: []
83
-
84
- require_paths:
74
+ require_paths:
85
75
  - lib
86
- required_ruby_version: !ruby/object:Gem::Requirement
87
- none: false
88
- requirements:
76
+ required_ruby_version: !ruby/object:Gem::Requirement
77
+ requirements:
89
78
  - - ">="
90
- - !ruby/object:Gem::Version
91
- hash: 3
92
- segments:
93
- - 0
94
- version: "0"
95
- required_rubygems_version: !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ requirements:
98
83
  - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
104
86
  requirements: []
105
-
106
87
  rubyforge_project:
107
- rubygems_version: 1.8.25
88
+ rubygems_version: 2.4.6
108
89
  signing_key:
109
- specification_version: 3
90
+ specification_version: 4
110
91
  summary: Generate HTML tags with ease (HTML4, HTML5, XHTML and SVG).
111
92
  test_files: []
112
-