stratify-instapaper 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +94 -0
- data/LICENSE +20 -0
- data/README.md +21 -0
- data/Rakefile +10 -0
- data/app/assets/images/instapaper-icon-16.png +0 -0
- data/app/assets/images/instapaper-icon-24.png +0 -0
- data/lib/stratify-instapaper.rb +6 -0
- data/lib/stratify-instapaper/activity.rb +28 -0
- data/lib/stratify-instapaper/collector.rb +29 -0
- data/lib/stratify-instapaper/engine.rb +9 -0
- data/lib/stratify-instapaper/presenter.rb +34 -0
- data/lib/stratify-instapaper/query.rb +34 -0
- data/lib/stratify-instapaper/version.rb +5 -0
- data/spec/mongoid.yml +3 -0
- data/spec/spec_helper.rb +38 -0
- data/spec/stratify-instapaper/activity_spec.rb +10 -0
- data/spec/stratify-instapaper/integration_spec.rb +23 -0
- data/spec/stratify-instapaper/presenter_spec.rb +41 -0
- data/spec/support/vcr_setup.rb +7 -0
- data/stratify-instapaper.gemspec +30 -0
- data/vcr_cassettes/instapaper.yml +29 -0
- metadata +159 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use ruby-1.9.2-p180@stratify
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
stratify-instapaper (0.1.0)
|
5
|
+
railties (~> 3.1.0.rc1)
|
6
|
+
stratify-base (~> 0.1.0)
|
7
|
+
thoughtafter-simple-rss (~> 1.2.3)
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: http://rubygems.org/
|
11
|
+
specs:
|
12
|
+
actionpack (3.1.0.rc1)
|
13
|
+
activemodel (= 3.1.0.rc1)
|
14
|
+
activesupport (= 3.1.0.rc1)
|
15
|
+
builder (~> 3.0.0)
|
16
|
+
erubis (~> 2.7.0)
|
17
|
+
i18n (~> 0.6.0beta1)
|
18
|
+
rack (~> 1.3.0.beta2)
|
19
|
+
rack-cache (~> 1.0.1)
|
20
|
+
rack-mount (~> 0.8.1)
|
21
|
+
rack-test (~> 0.6.0)
|
22
|
+
sprockets (~> 2.0.0.beta.5)
|
23
|
+
tzinfo (~> 0.3.27)
|
24
|
+
activemodel (3.1.0.rc1)
|
25
|
+
activesupport (= 3.1.0.rc1)
|
26
|
+
bcrypt-ruby (~> 2.1.4)
|
27
|
+
builder (~> 3.0.0)
|
28
|
+
i18n (~> 0.6.0beta1)
|
29
|
+
activesupport (3.1.0.rc1)
|
30
|
+
multi_json (~> 1.0)
|
31
|
+
bcrypt-ruby (2.1.4)
|
32
|
+
bson (1.3.1)
|
33
|
+
bson_ext (1.3.1)
|
34
|
+
builder (3.0.0)
|
35
|
+
database_cleaner (0.6.7)
|
36
|
+
diff-lcs (1.1.2)
|
37
|
+
erubis (2.7.0)
|
38
|
+
fakeweb (1.3.0)
|
39
|
+
hike (1.0.0)
|
40
|
+
i18n (0.6.0)
|
41
|
+
mongo (1.3.1)
|
42
|
+
bson (>= 1.3.1)
|
43
|
+
mongoid (2.0.2)
|
44
|
+
activemodel (~> 3.0)
|
45
|
+
mongo (~> 1.3)
|
46
|
+
tzinfo (~> 0.3.22)
|
47
|
+
multi_json (1.0.3)
|
48
|
+
rack (1.3.0)
|
49
|
+
rack-cache (1.0.2)
|
50
|
+
rack (>= 0.4)
|
51
|
+
rack-mount (0.8.1)
|
52
|
+
rack (>= 1.0.0)
|
53
|
+
rack-ssl (1.3.2)
|
54
|
+
rack
|
55
|
+
rack-test (0.6.0)
|
56
|
+
rack (>= 1.0)
|
57
|
+
railties (3.1.0.rc1)
|
58
|
+
actionpack (= 3.1.0.rc1)
|
59
|
+
activesupport (= 3.1.0.rc1)
|
60
|
+
rack-ssl (~> 1.3.2)
|
61
|
+
rake (>= 0.8.7)
|
62
|
+
thor (~> 0.14.6)
|
63
|
+
rake (0.9.1)
|
64
|
+
rspec (2.6.0)
|
65
|
+
rspec-core (~> 2.6.0)
|
66
|
+
rspec-expectations (~> 2.6.0)
|
67
|
+
rspec-mocks (~> 2.6.0)
|
68
|
+
rspec-core (2.6.3)
|
69
|
+
rspec-expectations (2.6.0)
|
70
|
+
diff-lcs (~> 1.1.2)
|
71
|
+
rspec-mocks (2.6.0)
|
72
|
+
sprockets (2.0.0.beta.10)
|
73
|
+
hike (~> 1.0)
|
74
|
+
rack (~> 1.0)
|
75
|
+
tilt (!= 1.3.0, ~> 1.1)
|
76
|
+
stratify-base (0.1.0)
|
77
|
+
bson_ext (~> 1.3.1)
|
78
|
+
mongoid (~> 2.0.2)
|
79
|
+
tilt (~> 1.3.2)
|
80
|
+
thor (0.14.6)
|
81
|
+
thoughtafter-simple-rss (1.2.3.3)
|
82
|
+
tilt (1.3.2)
|
83
|
+
tzinfo (0.3.27)
|
84
|
+
vcr (1.10.0)
|
85
|
+
|
86
|
+
PLATFORMS
|
87
|
+
ruby
|
88
|
+
|
89
|
+
DEPENDENCIES
|
90
|
+
database_cleaner (~> 0.6.7)
|
91
|
+
fakeweb (~> 1.3.0)
|
92
|
+
rspec (~> 2.6.0)
|
93
|
+
stratify-instapaper!
|
94
|
+
vcr (~> 1.10.0)
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Jason Rudolph (http://jasonrudolph.com)
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
'Software'), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
17
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
18
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
19
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
20
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# stratify-instapaper
|
2
|
+
|
3
|
+
## Dependencies
|
4
|
+
|
5
|
+
Stratify is developed and tested with the following dependencies.
|
6
|
+
|
7
|
+
* Ruby 1.9.2 (See `.rvmrc` for the specific version.)
|
8
|
+
* MongoDB 1.8
|
9
|
+
|
10
|
+
## Development
|
11
|
+
|
12
|
+
To get set up for development on stratify-instapaper, clone the repo, and ...
|
13
|
+
|
14
|
+
cd stratify/stratify-instapaper
|
15
|
+
gem install bundler
|
16
|
+
bundle
|
17
|
+
rake
|
18
|
+
|
19
|
+
## License
|
20
|
+
|
21
|
+
Copyright 2011 Jason Rudolph ([jasonrudolph.com](http://jasonrudolph.com)). Released under the MIT license. See the LICENSE file for further details.
|
data/Rakefile
ADDED
Binary file
|
Binary file
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'stratify-instapaper/presenter'
|
2
|
+
|
3
|
+
module Stratify
|
4
|
+
module Instapaper
|
5
|
+
class Activity < Stratify::Activity
|
6
|
+
field :url
|
7
|
+
field :title
|
8
|
+
field :description
|
9
|
+
|
10
|
+
natural_key :url, :created_at
|
11
|
+
|
12
|
+
validates_presence_of :url
|
13
|
+
|
14
|
+
template %q[
|
15
|
+
<p class="summary"><a href="<%= url %>"><%= summary %></a></p>
|
16
|
+
<p class="details"><%= details %></p>
|
17
|
+
]
|
18
|
+
|
19
|
+
def permalink
|
20
|
+
url
|
21
|
+
end
|
22
|
+
|
23
|
+
def presenter
|
24
|
+
Stratify::Instapaper::Presenter.new(self)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'stratify-instapaper/query'
|
2
|
+
|
3
|
+
module Stratify
|
4
|
+
module Instapaper
|
5
|
+
class Collector < Stratify::Collector
|
6
|
+
source "Instapaper"
|
7
|
+
|
8
|
+
configuration_fields :rss_url => {:type => :string, :label => "RSS URL"}
|
9
|
+
|
10
|
+
configuration_instructions %q[
|
11
|
+
<p>To collect the articles that you've read on Instapaper, the Instapaper collector needs the RSS feed for your archived articles.</p>
|
12
|
+
|
13
|
+
<p>To find the URL for your personal RSS feed, go to the <a href="http://www.instapaper.com/archive" target="_blank">archive for your Instapaper account</a>. Look for the RSS feed link on that page. (You should find it toward the bottom right of the page.) The URL will look something like this:</p>
|
14
|
+
|
15
|
+
<p><code>http://www.instapaper.com/archive/rss/123456/0123456789abcdefghijklmnopq</code></p>
|
16
|
+
|
17
|
+
<p>Grab the RSS feed URL for your account and paste it into the field below.</p>
|
18
|
+
]
|
19
|
+
|
20
|
+
def activities
|
21
|
+
query.activities
|
22
|
+
end
|
23
|
+
|
24
|
+
def query
|
25
|
+
Stratify::Instapaper::Query.new(rss_url)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Stratify
|
2
|
+
module Instapaper
|
3
|
+
class Presenter
|
4
|
+
delegate :url, :title, :description, :to => :@activity
|
5
|
+
|
6
|
+
def initialize(activity)
|
7
|
+
@activity = activity
|
8
|
+
end
|
9
|
+
|
10
|
+
def summary
|
11
|
+
title.blank? ? url : title
|
12
|
+
end
|
13
|
+
|
14
|
+
def details
|
15
|
+
join_fields_with_separator domain, description
|
16
|
+
end
|
17
|
+
|
18
|
+
def domain
|
19
|
+
URI.parse(url).host
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def separator
|
25
|
+
"\u2022"
|
26
|
+
end
|
27
|
+
|
28
|
+
def join_fields_with_separator(*fields)
|
29
|
+
fields.reject(&:blank?).join(" #{separator} ")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'simple-rss'
|
3
|
+
|
4
|
+
module Stratify
|
5
|
+
module Instapaper
|
6
|
+
class Query
|
7
|
+
attr_reader :rss_url
|
8
|
+
|
9
|
+
def initialize(rss_url)
|
10
|
+
@rss_url = rss_url
|
11
|
+
end
|
12
|
+
|
13
|
+
def activities
|
14
|
+
raw_activities.map {|raw_activity| build_activity_from_raw_data(raw_activity)}
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def raw_activities
|
20
|
+
rss = SimpleRSS.parse open(rss_url)
|
21
|
+
rss.items
|
22
|
+
end
|
23
|
+
|
24
|
+
def build_activity_from_raw_data(raw_activity)
|
25
|
+
Stratify::Instapaper::Activity.new({
|
26
|
+
:url => raw_activity.link,
|
27
|
+
:title => raw_activity.title,
|
28
|
+
:description => raw_activity.description,
|
29
|
+
:created_at => raw_activity.pubDate
|
30
|
+
})
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/spec/mongoid.yml
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
require 'rspec'
|
4
|
+
require 'stratify-instapaper'
|
5
|
+
|
6
|
+
# Requires supporting files with custom matchers and macros, etc,
|
7
|
+
# in ./support/ and its subdirectories.
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
|
+
|
10
|
+
require 'database_cleaner'
|
11
|
+
|
12
|
+
RSpec.configure do |config|
|
13
|
+
config.color_enabled = true
|
14
|
+
config.formatter = :progress
|
15
|
+
|
16
|
+
# Configure RSpec to run focused specs, and also respect the alias 'fit' for focused specs
|
17
|
+
config.filter_run :focused => true
|
18
|
+
config.run_all_when_everything_filtered = true
|
19
|
+
config.alias_example_to :fit, :focused => true
|
20
|
+
|
21
|
+
config.extend VCR::RSpec::Macros
|
22
|
+
|
23
|
+
# Configure RSpec to truncate the database before any spec tagged with ":database => true"
|
24
|
+
DatabaseCleaner.strategy = :truncation
|
25
|
+
DatabaseCleaner.orm = "mongoid"
|
26
|
+
config.before(:each, :database => true) do
|
27
|
+
DatabaseCleaner.clean
|
28
|
+
end
|
29
|
+
|
30
|
+
config.before(:suite) do
|
31
|
+
initialize_mongoid_configuration
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def initialize_mongoid_configuration
|
36
|
+
mongoid_config = YAML::load_file(File.join(File.dirname(__FILE__), "mongoid.yml"))
|
37
|
+
Mongoid.from_hash(mongoid_config)
|
38
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Stratify::Instapaper::Activity do
|
4
|
+
describe "#permalink" do
|
5
|
+
it "returns the URL of the Instapaper item" do
|
6
|
+
item = Stratify::Instapaper::Activity.new(:url => "http://google.com")
|
7
|
+
item.permalink.should == "http://google.com"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "stratify-instpaper" do
|
4
|
+
use_vcr_cassette "instapaper"
|
5
|
+
|
6
|
+
it "collects and stores data from Instapaper", :database => true do
|
7
|
+
collector = Stratify::Instapaper::Collector.create!(:rss_url => "http://www.instapaper.com/archive/rss/012345/6789abcdefghijklmnopqrstuvw")
|
8
|
+
collector.run
|
9
|
+
|
10
|
+
Stratify::Instapaper::Activity.where(
|
11
|
+
:title => "Gowalla Begins Connecting The Dots On Travel",
|
12
|
+
:url => "http://techcrunch.com/2011/01/28/gowalla-travel/",
|
13
|
+
:created_at => Time.parse("Sun, 06 Feb 2011 12:28:54 EST")
|
14
|
+
).should exist
|
15
|
+
|
16
|
+
Stratify::Instapaper::Activity.where(
|
17
|
+
:title => "A List Apart: Articles: Kick Ass Kickoff Meetings",
|
18
|
+
:url => "http://www.alistapart.com/articles/kick-ass-kickoff-meetings/",
|
19
|
+
:description => "jessmartin: Project kickoff meetings need to be well designed: http://bit.ly/duPjmZ Also: http://bit.ly/gE480U",
|
20
|
+
:created_at => Time.parse("Mon, 07 Feb 2011 22:51:18 EST")
|
21
|
+
).should exist
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Stratify::Instapaper::Presenter do
|
4
|
+
describe "#domain" do
|
5
|
+
it "returns just the domain of the Instapaper item's URL" do
|
6
|
+
activity = Stratify::Instapaper::Activity.new(:url => "http://googledocs.blogspot.com/2011/02/12-new-file-formats-in-google-docs.html")
|
7
|
+
presenter = Stratify::Instapaper::Presenter.new(activity)
|
8
|
+
presenter.domain.should == "googledocs.blogspot.com"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "summary" do
|
13
|
+
it "returns the Instapaper item's title when a title is present" do
|
14
|
+
activity = Stratify::Instapaper::Activity.new(:title => "some title")
|
15
|
+
presenter = Stratify::Instapaper::Presenter.new(activity)
|
16
|
+
presenter.summary.should == "some title"
|
17
|
+
end
|
18
|
+
|
19
|
+
it "returns the Instapaper item's URL when the item does not have a title" do
|
20
|
+
activity = Stratify::Instapaper::Activity.new(:title => "", :url => "http://example.com")
|
21
|
+
presenter = Stratify::Instapaper::Presenter.new(activity)
|
22
|
+
presenter.summary.should == "http://example.com"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "details" do
|
27
|
+
it "provides the Instapaper item's domain and description" do
|
28
|
+
activity = Stratify::Instapaper::Activity.new(:url => "http://nex-3.com/posts/104-haml-and-sass-3-1-are-released",
|
29
|
+
:description => "dhh: Great new stuff for Sass 3.1")
|
30
|
+
presenter = Stratify::Instapaper::Presenter.new(activity)
|
31
|
+
presenter.details.should == "nex-3.com \u2022 dhh: Great new stuff for Sass 3.1"
|
32
|
+
end
|
33
|
+
|
34
|
+
it "provides only the Instapaper item's domain when the description is blank" do
|
35
|
+
activity = Stratify::Instapaper::Activity.new(:url => "http://nex-3.com/posts/104-haml-and-sass-3-1-are-released",
|
36
|
+
:description => "")
|
37
|
+
presenter = Stratify::Instapaper::Presenter.new(activity)
|
38
|
+
presenter.details.should == "nex-3.com"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "stratify-instapaper/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "stratify-instapaper"
|
7
|
+
s.version = Stratify::Instapaper::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Jason Rudolph"]
|
10
|
+
s.email = ["jason@jasonrudolph.com"]
|
11
|
+
s.homepage = "http://github.com/jasonrudolph/stratify/"
|
12
|
+
s.summary = "Instapaper plugin for Stratify"
|
13
|
+
s.description = s.summary
|
14
|
+
|
15
|
+
s.rubyforge_project = "stratify-instapaper"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_runtime_dependency "railties", "~> 3.1.0.rc1"
|
23
|
+
s.add_runtime_dependency "stratify-base", "~> 0.1.0"
|
24
|
+
s.add_runtime_dependency "thoughtafter-simple-rss", "~> 1.2.3"
|
25
|
+
|
26
|
+
s.add_development_dependency "database_cleaner", "~> 0.6.7"
|
27
|
+
s.add_development_dependency "fakeweb", "~> 1.3.0"
|
28
|
+
s.add_development_dependency "rspec", "~> 2.6.0"
|
29
|
+
s.add_development_dependency "vcr", "~> 1.10.0"
|
30
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://www.instapaper.com:80/archive/rss/012345/6789abcdefghijklmnopqrstuvw
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
response: !ruby/struct:VCR::Response
|
9
|
+
status: !ruby/struct:VCR::ResponseStatus
|
10
|
+
code: 200
|
11
|
+
message: OK
|
12
|
+
headers:
|
13
|
+
date:
|
14
|
+
- Fri, 11 Feb 2011 21:36:23 GMT
|
15
|
+
server:
|
16
|
+
- Apache
|
17
|
+
x-powered-by:
|
18
|
+
- PHP/5.3.3
|
19
|
+
p3p:
|
20
|
+
- CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"
|
21
|
+
vary:
|
22
|
+
- Accept-Encoding
|
23
|
+
content-length:
|
24
|
+
- "7508"
|
25
|
+
content-type:
|
26
|
+
- text/xml; charset=utf-8
|
27
|
+
body: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
|
28
|
+
<rss version=\"2.0\"><channel><title>Instapaper: Archive</title><link>http://www.instapaper.com/archive</link><description></description><item><title>Amazon.com: 2011 Editor Picks: MP3 Downloads</title><link>http://www.amazon.com/gp/b/ref=tsm_1_tw_dmedpicks_20110210?node=2620871011</link><description>amazonmp3: Editor Picks: discover some of our editors' favorite songs and albums of the year (so far): http://amzn.to/fSQz9A</description><pubDate>Fri, 11 Feb 2011 09:06:25 EST</pubDate></item><item><title>Advanced sign-in security for your Google account - Official Gmail Blog</title><link>http://gmailblog.blogspot.com/2011/02/advanced-sign-in-security-for-your.html</link><description></description><pubDate>Fri, 11 Feb 2011 08:34:02 EST</pubDate></item><item><title>Full API now available - Instapaper Blog</title><link>http://blog.instapaper.com/post/3208433429</link><description>instapaper: Full API now available: http://t.co/diqusxu</description><pubDate>Fri, 11 Feb 2011 07:41:48 EST</pubDate></item><item><title>Introducing the Google Translate app for iPhone - Official Google Mobile Blog</title><link>http://googlemobile.blogspot.com/2011/02/introducing-google-translate-app-for.html</link><description>GoogleMobile: Attention iPhone owners: download the new Google Translate app to speak and hear your translations! http://goo.gl/cpHqR</description><pubDate>Thu, 10 Feb 2011 22:37:39 EST</pubDate></item><item><title>AT&T announces Unlimited Mobile to Any Mobile calling | Phones | iOS Central | Macworld</title><link>http://www.macworld.com/article/157774/2011/02/att_unlimited.html?lsrc=twt_macworld</link><description>macworld: Anyone else get the feeling AT&T is nervous about something? It's announced Unlimited Mobile to Any Mobile calling: http://ow.ly/3TrS5</description><pubDate>Thu, 10 Feb 2011 22:36:04 EST</pubDate></item><item><title>SEGA Slashes Prices On The App Store, Too | Touch Arcade</title><link>http://toucharcade.com/2011/02/09/sega-slashes-prices-on-the-app-store-too/</link><description></description><pubDate>Thu, 10 Feb 2011 22:35:52 EST</pubDate></item><item><title>Capcom and Sega join Valentine's Day sales on the App Store</title><link>http://www.tuaw.com/2011/02/10/capcom-and-sega-join-valentines-day-sales-on-the-app-store/</link><description>TUAW: Capcom and Sega join Valentine's Day sales on the App Store http://aol.it/feUzAz [post]</description><pubDate>Thu, 10 Feb 2011 10:20:29 EST</pubDate></item><item><title>Banana TV may let iOS devices stream video to the Mac</title><link>http://www.tuaw.com/2011/02/08/banana-tv-may-let-ios-devices-stream-video-to-the-mac/</link><description>TUAW: Banana TV may let iOS devices stream video to the Mac http://aol.it/gTtap0 [post]</description><pubDate>Thu, 10 Feb 2011 08:54:08 EST</pubDate></item><item><title>A List Apart: Articles: Kick Ass Kickoff Meetings</title><link>http://www.alistapart.com/articles/kick-ass-kickoff-meetings/</link><description>jessmartin: Project kickoff meetings need to be well designed: http://bit.ly/duPjmZ Also: http://bit.ly/gE480U</description><pubDate>Mon, 07 Feb 2011 22:51:18 EST</pubDate></item><item><title>Unorthodox, Unconventional and the Next Decade of Agile | Jim Highsmith</title><link>http://www.jimhighsmith.com/2011/02/07/unorthodox-unconventional-and-the-next-decade-of-agile/</link><description>jgehtland: New Blog: Unorthodox, Unconventional and the Next Decade of Agile. http://bit.ly/fLZcrf.</description><pubDate>Mon, 07 Feb 2011 22:30:01 EST</pubDate></item><item><title>Tracking Project Emotions Using MercuryApp</title><link>http://tooky.github.com/2010/11/23/tracking-project-emotions-using-mercury-app.html</link><description></description><pubDate>Mon, 07 Feb 2011 22:25:25 EST</pubDate></item><item><title>\n tbaggery\n \n - Bundle While You Git\n \n </title><link>http://tbaggery.com/2011/02/07/bundle-while-you-git.html</link><description>spicycode: Tired of running `bundle install` by hand like an animal? http://tbaggery.com/2011/02/07/bundle-while-you-git.html</description><pubDate>Mon, 07 Feb 2011 19:14:31 EST</pubDate></item><item><title>Kindle 3.1 software preview brings real page numbers, more | E-Readers | Playlist | Macworld</title><link>http://www.macworld.com/article/157718/2011/02/kindleversion31.html</link><description>macworld: Amazon offers preview version Kindle 3.1 update, now with real page numbers. http://t.co/RUNLLHa</description><pubDate>Mon, 07 Feb 2011 19:11:27 EST</pubDate></item><item><title>Priority Inbox in Gmail for mobile - Official Google Mobile Blog</title><link>http://googlemobile.blogspot.com/2011/02/priority-inbox-in-gmail-for-mobile.html</link><description>GoogleMobile: New! Priority Inbox in #Gmail available for most HTML5-capable phones: http://goo.gl/fswd4 (now with clickable link)</description><pubDate>Mon, 07 Feb 2011 19:09:31 EST</pubDate></item><item><title>The Pragmatic Bookshelf</title><link>http://www.pragprog.com/magazines/2011-02/way-of-the-agile-warrior</link><description></description><pubDate>Sun, 06 Feb 2011 12:33:39 EST</pubDate></item><item><title>Gowalla Begins Connecting The Dots On Travel</title><link>http://techcrunch.com/2011/01/28/gowalla-travel/</link><description></description><pubDate>Sun, 06 Feb 2011 12:28:54 EST</pubDate></item><item><title>David Chelimsky \xC2\xBB Blog Archive \xC2\xBB rspec-2.5.0 is released!</title><link>http://blog.davidchelimsky.net/2011/02/06/rspec-250-is-released/</link><description>spicycode: rspec-2.5 is released! http://bit.ly/fnVGqZ</description><pubDate>Sun, 06 Feb 2011 12:26:28 EST</pubDate></item><item><title> New Ruby 1.9 Features, Tips & Tricks - igvita.com</title><link>http://www.igvita.com/2011/02/03/new-ruby-19-features-tips-tricks/</link><description></description><pubDate>Sat, 05 Feb 2011 22:02:08 EST</pubDate></item><item><title>The Computer Attacks You've Never Heard Of</title><link>http://lifehacker.com/5749098/the-computer-attacks-youve-never-heard-of</link><description></description><pubDate>Sat, 05 Feb 2011 21:50:01 EST</pubDate></item><item><title>Five Ways the Android-Powered Google Tablet Is Better than the iPad</title><link>http://lifehacker.com/5750114/five-ways-the-android+powered-google-tablet-is-better-than-the-ipad</link><description></description><pubDate>Sat, 05 Feb 2011 18:17:21 EST</pubDate></item><item><title>This Week's Most Popular Posts</title><link>http://lifehacker.com/5752283/this-weeks-most-popular-posts</link><description></description><pubDate>Sat, 05 Feb 2011 18:12:34 EST</pubDate></item><item><title>For money market investors, a look at 'shadow NAVs'</title><link>https://personal.vanguard.com/us/insights/article/shadow-navs-012242011</link><description></description><pubDate>Sat, 05 Feb 2011 18:10:29 EST</pubDate></item><item><title>Diversification has served bond investors well</title><link>https://personal.vanguard.com/us/insights/article/bond-diversification-02022011</link><description></description><pubDate>Sat, 05 Feb 2011 18:07:31 EST</pubDate></item><item><title>Hammer of Civil Rights</title><link>http://www.thenation.com/print/article/157742/hammer-civil-rights</link><description></description><pubDate>Sat, 05 Feb 2011 17:46:00 EST</pubDate></item><item><title>A Bold Design for a New South</title><link>http://www.thenation.com/print/article/157763/bold-design-new-south</link><description></description><pubDate>Sat, 05 Feb 2011 17:45:55 EST</pubDate></item></channel></rss>\n"
|
29
|
+
http_version: "1.1"
|
metadata
ADDED
@@ -0,0 +1,159 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: stratify-instapaper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jason Rudolph
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-06-26 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: railties
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ~>
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 3.1.0.rc1
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: stratify-base
|
28
|
+
prerelease: false
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.1.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: thoughtafter-simple-rss
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.2.3
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: database_cleaner
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 0.6.7
|
57
|
+
type: :development
|
58
|
+
version_requirements: *id004
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: fakeweb
|
61
|
+
prerelease: false
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ~>
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 1.3.0
|
68
|
+
type: :development
|
69
|
+
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec
|
72
|
+
prerelease: false
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 2.6.0
|
79
|
+
type: :development
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: vcr
|
83
|
+
prerelease: false
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.10.0
|
90
|
+
type: :development
|
91
|
+
version_requirements: *id007
|
92
|
+
description: Instapaper plugin for Stratify
|
93
|
+
email:
|
94
|
+
- jason@jasonrudolph.com
|
95
|
+
executables: []
|
96
|
+
|
97
|
+
extensions: []
|
98
|
+
|
99
|
+
extra_rdoc_files: []
|
100
|
+
|
101
|
+
files:
|
102
|
+
- .gitignore
|
103
|
+
- .rvmrc
|
104
|
+
- Gemfile
|
105
|
+
- Gemfile.lock
|
106
|
+
- LICENSE
|
107
|
+
- README.md
|
108
|
+
- Rakefile
|
109
|
+
- app/assets/images/instapaper-icon-16.png
|
110
|
+
- app/assets/images/instapaper-icon-24.png
|
111
|
+
- lib/stratify-instapaper.rb
|
112
|
+
- lib/stratify-instapaper/activity.rb
|
113
|
+
- lib/stratify-instapaper/collector.rb
|
114
|
+
- lib/stratify-instapaper/engine.rb
|
115
|
+
- lib/stratify-instapaper/presenter.rb
|
116
|
+
- lib/stratify-instapaper/query.rb
|
117
|
+
- lib/stratify-instapaper/version.rb
|
118
|
+
- spec/mongoid.yml
|
119
|
+
- spec/spec_helper.rb
|
120
|
+
- spec/stratify-instapaper/activity_spec.rb
|
121
|
+
- spec/stratify-instapaper/integration_spec.rb
|
122
|
+
- spec/stratify-instapaper/presenter_spec.rb
|
123
|
+
- spec/support/vcr_setup.rb
|
124
|
+
- stratify-instapaper.gemspec
|
125
|
+
- vcr_cassettes/instapaper.yml
|
126
|
+
homepage: http://github.com/jasonrudolph/stratify/
|
127
|
+
licenses: []
|
128
|
+
|
129
|
+
post_install_message:
|
130
|
+
rdoc_options: []
|
131
|
+
|
132
|
+
require_paths:
|
133
|
+
- lib
|
134
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: "0"
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: "0"
|
146
|
+
requirements: []
|
147
|
+
|
148
|
+
rubyforge_project: stratify-instapaper
|
149
|
+
rubygems_version: 1.8.5
|
150
|
+
signing_key:
|
151
|
+
specification_version: 3
|
152
|
+
summary: Instapaper plugin for Stratify
|
153
|
+
test_files:
|
154
|
+
- spec/mongoid.yml
|
155
|
+
- spec/spec_helper.rb
|
156
|
+
- spec/stratify-instapaper/activity_spec.rb
|
157
|
+
- spec/stratify-instapaper/integration_spec.rb
|
158
|
+
- spec/stratify-instapaper/presenter_spec.rb
|
159
|
+
- spec/support/vcr_setup.rb
|