sss-ruby 0.0.3

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.
@@ -0,0 +1,27 @@
1
+ require 'querystring'
2
+
3
+ module ScreenshotShark
4
+
5
+ class Builder
6
+
7
+ # Create new instance with options
8
+ def initialize options
9
+ @options = options
10
+ end
11
+
12
+ # Build screenshot URL
13
+ def build_url
14
+ defaults = {
15
+ :key => ScreenshotShark.api_key,
16
+ :url => 'http://www.google.com/',
17
+ :op => 'r:200:120'
18
+ }
19
+ options = defaults.merge @options
20
+ options[:token] = ScreenshotShark.hash options
21
+ qs = QueryString.stringify options
22
+ "http://screenshotshark.com/capture?#{qs}"
23
+ end
24
+
25
+ end
26
+
27
+ end
@@ -0,0 +1,17 @@
1
+ module ScreenshotShark
2
+ module Helpers
3
+
4
+ # Create an image URL for the specified website
5
+ def sss_image_url url, options = {}
6
+ options[:url] = url
7
+ Builder.new(options).build_url()
8
+ end
9
+
10
+ # Create an image tag for the specified website
11
+ def sss_image_tag url, options = {}
12
+ options[:url] = url
13
+ url = Builder.new(options).build_url()
14
+ '<img src="#{url}">'
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,38 @@
1
+ require 'openssl'
2
+
3
+ module ScreenshotShark
4
+
5
+ # Cheap singleton
6
+ extend self
7
+
8
+ # Set API and secret keys
9
+ def config api_key, secret
10
+ self.api_key = api_key
11
+ self.secret = secret
12
+ end
13
+
14
+ def api_key= api_key
15
+ @api_key = api_key
16
+ end
17
+
18
+ def api_key
19
+ raise 'API key not set.' unless @api_key
20
+ @api_key
21
+ end
22
+
23
+ def secret= secret
24
+ @secret = secret
25
+ end
26
+
27
+ def secret
28
+ raise 'Secret key not set.' unless @secret
29
+ @secret
30
+ end
31
+
32
+ # Build a HMAC-SHA1 hash for token
33
+ def hash options
34
+ h = "#{options[:key]}:#{options[:url]}:#{options[:op]}"
35
+ OpenSSL::HMAC.hexdigest('sha1', self.secret, h)
36
+ end
37
+
38
+ end
@@ -0,0 +1,3 @@
1
+ require File.join(File.dirname(__FILE__), 'helpers')
2
+
3
+ ActionView::Base.send(:include, ScreenshotShark::Helpers) if defined? ActionView
data/lib/sss-ruby.rb ADDED
@@ -0,0 +1,4 @@
1
+ require 'sss-ruby/main'
2
+ require 'sss-ruby/builder'
3
+ require 'sss-ruby/rails'
4
+ require 'sss-ruby/helpers'
metadata ADDED
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sss-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Mike Holly
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-05-10 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: ScreenshotShark API for Ruby
15
+ email:
16
+ - mikejholly@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/sss-ruby/builder.rb
22
+ - lib/sss-ruby/helpers.rb
23
+ - lib/sss-ruby/main.rb
24
+ - lib/sss-ruby/rails.rb
25
+ - lib/sss-ruby.rb
26
+ homepage: http://screenshotshark.com/
27
+ licenses: []
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ requirements: []
45
+ rubyforge_project:
46
+ rubygems_version: 1.8.23
47
+ signing_key:
48
+ specification_version: 3
49
+ summary: ScreenshotShark
50
+ test_files: []