technicalpickles-feedra 0.0.0 → 0.0.2

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.0.2
data/feedra.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{feedra}
5
- s.version = "0.0.0"
5
+ s.version = "0.0.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Josh Nichols"]
9
- s.date = %q{2009-05-19}
9
+ s.date = %q{2009-05-26}
10
10
  s.email = %q{josh@technicalpickles.com}
11
11
  s.extra_rdoc_files = [
12
12
  "LICENSE",
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  "generators/feedra/feedra_generator.rb",
24
24
  "generators/feedra/templates/entry.rb",
25
25
  "generators/feedra/templates/feed.rb",
26
+ "generators/feedra/templates/feed_error.rb",
26
27
  "generators/feedra/templates/migration.rb",
27
28
  "lib/feedra.rb",
28
29
  "lib/feedra/entry.rb",
@@ -0,0 +1,2 @@
1
+ class FeedError < ActiveRecord::Base
2
+ end
@@ -11,6 +11,15 @@ class CreateFeedAndEvents < ActiveRecord::Migration
11
11
  t.timestamps
12
12
  end
13
13
 
14
+ create_table :feed_errors do |t|
15
+ t.string :error_type
16
+ t.string :message
17
+ t.text :trace
18
+ t.references :feed
19
+
20
+ t.timestamps
21
+ end
22
+
14
23
  create_table :entries do |t|
15
24
  t.string :title
16
25
  t.string :author
@@ -29,6 +38,7 @@ class CreateFeedAndEvents < ActiveRecord::Migration
29
38
 
30
39
  def self.down
31
40
  drop_table :feeds
41
+ drop_table :feed_errors
32
42
  drop_table :entries
33
43
  end
34
44
  end
data/lib/feedra/feed.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'feedzirra'
2
+
1
3
  module Feedra
2
4
  module Feed
3
5
 
@@ -7,6 +9,7 @@ module Feedra
7
9
 
8
10
  validates_presence_of :feed_url
9
11
  has_many :entries, :dependent => :destroy, :order => "published_at DESC, created_at DESC"
12
+ has_many :feed_errors
10
13
  named_scope :stale, lambda {{ :conditions => ['stale_at < ? OR stale_at IS NULL', Time.now] }}
11
14
 
12
15
  before_create :populate_metadata_from_feed
@@ -44,33 +47,36 @@ module Feedra
44
47
  return feed_url unless feed_url.blank?
45
48
  end
46
49
 
47
- module ClassMethods
48
- def self.fetch_stale!
49
- stale.each do |feed|
50
- feed.fetch!
51
- end
52
- end
53
-
54
- def fetch!
55
- begin
56
- feedzirra_feed = Feedzirra::Feed.fetch_and_parse(self.feed_url)
50
+ def fetch!
51
+ begin
52
+ feedzirra_feed = Feedzirra::Feed.fetch_and_parse(self.feed_url)
57
53
 
58
- case feedzirra_feed
59
- when Fixnum, nil
60
- create_feed_error_from_exception(feedzirra_feed)
61
- else
62
- feedzirra_feed.sanitize_entries!
54
+ case feedzirra_feed
55
+ when Fixnum, nil
56
+ create_feed_error_from_exception(feedzirra_feed)
57
+ else
58
+ feedzirra_feed.sanitize_entries!
63
59
 
64
- feedzirra_feed.entries.each do |entry|
65
- feed_attributes = entry.attributes.merge(:sport => self.sport)
66
- entries.create!(feed_attributes) unless entries.find_by_checksum(entry.checksum)
67
- end
60
+ feedzirra_feed.entries.each do |entry|
61
+ entry_attributes = build_entry_attributes(entry.attributes)
62
+ entries.create!(entry_attributes) unless entries.find_by_checksum(entry.checksum)
68
63
  end
69
- rescue Exception => ex
70
- create_feed_error_from_exception(ex)
71
64
  end
65
+ rescue Exception => ex
66
+ create_feed_error_from_exception(ex)
72
67
  end
68
+ end
73
69
 
70
+ def build_entry_attributes(attributes)
71
+ attributes
72
+ end
73
+
74
+ module ClassMethods
75
+ def fetch_stale!
76
+ stale.each do |feed|
77
+ feed.fetch!
78
+ end
79
+ end
74
80
  end
75
81
 
76
82
  end
data/lib/feedra.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'feedzirra'
2
+
1
3
  require 'feedra/feed'
2
4
  require 'feedra/entry'
3
5
  require 'feedra/extensions/feedzirra'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: technicalpickles-feedra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Nichols
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-19 00:00:00 -07:00
12
+ date: 2009-05-26 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -42,6 +42,7 @@ files:
42
42
  - generators/feedra/feedra_generator.rb
43
43
  - generators/feedra/templates/entry.rb
44
44
  - generators/feedra/templates/feed.rb
45
+ - generators/feedra/templates/feed_error.rb
45
46
  - generators/feedra/templates/migration.rb
46
47
  - lib/feedra.rb
47
48
  - lib/feedra/entry.rb