kete-feedzirra 0.0.18.1 → 0.0.20.1

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.
@@ -4,6 +4,6 @@ class String
4
4
  end
5
5
 
6
6
  def sanitize
7
- Dryopteris.sanitize(self)
7
+ Loofah.scrub_fragment(self, :prune).to_s
8
8
  end
9
9
  end
@@ -5,7 +5,7 @@ gem 'activesupport'
5
5
  require 'zlib'
6
6
  require 'curb'
7
7
  require 'sax-machine'
8
- require 'dryopteris'
8
+ require 'loofah'
9
9
  require 'uri'
10
10
  require 'active_support/basic_object'
11
11
  require 'active_support/core_ext/object'
@@ -30,5 +30,5 @@ require 'feedzirra/parser/atom'
30
30
  require 'feedzirra/parser/atom_feed_burner'
31
31
 
32
32
  module Feedzirra
33
- VERSION = "0.0.18.1"
33
+ VERSION = "0.0.20.1"
34
34
  end
@@ -1,7 +1,7 @@
1
1
  module Feedzirra
2
2
  module FeedUtilities
3
- UPDATABLE_ATTRIBUTES = %w(title feed_url url last_modified)
4
-
3
+ UPDATABLE_ATTRIBUTES = %w(title feed_url url last_modified etag)
4
+
5
5
  attr_writer :new_entries, :updated, :last_modified
6
6
  attr_accessor :etag
7
7
 
@@ -11,50 +11,50 @@ module Feedzirra
11
11
  entry ? entry.published : nil
12
12
  end
13
13
  end
14
-
14
+
15
15
  def updated?
16
16
  @updated
17
17
  end
18
-
18
+
19
19
  def new_entries
20
20
  @new_entries ||= []
21
21
  end
22
-
22
+
23
23
  def has_new_entries?
24
24
  new_entries.size > 0
25
25
  end
26
-
26
+
27
27
  def update_from_feed(feed)
28
28
  self.new_entries += find_new_entries_for(feed)
29
29
  self.entries.unshift(*self.new_entries)
30
-
31
- updated! if UPDATABLE_ATTRIBUTES.any? { |name| update_attribute(feed, name) }
30
+
31
+ @updated = false
32
+ UPDATABLE_ATTRIBUTES.each do |name|
33
+ @updated ||= update_attribute(feed, name)
34
+ end
32
35
  end
33
-
36
+
34
37
  def update_attribute(feed, name)
35
38
  old_value, new_value = send(name), feed.send(name)
36
-
39
+
37
40
  if old_value != new_value
38
41
  send("#{name}=", new_value)
39
42
  end
40
43
  end
41
-
44
+
42
45
  def sanitize_entries!
43
46
  entries.each {|entry| entry.sanitize!}
44
47
  end
45
-
48
+
46
49
  private
47
-
48
- def updated!
49
- @updated = true
50
- end
51
-
50
+
52
51
  def find_new_entries_for(feed)
53
52
  # this implementation is a hack, which is why it's so ugly.
54
53
  # it's to get around the fact that not all feeds have a published date.
55
54
  # however, they're always ordered with the newest one first.
56
55
  # So we go through the entries just parsed and insert each one as a new entry
57
56
  # until we get to one that has the same url as the the newest for the feed
57
+ return feed.entries if self.entries.length == 0
58
58
  latest_entry = self.entries.first
59
59
  found_new_entries = []
60
60
  feed.entries.each do |entry|
@@ -63,7 +63,7 @@ module Feedzirra
63
63
  end
64
64
  found_new_entries
65
65
  end
66
-
66
+
67
67
  def existing_entry?(test_entry)
68
68
  entries.any? { |entry| entry.url == test_entry.url }
69
69
  end
@@ -22,16 +22,16 @@ describe Feedzirra::FeedUtilities do
22
22
  end
23
23
 
24
24
  it "should provide a sanitized title" do
25
- new_title = "<script>" + @entry.title
25
+ new_title = "<script>this is not safe</script>" + @entry.title
26
26
  @entry.title = new_title
27
- @entry.title.sanitize.should == Dryopteris.sanitize(new_title)
27
+ @entry.title.sanitize.should == Loofah.scrub_fragment(new_title, :prune).to_s
28
28
  end
29
29
 
30
30
  it "should sanitize content in place" do
31
31
  new_content = "<script>" + @entry.content
32
32
  @entry.content = new_content.dup
33
- @entry.content.sanitize!.should == Dryopteris.sanitize(new_content)
34
- @entry.content.should == Dryopteris.sanitize(new_content)
33
+ @entry.content.sanitize!.should == Loofah.scrub_fragment(new_content, :prune).to_s
34
+ @entry.content.should == Loofah.scrub_fragment(new_content, :prune).to_s
35
35
  end
36
36
 
37
37
  it "should sanitize things in place" do
@@ -39,9 +39,9 @@ describe Feedzirra::FeedUtilities do
39
39
  @entry.author += "<script>"
40
40
  @entry.content += "<script>"
41
41
 
42
- cleaned_title = Dryopteris.sanitize(@entry.title)
43
- cleaned_author = Dryopteris.sanitize(@entry.author)
44
- cleaned_content = Dryopteris.sanitize(@entry.content)
42
+ cleaned_title = Loofah.scrub_fragment(@entry.title, :prune).to_s
43
+ cleaned_author = Loofah.scrub_fragment(@entry.author, :prune).to_s
44
+ cleaned_content = Loofah.scrub_fragment(@entry.content, :prune).to_s
45
45
 
46
46
  @entry.sanitize!
47
47
  @entry.title.should == cleaned_title
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kete-feedzirra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.18.1
4
+ version: 0.0.20.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Dix
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-03 00:00:00 -07:00
12
+ date: 2009-08-03 00:00:00 +12:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -23,7 +23,7 @@ dependencies:
23
23
  version: 0.0.0
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
- name: pauldix-sax-machine
26
+ name: sax-machine
27
27
  type: :runtime
28
28
  version_requirement:
29
29
  version_requirements: !ruby/object:Gem::Requirement
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: 0.0.12
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
- name: taf2-curb
36
+ name: curb
37
37
  type: :runtime
38
38
  version_requirement:
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -63,14 +63,14 @@ dependencies:
63
63
  version: 2.0.0
64
64
  version:
65
65
  - !ruby/object:Gem::Dependency
66
- name: mdalessio-dryopteris
66
+ name: loofah
67
67
  type: :runtime
68
68
  version_requirement:
69
69
  version_requirements: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: 0.0.0
73
+ version: 0.3.1
74
74
  version:
75
75
  description:
76
76
  email: paul@pauldix.net
@@ -114,7 +114,8 @@ files:
114
114
  - spec/feedzirra/feed_entry_utilities_spec.rb
115
115
  has_rdoc: true
116
116
  homepage: http://github.com/pauldix/feedzirra
117
- licenses:
117
+ licenses: []
118
+
118
119
  post_install_message:
119
120
  rdoc_options: []
120
121