stratify-instapaper 0.1.0
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/.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
|