read_later 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/README.md ADDED
@@ -0,0 +1,32 @@
1
+ *Here is an example Sinatra application to get you going:*
2
+
3
+ require 'rubygems'
4
+ require 'sinatra'
5
+ require 'read_later'
6
+
7
+ get '/' do
8
+ read_later = ReadLater.new
9
+
10
+ # Application variables
11
+ # Example URL:
12
+ # h post_path(@post)
13
+ url = "http://writing.bryanwoods4e.com/1-poor-poor-child"
14
+
15
+ # Example title:
16
+ # h @post.title
17
+ title = "Poor, poor child. You have no idea."
18
+
19
+ # Can customize the following iframe parameters:
20
+ # Border, scrolling, width, height, transparency,
21
+ # And frameborder. For example:
22
+ read_later.height = 100
23
+ read_later.transparency = false
24
+
25
+ # Create an instance variable for button with required
26
+ # URL and optional title arguments
27
+ @instapaper_button = read_later.instapaper_button(url, title)
28
+
29
+ # Tell Sinatra to render button in the view:
30
+ # <%= @instapaper_button %>
31
+ @instapaper_button
32
+ end
@@ -0,0 +1,31 @@
1
+ require 'rubygems'
2
+ require 'sinatra'
3
+ require 'read_later'
4
+
5
+ get '/' do
6
+ read_later = ReadLater.new
7
+
8
+ # Application variables
9
+ # Example URL:
10
+ # h post_path(@post)
11
+ url = "http://writing.bryanwoods4e.com/1-poor-poor-child"
12
+
13
+ # Example title:
14
+ # h @post.title
15
+ title = "Poor, poor child. You have no idea."
16
+
17
+ # Can customize the following iframe parameters:
18
+ # Border, scrolling, width, height, transparency,
19
+ # And frameborder. For example:
20
+ read_later.height = 100
21
+ read_later.transparency = false
22
+
23
+ # Create an instance variable for button with required
24
+ # URL and optional title arguments
25
+ @instapaper_button = read_later.instapaper_button(url, title)
26
+
27
+ # Tell Sinatra to render button in the view:
28
+ # <%= @instapaper_button %>
29
+ @instapaper_button
30
+ end
31
+
data/lib/read_later.rb ADDED
@@ -0,0 +1,65 @@
1
+ class ReadLater
2
+ attr_accessor :url,
3
+ :title,
4
+ :border,
5
+ :scrolling,
6
+ :width,
7
+ :height,
8
+ :transparency,
9
+ :frameborder
10
+
11
+ def initialize
12
+ @url = url
13
+ @title = title
14
+ @border = border
15
+ @scrolling = scrolling
16
+ @width = width
17
+ @height = height
18
+ @transparency = transparency
19
+ @frameborder = frameborder
20
+ end
21
+
22
+ def border
23
+ @border.nil? ? 0 : @border
24
+ end
25
+
26
+ def scrolling
27
+ @scrolling.nil? ? "no" : @scrolling
28
+ end
29
+
30
+ def width
31
+ @width.nil? ? 87 : @width
32
+ end
33
+
34
+ def height
35
+ @height.nil? ? 17 : @height
36
+ end
37
+
38
+ def transparency
39
+ @transparency.nil? ? true : @transparency
40
+ end
41
+
42
+ def frameborder
43
+ @frameborder.nil? ? 0 : @frameborder
44
+ end
45
+
46
+ def instapaper_button(url, title = nil, *args)
47
+ button = <<-EOF
48
+ <script type='text/javascript'>
49
+ //<![CDATA[
50
+ if ('readlater'.indexOf('readlater') >= 0) {
51
+ document.write('<iframe border="#{@border}" scrolling="#{scrolling}"' +
52
+ 'width="#{width}" height="#{height}", allowtransparency="#{transparency}"' +
53
+ 'frameborder="#{frameborder}" style="margin-bottom: -3px; z-index: 1338;' +
54
+ 'border: 0px; background-color: transparent; overflow: hidden;"' +
55
+ 'src="http://www.instapaper.com/e2?url=#{url.to_s.gsub("/", "%2f")}' +
56
+ '&title=#{title}"></iframe>');
57
+ }
58
+ //]]>
59
+ </script>
60
+ EOF
61
+ end
62
+
63
+ alias_method :read_later_button, :instapaper_button
64
+ end
65
+
@@ -0,0 +1,16 @@
1
+ require 'rubygems'
2
+
3
+ SPEC = Gem::Specification.new do |s|
4
+ s.name = "read_later"
5
+ s.version = "0.1.0"
6
+ s.author = "Bryan Woods"
7
+ s.email = "bryanwoods4e@gmail.com"
8
+ s.platform = Gem::Platform::RUBY
9
+ s.description = "Read Later buttons for Instapaper."
10
+ s.summary = "Generates a Read Later button from a URL for saving to Instapaper."
11
+ s.rubyforge_project = "read_later"
12
+ s.homepage = "http://github.com/bryanwoods/read_later"
13
+ s.files = Dir.glob("**/*")
14
+ s.require_path = "lib"
15
+ s.has_rdoc = false
16
+ end
@@ -0,0 +1,8 @@
1
+ require "test/unit"
2
+ require "read_later"
3
+
4
+ class TestMoat < Test::Unit::TestCase
5
+ def test_sanity
6
+ flunk "write tests or I will kneecap you"
7
+ end
8
+ end
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: read_later
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Bryan Woods
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-06-16 00:00:00 -04:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Read Later buttons for Instapaper.
22
+ email: bryanwoods4e@gmail.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - examples/application.rb
31
+ - lib/read_later.rb
32
+ - read_later-0.1.0.gem
33
+ - read_later.gemspec
34
+ - README.md
35
+ - test/test_read_later.rb
36
+ has_rdoc: true
37
+ homepage: http://github.com/bryanwoods/read_later
38
+ licenses: []
39
+
40
+ post_install_message:
41
+ rdoc_options: []
42
+
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ segments:
50
+ - 0
51
+ version: "0"
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ requirements: []
60
+
61
+ rubyforge_project: read_later
62
+ rubygems_version: 1.3.6
63
+ signing_key:
64
+ specification_version: 3
65
+ summary: Generates a Read Later button from a URL for saving to Instapaper.
66
+ test_files: []
67
+