pluto 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown DELETED
@@ -1,107 +0,0 @@
1
- # pluto
2
-
3
- Another Planet Generator in Ruby - Lets You Build Web Pages
4
- from Published Web Feeds
5
-
6
- * home :: [github.com/geraldb/pluto](https://github.com/geraldb/pluto)
7
- * bugs :: [github.com/geraldb/pluto/issues](https://github.com/geraldb/pluto/issues)
8
- * gem :: [rubygems.org/gems/pluto](https://rubygems.org/gems/pluto)
9
- * rdoc :: [rubydoc.info/gems/pluto](http://rubydoc.info/gems/pluto)
10
-
11
-
12
- ## Usage
13
-
14
- Use the `pluto` command line tool and pass in one or more planet configuration files.
15
- Example:
16
-
17
- pluto ruby.yml
18
-
19
- This will
20
-
21
- 1) fetch all feeds listed in `ruby.yml` and
22
-
23
- 2) store all entries in a local database, that is, `ruby.sqlite` in your working folder and
24
-
25
- 3) generate a planet web page, that is, `ruby.html` using the builtin [`blank` template](https://github.com/geraldb/pluto/blob/master/templates/blank.html.erb) in your working folder using all feed entries from the local database.
26
-
27
- Open up `ruby.html` to see your planet web page. Voila!
28
-
29
-
30
- ### Command Line Tool
31
-
32
- ~~~
33
- pluto - Lets you build web pages from published web feeds.
34
-
35
- Usage: pluto [options] FILE
36
- -t, --template MANIFEST Template Manifest (default is blank)
37
- -c, --config PATH Configuration Path (default is ~/.pluto)
38
- -o, --output PATH Output Path (default is .)
39
- -v, --version Show version
40
- --verbose Show debug trace
41
- -h, --help Show this message
42
- ~~~
43
-
44
-
45
- ### Planet Configuration Sample
46
-
47
- `ruby.yml`:
48
-
49
- ```
50
- title: Planet Ruby
51
-
52
- feeds:
53
- - rubyflow
54
- - rubysource
55
- - edgerails
56
- - rubyonrails
57
- - railstutorial
58
-
59
- rubyflow:
60
- title: Ruby Flow
61
- feed_url: http://feeds.feedburner.com/Rubyflow?format=xml
62
- url: http://rubyflow.com
63
-
64
- rubysource:
65
- title: Ruby Source
66
- feed_url: http://rubysource.com/feed
67
- url: http://rubysource.com
68
-
69
- edgerails:
70
- title: What's new in Edge Rails?
71
- feed_url: http://www.edgerails.info/blog.atom
72
- url: http://www.edgerails.info
73
-
74
- rubyonrails:
75
- title: Ruby on Rails Blog
76
- feed_url: http://weblog.rubyonrails.org/feed/atom.xml
77
- url: http://weblog.rubyonrails.org
78
-
79
- railstutorial:
80
- title: Rails Tutorial News
81
- feed_url: http://feeds.feedburner.com/railstutorial?format=xml
82
- url: http://news.railstutorial.org
83
- ```
84
-
85
- For more samples, see [`nytimes.yml`](https://github.com/geraldb/pluto/blob/master/samples/nytimes.yml),
86
- [`js.yml`](https://github.com/geraldb/pluto/blob/master/samples/js.yml),
87
- [`dart.yml`](https://github.com/geraldb/pluto/blob/master/samples/dart.yml).
88
-
89
-
90
- ## Install
91
-
92
- Just install the gem:
93
-
94
- $ gem install pluto
95
-
96
-
97
- ## Alternatives
98
-
99
- planet.rb by Akira Yamada [(Site)](http://planet.rubyforge.org)
100
-
101
- Planet.rb by Pablo Astigarraga [(Site)](https://github.com/pote/planet.rb) - Used with Jekyll/Octopress Site Generator
102
-
103
-
104
- ## License
105
-
106
- The `pluto` scripts are dedicated to the public domain.
107
- Use it as you please with no restrictions whatsoever.
@@ -1,96 +0,0 @@
1
-
2
- module Pluto
3
-
4
- class Runner
5
-
6
- include LogUtils::Logging
7
-
8
- include Models # e.g. Feed,Item,Site,etc.
9
-
10
- def initialize
11
- @opts = Opts.new
12
- end
13
-
14
- attr_reader :opts
15
-
16
- def run( args )
17
- opt=OptionParser.new do |cmd|
18
-
19
- cmd.banner = "Usage: pluto [options] FILE"
20
-
21
- ## fix/todo: remove .txt from default manifest
22
-
23
- cmd.on( '-t', '--template MANIFEST', "Template Manifest (default is #{opts.manifest})" ) do |manifest|
24
- opts.manifest = manifest
25
- end
26
-
27
- cmd.on( '-c', '--config PATH', "Configuration Path (default is #{opts.config_path})" ) do |path|
28
- opts.config_path = path
29
- end
30
-
31
- cmd.on( '-o', '--output PATH', "Output Path (default is #{opts.output_path})" ) { |path| opts.output_path = path }
32
-
33
- cmd.on( '-v', '--version', "Show version" ) do
34
- puts Pluto.banner
35
- exit
36
- end
37
-
38
- cmd.on( "--verbose", "Show debug trace" ) do
39
- LogUtils::Logger.root.level = :debug
40
- opts.verbose = true
41
- end
42
-
43
- ## todo: add/allow -? too
44
- cmd.on_tail( "-h", "--help", "Show this message" ) do
45
- puts <<EOS
46
-
47
- pluto - Lets you build web pages from published web feeds.
48
-
49
- #{cmd.help}
50
-
51
- Examples:
52
- pluto ruby
53
-
54
- Further information:
55
- https://github.com/geraldb/pluto
56
-
57
- EOS
58
- exit
59
- end
60
- end
61
-
62
- opt.parse!( args )
63
-
64
- puts Pluto.banner
65
-
66
- args.each do |arg|
67
-
68
- name = File.basename( arg, '.*' )
69
-
70
- db_config = {
71
- adapter: 'sqlite3',
72
- database: "#{opts.output_path}/#{name}.db"
73
- }
74
-
75
- Connecter.new.connect!( db_config )
76
-
77
- config_path = arg.dup # add .yml file extension if missing (for convenience)
78
- config_path << '.yml' unless config_path.ends_with?( '.yml' )
79
-
80
- config = YAML.load_file( config_path )
81
-
82
- puts "dump >#{config_path}<:"
83
- pp config
84
-
85
- Fetcher.new( opts, config ).run
86
- Formatter.new( opts, config ).run( name )
87
-
88
- end
89
-
90
- puts 'Done.'
91
-
92
- end # method run
93
-
94
-
95
- end # class Runner
96
- end # module Pakman
data/lib/pluto/server.rb DELETED
@@ -1,108 +0,0 @@
1
- ######
2
- # NB: use rackup to startup Sinatra service (see config.ru)
3
- #
4
- # e.g. config.ru:
5
- # require './boot'
6
- # run Pluto::Server
7
-
8
-
9
- # 3rd party libs/gems
10
-
11
- require 'sinatra/base'
12
-
13
-
14
- module Pluto
15
-
16
- class Server < Sinatra::Base
17
-
18
- def self.banner
19
- "pluto-service #{Pluto::VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] on Sinatra/#{Sinatra::VERSION} (#{ENV['RACK_ENV']})"
20
- end
21
-
22
- PUBLIC_FOLDER = "#{Pluto.root}/lib/pluto/server/public"
23
- VIEWS_FOLDER = "#{Pluto.root}/lib/pluto/server/views"
24
-
25
- puts "[boot] pluto-service - setting public folder to: #{PUBLIC_FOLDER}"
26
- puts "[boot] pluto-service - setting views folder to: #{VIEWS_FOLDER}"
27
-
28
- set :public_folder, PUBLIC_FOLDER # set up the static dir (with images/js/css inside)
29
- set :views, VIEWS_FOLDER # set up the views dir
30
-
31
- set :static, true # set up static file routing
32
-
33
-
34
- #######################
35
- # Models
36
-
37
- include Models # e.g. Feed, Item, Site, etc.
38
-
39
- #################
40
- # Helpers
41
-
42
- def path_prefix
43
- request.env['SCRIPT_NAME']
44
- end
45
-
46
- def sites_path
47
- "#{path_prefix}/sites"
48
- end
49
-
50
- def feeds_path
51
- "#{path_prefix}/feeds"
52
- end
53
-
54
- def items_path
55
- "#{path_prefix}/items"
56
- end
57
-
58
- def root_path
59
- "#{path_prefix}/"
60
- end
61
-
62
- def root_url
63
- url( '/' )
64
- end
65
-
66
-
67
- def link_to( text, url, opts={} )
68
- attributes = ""
69
- opts.each do |key,value|
70
- attributes << "#{key}='#{value}' "
71
- end
72
- "<a href='#{url}' #{attributes}>#{text}</a>"
73
- end
74
-
75
-
76
- ##############################################
77
- # Controllers / Routing / Request Handlers
78
-
79
- get '/' do
80
- redirect( sites_path )
81
- end
82
-
83
- get '/sites' do
84
- erb :sites # needed or default fallthrough possible ???
85
- end
86
-
87
- get '/feeds' do
88
- erb :feeds # needed or default fallthrough possible ???
89
- end
90
-
91
- get '/items' do
92
- erb :items # needed or default fallthrough possible ???
93
- end
94
-
95
- # todo/fix: make a generic route for erb w /regex
96
- # to auto-allow all routes not just / w/ site data
97
-
98
- get '/d*' do
99
- erb :debug
100
- end
101
-
102
-
103
- end # class Server
104
- end # module Pluto
105
-
106
-
107
- # say hello
108
- puts Pluto::Server.banner
@@ -1,79 +0,0 @@
1
- /* fix: use sass w/ variables */
2
- body {
3
- font-family: sans-serif;
4
- background-color: #F4F4F4;
5
- color: #333333;
6
- }
7
-
8
- a, a:visited {
9
- text-decoration: none;
10
- color: maroon;
11
- }
12
-
13
- a:hover {
14
- text-decoration: underline;
15
- color: #1E68A6;
16
- background-color: yellow;
17
- }
18
-
19
- .item {
20
- background-color: white;
21
- border: 1px solid #9E9E9E;
22
- padding: 0px 15px 15px 15px;
23
- margin-bottom: 12px;
24
- }
25
-
26
- .item_title {
27
- margin-top: 0;
28
- font-size: 16px;
29
- }
30
-
31
- .feed_title {
32
- margin-bottom: 5px;
33
- font-size: 12px;
34
- }
35
-
36
- .colright {
37
- margin-left: 20px;
38
- }
39
-
40
- ul.subscriptions {
41
- list-style: none;
42
- margin-left: 0;
43
- padding-left: 0;
44
- }
45
-
46
- /* fix: use .small instead */
47
- .smaller {
48
- font-size: 12px;
49
- /* color: #666666; */ /* lighter gray than text gray */
50
- }
51
-
52
- .item_content {
53
- font-size: 14px;
54
- }
55
-
56
-
57
- /** key, count styles ***********/
58
-
59
- .key, .count
60
- {
61
- font-size: 12px;
62
- color: grey;
63
- }
64
-
65
-
66
-
67
- /** version block **********/
68
-
69
- .version {
70
- text-align: center;
71
- margin-top: 10px;
72
- color: grey; }
73
- .version a, .version span {
74
- font-size: 12px;
75
- color: grey; }
76
-
77
- /***************************/
78
-
79
- div.feedflare { display: none; }
@@ -1,16 +0,0 @@
1
- <h3>Request</h3>
2
-
3
- <pre>
4
- request.scheme: <%= request.scheme %>
5
- request.script_name: <%= request.script_name %>
6
- request.path_info: <%= request.path_info %>
7
- request.port: <%= request.port %>
8
- request.request_method: <%= request.request_method %>
9
- request.query_string: <%= request.query_string %>
10
- request.host: <%= request.host %>
11
- request.referrer: <%= request.referrer %>
12
- request.user_agent: <%= request.user_agent %>
13
- request.url: <%= request.url %>
14
- request.path: <%= request.path %>
15
- request.ip: <%= request.ip %>
16
- </pre>
@@ -1,5 +0,0 @@
1
- <div class='version'>
2
- <a href="https://github.com/geraldb/pluto">pluto/<%= Pluto::VERSION %></a> -
3
- <span>Ruby/<%= "#{RUBY_VERSION} (#{RUBY_RELEASE_DATE}/#{RUBY_PLATFORM})" %> on</span>
4
- <span>Sinatra/<%= Sinatra::VERSION %> (<%= ENV['RACK_ENV'] %>)</span>
5
- </div>
@@ -1,14 +0,0 @@
1
-
2
-
3
- <h3>Named Route Helpers</h3>
4
-
5
- <pre>
6
- root_url: <%= root_url %>
7
- root_path: <%= root_path %>
8
- sites_path: <%= sites_path %>
9
- feeds_path: <%= feeds_path %>
10
- items_path: <%= items_path %>
11
- </pre>
12
-
13
- <%= erb :'_debug' %>
14
-
@@ -1,13 +0,0 @@
1
-
2
- <h2><%= Feed.count %> Feeds</h2>
3
-
4
- <table>
5
- <% Feed.all.each do |feed| %>
6
- <tr>
7
- <td class='key'><%= feed.key %></td>
8
- <td><%= feed.title %>
9
- <span class='count'>(<%= feed.items.count %>)</span>
10
- </td>
11
- </tr>
12
- <% end %>
13
- </table>