pluto 0.9.0 → 0.9.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.
- data/Manifest.txt +1 -1
- data/README.md +9 -9
- data/Rakefile +2 -1
- data/lib/pluto/connecter.rb +30 -4
- data/lib/pluto/models/{action.rb → activity.rb} +2 -6
- data/lib/pluto/refresher.rb +4 -4
- data/lib/pluto/schema.rb +0 -7
- data/lib/pluto/subscriber.rb +7 -5
- data/lib/pluto/version.rb +1 -1
- data/lib/pluto.rb +6 -3
- metadata +33 -22
data/Manifest.txt
CHANGED
data/README.md
CHANGED
@@ -14,12 +14,12 @@ from published web feeds.
|
|
14
14
|
Use the `pluto` command line tool and pass in one or more planet configuration files.
|
15
15
|
Example:
|
16
16
|
|
17
|
-
pluto build ruby.
|
17
|
+
pluto build ruby.ini or
|
18
18
|
pluto b ruby
|
19
19
|
|
20
20
|
This will
|
21
21
|
|
22
|
-
1) fetch all feeds listed in `ruby.
|
22
|
+
1) fetch all feeds listed in `ruby.ini` and
|
23
23
|
|
24
24
|
2) store all entries in a local database, that is, `ruby.db` in your working folder and
|
25
25
|
|
@@ -201,13 +201,13 @@ viennarb:
|
|
201
201
|
feed: http://vienna-rb.at/atom.xml
|
202
202
|
```
|
203
203
|
|
204
|
-
For more samples, see [`nytimes.
|
205
|
-
[`js.
|
206
|
-
[`dart.
|
207
|
-
[`haskell.
|
208
|
-
[`viennarb.
|
209
|
-
[`beer.
|
210
|
-
[`football.
|
204
|
+
For more samples, see [`nytimes.ini`](https://github.com/feedreader/pluto.samples/blob/master/nytimes.ini),
|
205
|
+
[`js.ini`](https://github.com/feedreader/pluto.samples/blob/master/js.ini),
|
206
|
+
[`dart.ini`](https://github.com/feedreader/pluto.samples/blob/master/dart.ini),
|
207
|
+
[`haskell.ini`](https://github.com/feedreader/pluto.samples/blob/master/haskell.ini),
|
208
|
+
[`viennarb.ini`](https://github.com/feedreader/pluto.samples/blob/master/viennarb.ini),
|
209
|
+
[`beer.ini`](https://github.com/feedreader/pluto.samples/blob/master/beer.ini),
|
210
|
+
[`football.ini`](https://github.com/feedreader/pluto.samples/blob/master/football.ini).
|
211
211
|
|
212
212
|
|
213
213
|
## Template Packs
|
data/Rakefile
CHANGED
@@ -22,8 +22,9 @@ Hoe.spec 'pluto' do
|
|
22
22
|
['fetcher', '>= 0.4.1'], # use min. 0.4.1 - added cache/conditional GET support
|
23
23
|
['logutils', '>= 0.6'],
|
24
24
|
['feedutils', '>= 0.4.0'], # use min. 0.4.0 - added rss 2.0 - content:encoded; added fix for rss.item.guid missing; no more auto-summary in atom
|
25
|
-
['props', '>= 1.0.
|
25
|
+
['props', '>= 1.0.3'], # use min. 1.0.2 - added ini support
|
26
26
|
['textutils', '>= 0.7'], # use min. 0.7; moved hy/date helpers to gem; future: add some filters (for include/exclude)
|
27
|
+
['activityutils', '>= 0.1.0' ],
|
27
28
|
['gli', '>= 2.5.6']
|
28
29
|
## ['activerecord', '~> 3.2'], # NB: soft dependency, will include activesupport,etc.
|
29
30
|
]
|
data/lib/pluto/connecter.rb
CHANGED
@@ -24,7 +24,7 @@ class Connecter
|
|
24
24
|
|
25
25
|
def connect!( config = nil )
|
26
26
|
|
27
|
-
if config.nil? # use DATABASE_URL
|
27
|
+
if config.nil? # use/try DATABASE_URL from environment
|
28
28
|
|
29
29
|
logger.debug "ENV['DATBASE_URL'] - >#{ENV['DATABASE_URL']}<"
|
30
30
|
|
@@ -40,7 +40,7 @@ class Connecter
|
|
40
40
|
database: db.path[1..-1],
|
41
41
|
encoding: 'utf8'
|
42
42
|
}
|
43
|
-
else
|
43
|
+
else # assume sqlite3
|
44
44
|
config = {
|
45
45
|
adapter: db.scheme, # sqlite3
|
46
46
|
database: db.path[1..-1] # pluto.db (NB: cut off leading /, thus 1..-1)
|
@@ -51,16 +51,42 @@ class Connecter
|
|
51
51
|
puts 'db settings:'
|
52
52
|
pp config
|
53
53
|
|
54
|
+
### for dbbrowser and other tools add to ActiveRecord
|
55
|
+
|
56
|
+
if ActiveRecord::Base.configurations.nil? # todo/check: can this ever happen? remove?
|
57
|
+
puts "ActiveRecord configurations nil - set to empty hash"
|
58
|
+
ActiveRecord::Base.configurations = {} # make it an empty hash
|
59
|
+
end
|
60
|
+
|
61
|
+
if debug?
|
62
|
+
puts 'ar configurations (before):'
|
63
|
+
pp ActiveRecord::Base.configurations
|
64
|
+
end
|
65
|
+
|
66
|
+
# note: for now always use pluto key for config storage
|
67
|
+
ActiveRecord::Base.configurations['pluto'] = config
|
68
|
+
|
69
|
+
if debug?
|
70
|
+
puts 'ar configurations (after):'
|
71
|
+
pp ActiveRecord::Base.configurations
|
72
|
+
end
|
73
|
+
|
74
|
+
|
54
75
|
# for debugging - disable for production use
|
55
76
|
if debug?
|
56
77
|
ActiveRecord::Base.logger = Logger.new( STDOUT )
|
57
78
|
end
|
58
79
|
|
80
|
+
|
59
81
|
ActiveRecord::Base.establish_connection( config )
|
60
|
-
|
82
|
+
|
61
83
|
# first time? - auto-run db migratation, that is, create db tables
|
84
|
+
unless ActivityDb::Models::Activity.table_exists?
|
85
|
+
ActivityDb::CreateDb.new.up
|
86
|
+
end
|
87
|
+
|
62
88
|
unless Models::Feed.table_exists?
|
63
|
-
|
89
|
+
CreateDb.new.up
|
64
90
|
end
|
65
91
|
end # method connect!
|
66
92
|
|
data/lib/pluto/refresher.rb
CHANGED
@@ -21,8 +21,8 @@ class Refresher
|
|
21
21
|
@worker.debug = true # also pass along worker debug flag if set
|
22
22
|
end
|
23
23
|
|
24
|
-
# -- log update
|
25
|
-
|
24
|
+
# -- log update activity
|
25
|
+
Activity.create!( text: 'update feeds' )
|
26
26
|
|
27
27
|
feeds_fetched = Time.now
|
28
28
|
|
@@ -45,8 +45,8 @@ class Refresher
|
|
45
45
|
@worker.debug = true # also pass along worker debug flag if set
|
46
46
|
end
|
47
47
|
|
48
|
-
# -- log update
|
49
|
-
|
48
|
+
# -- log update activity
|
49
|
+
Activity.create!( text: "update feeds >#{site_key}<" )
|
50
50
|
|
51
51
|
#####
|
52
52
|
# -- update fetched timestamps for all sites
|
data/lib/pluto/schema.rb
CHANGED
@@ -91,13 +91,6 @@ class CreateDb < ActiveRecord::Migration
|
|
91
91
|
## todo: add author/authors, category/categories
|
92
92
|
end
|
93
93
|
|
94
|
-
create_table :actions do |t|
|
95
|
-
t.string :title # e.g. new site, new subscription, update feeds, etc.
|
96
|
-
t.string :object # todo: find better names for action attribs ??
|
97
|
-
t.string :object_type
|
98
|
-
t.timestamps
|
99
|
-
end
|
100
|
-
|
101
94
|
end
|
102
95
|
|
103
96
|
def down
|
data/lib/pluto/subscriber.rb
CHANGED
@@ -21,7 +21,9 @@ class Subscriber
|
|
21
21
|
site_attribs = {
|
22
22
|
title: config['title'] || config['name'] # support either title or name
|
23
23
|
}
|
24
|
-
|
24
|
+
|
25
|
+
logger.debug "site_attribs: #{site_attribs.inspect}"
|
26
|
+
|
25
27
|
site_rec = Site.find_by_key( site_key )
|
26
28
|
if site_rec.nil?
|
27
29
|
site_rec = Site.new
|
@@ -29,12 +31,12 @@ class Subscriber
|
|
29
31
|
|
30
32
|
## use object_id: site.id and object_type: Site
|
31
33
|
## change - model/table/schema!!!
|
32
|
-
|
34
|
+
Activity.create!( text: "new site >#{site_key}< - #{site_attribs[ :title ]}" )
|
33
35
|
end
|
34
36
|
site_rec.update_attributes!( site_attribs )
|
35
37
|
|
36
|
-
# -- log update
|
37
|
-
|
38
|
+
# -- log update activity
|
39
|
+
Activity.create!( text: "update subscriptions >#{site_key}<" )
|
38
40
|
|
39
41
|
# clean out subscriptions and add again
|
40
42
|
logger.debug "before site.subscriptions.delete_all - count: #{site_rec.subscriptions.count}"
|
@@ -81,7 +83,7 @@ class Subscriber
|
|
81
83
|
## use object_id: feed.id and object_type: Feed
|
82
84
|
## change - model/table/schema!!!
|
83
85
|
## todo: add parent_action_id - why? why not?
|
84
|
-
|
86
|
+
Activity.create!( text: "new feed >#{feed_key}< - #{feed_attribs[ :title ]}" )
|
85
87
|
end
|
86
88
|
|
87
89
|
feed_rec.update_attributes!( feed_attribs )
|
data/lib/pluto/version.rb
CHANGED
data/lib/pluto.rb
CHANGED
@@ -27,6 +27,7 @@ require 'pakman' # template pack manager
|
|
27
27
|
require 'feedutils'
|
28
28
|
require 'textutils'
|
29
29
|
|
30
|
+
require 'activityutils'
|
30
31
|
|
31
32
|
# our own code
|
32
33
|
|
@@ -34,7 +35,7 @@ require 'pluto/version' # let version always get first
|
|
34
35
|
require 'pluto/schema'
|
35
36
|
require 'pluto/activerecord'
|
36
37
|
|
37
|
-
require 'pluto/models/
|
38
|
+
require 'pluto/models/activity'
|
38
39
|
require 'pluto/models/feed'
|
39
40
|
require 'pluto/models/item'
|
40
41
|
require 'pluto/models/site'
|
@@ -54,10 +55,12 @@ require 'pluto/formatter'
|
|
54
55
|
|
55
56
|
require 'pluto/cli/opts' ## fix: make sure fetcher/updater etc. do not depend on cli/opts
|
56
57
|
|
58
|
+
|
57
59
|
module Pluto
|
58
60
|
|
59
61
|
def self.banner
|
60
|
-
|
62
|
+
### todo: add RUBY_PATCHLEVEL or RUBY_PATCH_LEVEL e.g. -p124
|
63
|
+
"pluto/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
61
64
|
end
|
62
65
|
|
63
66
|
def self.generator # convenience alias for banner (matches HTML generator meta tag)
|
@@ -133,5 +136,5 @@ end
|
|
133
136
|
if __FILE__ == $0
|
134
137
|
Pluto.main
|
135
138
|
else
|
136
|
-
puts Pluto.banner
|
139
|
+
puts Pluto.banner # say hello
|
137
140
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pluto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-11-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pakman
|
16
|
-
requirement: &
|
16
|
+
requirement: &81472690 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.5'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *81472690
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: fetcher
|
27
|
-
requirement: &
|
27
|
+
requirement: &81472130 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.4.1
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *81472130
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: logutils
|
38
|
-
requirement: &
|
38
|
+
requirement: &81494060 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0.6'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *81494060
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: feedutils
|
49
|
-
requirement: &
|
49
|
+
requirement: &81493690 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,21 +54,21 @@ dependencies:
|
|
54
54
|
version: 0.4.0
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *81493690
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: props
|
60
|
-
requirement: &
|
60
|
+
requirement: &81493150 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: 1.0.
|
65
|
+
version: 1.0.3
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *81493150
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: textutils
|
71
|
-
requirement: &
|
71
|
+
requirement: &81492890 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,21 @@ dependencies:
|
|
76
76
|
version: '0.7'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *81492890
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: activityutils
|
82
|
+
requirement: &81492660 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 0.1.0
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *81492660
|
80
91
|
- !ruby/object:Gem::Dependency
|
81
92
|
name: gli
|
82
|
-
requirement: &
|
93
|
+
requirement: &81492380 !ruby/object:Gem::Requirement
|
83
94
|
none: false
|
84
95
|
requirements:
|
85
96
|
- - ! '>='
|
@@ -87,10 +98,10 @@ dependencies:
|
|
87
98
|
version: 2.5.6
|
88
99
|
type: :runtime
|
89
100
|
prerelease: false
|
90
|
-
version_requirements: *
|
101
|
+
version_requirements: *81492380
|
91
102
|
- !ruby/object:Gem::Dependency
|
92
103
|
name: rdoc
|
93
|
-
requirement: &
|
104
|
+
requirement: &81492080 !ruby/object:Gem::Requirement
|
94
105
|
none: false
|
95
106
|
requirements:
|
96
107
|
- - ~>
|
@@ -98,10 +109,10 @@ dependencies:
|
|
98
109
|
version: '3.10'
|
99
110
|
type: :development
|
100
111
|
prerelease: false
|
101
|
-
version_requirements: *
|
112
|
+
version_requirements: *81492080
|
102
113
|
- !ruby/object:Gem::Dependency
|
103
114
|
name: hoe
|
104
|
-
requirement: &
|
115
|
+
requirement: &81491610 !ruby/object:Gem::Requirement
|
105
116
|
none: false
|
106
117
|
requirements:
|
107
118
|
- - ~>
|
@@ -109,7 +120,7 @@ dependencies:
|
|
109
120
|
version: '3.3'
|
110
121
|
type: :development
|
111
122
|
prerelease: false
|
112
|
-
version_requirements: *
|
123
|
+
version_requirements: *81491610
|
113
124
|
description: pluto - Another Planet Generator (Lets You Build Web Pages from Published
|
114
125
|
Web Feeds)
|
115
126
|
email: feedreader@googlegroups.com
|
@@ -135,7 +146,7 @@ files:
|
|
135
146
|
- lib/pluto/installer.rb
|
136
147
|
- lib/pluto/lister.rb
|
137
148
|
- lib/pluto/manifest_helpers.rb
|
138
|
-
- lib/pluto/models/
|
149
|
+
- lib/pluto/models/activity.rb
|
139
150
|
- lib/pluto/models/feed.rb
|
140
151
|
- lib/pluto/models/item.rb
|
141
152
|
- lib/pluto/models/site.rb
|