url2png-dc 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/.rvmrc +1 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +31 -0
- data/Rakefile +42 -0
- data/VERSION +1 -0
- data/lib/url2png/cache.rb +22 -0
- data/lib/url2png/configuration.rb +28 -0
- data/lib/url2png/url_helper.rb +79 -0
- data/lib/url2png_dc.rb +24 -0
- data/test/cache_test.rb +29 -0
- data/test/configuration_test.rb +19 -0
- data/test/really/make_call_to_url2png_test.rb +19 -0
- data/test/test_helper.rb +22 -0
- data/test/url2png_dc_test.rb +46 -0
- data/test/url_helper_test.rb +141 -0
- metadata +127 -0
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use 1.9.2-p290 --create
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
ansi (1.4.3)
|
5
|
+
git (1.2.5)
|
6
|
+
httparty (0.8.3)
|
7
|
+
multi_json (~> 1.0)
|
8
|
+
multi_xml
|
9
|
+
jeweler (1.8.4)
|
10
|
+
bundler (~> 1.0)
|
11
|
+
git (>= 1.2.5)
|
12
|
+
rake
|
13
|
+
rdoc
|
14
|
+
json (1.7.5)
|
15
|
+
minitest (3.3.0)
|
16
|
+
multi_json (1.3.6)
|
17
|
+
multi_xml (0.5.1)
|
18
|
+
rake (0.9.2.2)
|
19
|
+
rdoc (3.12)
|
20
|
+
json (~> 1.4)
|
21
|
+
turn (0.9.6)
|
22
|
+
ansi
|
23
|
+
|
24
|
+
PLATFORMS
|
25
|
+
ruby
|
26
|
+
|
27
|
+
DEPENDENCIES
|
28
|
+
httparty
|
29
|
+
jeweler
|
30
|
+
minitest
|
31
|
+
turn
|
data/Rakefile
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "url2png-dc"
|
18
|
+
gem.homepage = "http://github.com/nowk/url2png-dc"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = %Q{Url2Png Gem .v6}
|
21
|
+
gem.description = %Q{Gem to use Url2Png}
|
22
|
+
gem.email = "yung.kwon@damncarousel.com"
|
23
|
+
gem.authors = ["Yung Hwa Kwon"]
|
24
|
+
# dependencies defined in Gemfile
|
25
|
+
end
|
26
|
+
Jeweler::RubygemsDotOrgTasks.new
|
27
|
+
|
28
|
+
require 'rake/testtask'
|
29
|
+
Rake::TestTask.new(:test) do |test|
|
30
|
+
test.libs << 'lib' << 'test'
|
31
|
+
test.pattern = 'test/*_test.rb'
|
32
|
+
test.verbose = !!ENV["VERBOSE"]
|
33
|
+
test.warning = !!ENV["WARNING"]
|
34
|
+
end
|
35
|
+
Rake::TestTask.new('test:rl') do |t|
|
36
|
+
t.libs << 'lib' << 'test'
|
37
|
+
t.pattern = 'test/really/*_test.rb'
|
38
|
+
t.verbose = !!ENV["VERBOSE"]
|
39
|
+
t.warning = !!ENV["WARNING"]
|
40
|
+
end
|
41
|
+
|
42
|
+
task :default => :test
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Url2PngDc
|
2
|
+
# TODO Rename this, "Cache" sounds a bit misleading in this context
|
3
|
+
#
|
4
|
+
class Cache
|
5
|
+
def initialize(json_payload)
|
6
|
+
@payload = json_payload
|
7
|
+
end
|
8
|
+
|
9
|
+
def url
|
10
|
+
parse_out_cache_url_from_payload
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def parse_out_cache_url_from_payload
|
17
|
+
_json = JSON.parse(@payload)
|
18
|
+
_png = _json['png']
|
19
|
+
_png if _png && !_png.empty?
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Url2PngDc
|
2
|
+
class Configuration
|
3
|
+
URL2PNG_API_URL = 'http://beta.url2png.com'
|
4
|
+
URL2PNG_API_VERSION = 'v6'
|
5
|
+
|
6
|
+
attr_accessor :url2png_apikey
|
7
|
+
attr_accessor :url2png_secret
|
8
|
+
attr_accessor :viewport_dimensions
|
9
|
+
attr_accessor :fullpage
|
10
|
+
attr_accessor :force_refresh
|
11
|
+
|
12
|
+
def initialize
|
13
|
+
@url2png_apikey = 'PXXXX'
|
14
|
+
@url2png_secret = 'SXXXX'
|
15
|
+
@viewport_dimensions = '1280x1024'
|
16
|
+
@fullpage = false
|
17
|
+
@force_refresh = false
|
18
|
+
end
|
19
|
+
|
20
|
+
def url2png_api_url
|
21
|
+
URL2PNG_API_URL
|
22
|
+
end
|
23
|
+
|
24
|
+
def url2png_api_version
|
25
|
+
URL2PNG_API_VERSION
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
module Url2PngDc
|
2
|
+
module UrlHelpers
|
3
|
+
def self.included(base)
|
4
|
+
base.instance_eval do
|
5
|
+
include InstanceMethods
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
module InstanceMethods
|
10
|
+
def url_2png(url, options = {})
|
11
|
+
url_builder(query_string_builder(url, options))
|
12
|
+
end
|
13
|
+
|
14
|
+
def url_2json(url, options = {})
|
15
|
+
url_builder(query_string_builder(url, options), :json)
|
16
|
+
end
|
17
|
+
|
18
|
+
def url_2cache(url, options = {})
|
19
|
+
response = ::HTTParty.get(url_2json(url, options))
|
20
|
+
_cache = Cache.new response.body
|
21
|
+
_cache.url || url_2png(url, options)
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def url2png_conf
|
28
|
+
Url2PngDc.configuration
|
29
|
+
end
|
30
|
+
|
31
|
+
def url_builder(query_string, url2png_api_format = :png)
|
32
|
+
File.join(
|
33
|
+
url2png_conf.url2png_api_url,
|
34
|
+
url2png_conf.url2png_api_version,
|
35
|
+
url2png_conf.url2png_apikey,
|
36
|
+
generate_url2png_token(query_string),
|
37
|
+
url2png_api_format.to_s,
|
38
|
+
"?#{query_string}"
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
def query_string_builder(url, options = {})
|
43
|
+
params = {
|
44
|
+
:url => url,
|
45
|
+
|
46
|
+
:force =>
|
47
|
+
int_my_bool(options[:force] || url2png_conf.force_refresh),
|
48
|
+
:fullpage =>
|
49
|
+
int_my_bool(options[:fullpage] || url2png_conf.fullpage),
|
50
|
+
|
51
|
+
:thumbnail_max_width => options[:thumbnail_max_width],
|
52
|
+
:thumbnail_max_height => options[:thumbnail_max_height],
|
53
|
+
|
54
|
+
:viewport =>
|
55
|
+
options[:viewport] || url2png_conf.viewport_dimensions
|
56
|
+
}
|
57
|
+
|
58
|
+
params.sort_by { |o| o[0] }.inject([]) { |memo, obj|
|
59
|
+
k, v = *obj.map(&:to_s)
|
60
|
+
memo << [CGI.escape(k), CGI.escape(v)].join("=") if v && !v.empty?
|
61
|
+
memo
|
62
|
+
}.join("&")
|
63
|
+
end
|
64
|
+
|
65
|
+
def generate_url2png_token(query_string)
|
66
|
+
raise ArgumentError, "Query string can't be blank" unless
|
67
|
+
query_string && !query_string.empty?
|
68
|
+
|
69
|
+
Digest::MD5.hexdigest(query_string+url2png_conf.url2png_secret)
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
def int_my_bool(val)
|
74
|
+
return val if val.is_a?(Fixnum)
|
75
|
+
val === true ? 1 : 0
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
data/lib/url2png_dc.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'digest'
|
2
|
+
require 'cgi'
|
3
|
+
require 'json'
|
4
|
+
require 'httparty'
|
5
|
+
|
6
|
+
require 'url2png/configuration'
|
7
|
+
require 'url2png/url_helper'
|
8
|
+
require 'url2png/cache'
|
9
|
+
|
10
|
+
module Url2PngDc
|
11
|
+
include HTTParty
|
12
|
+
|
13
|
+
class << self
|
14
|
+
def configuration
|
15
|
+
@_configuration ||= Configuration.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def configure
|
19
|
+
yield(configuration)
|
20
|
+
configuration
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
data/test/cache_test.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Url2PngDc
|
4
|
+
class TestCache < MiniTest::Unit::TestCase
|
5
|
+
# This provides a solution to insert images properly for display on
|
6
|
+
# Microsoft Outlook email clients
|
7
|
+
#
|
8
|
+
def test_url_to_return_cached_url
|
9
|
+
cache = Cache.new json_payload
|
10
|
+
assert_match(/cache(-[\d]+)\.url2png\.com/, cache.url)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_url_returns_nil_if_png_key_is_empty_or_missing
|
14
|
+
json = JSON.parse(json_payload)
|
15
|
+
json['png'] = ''
|
16
|
+
cache = Cache.new json.to_json
|
17
|
+
assert_nil cache.url
|
18
|
+
|
19
|
+
json.delete('png')
|
20
|
+
cache = Cache.new json.to_json
|
21
|
+
assert_nil cache.url
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_test_url_returns_nil_if_request_to_url2png_is_not_successful
|
25
|
+
flunk "We need to test this"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Url2PngDc
|
4
|
+
class TestConfiguration < MiniTest::Unit::TestCase
|
5
|
+
def test_configuration_defaults
|
6
|
+
configuration = Configuration.new
|
7
|
+
|
8
|
+
assert_equal 'PXXXX', configuration.url2png_apikey
|
9
|
+
assert_equal 'SXXXX', configuration.url2png_secret
|
10
|
+
assert_equal 'http://beta.url2png.com', configuration.url2png_api_url
|
11
|
+
assert_equal 'v6', configuration.url2png_api_version
|
12
|
+
|
13
|
+
assert_equal '1280x1024', configuration.viewport_dimensions
|
14
|
+
assert_equal false, configuration.fullpage
|
15
|
+
assert_equal false, configuration.force_refresh
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestReallyMakeCallToUrl2Png < MiniTest::Unit::TestCase
|
4
|
+
def teardown
|
5
|
+
Url2PngDc.instance_eval do
|
6
|
+
@_configuration = nil
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_retrieving_an_actual_cache_url
|
11
|
+
Url2PngDc.configure do |config|
|
12
|
+
config.url2png_apikey = ENV['URL2PNG_APIKEY']
|
13
|
+
config.url2png_secret = ENV['URL2PNG_SECRET']
|
14
|
+
end
|
15
|
+
|
16
|
+
url = Sandbox.new.url_2cache "http://google.com"
|
17
|
+
assert_match /cache(-[\d]+)\.url2png\.com/, url
|
18
|
+
end
|
19
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
gem 'minitest'
|
3
|
+
|
4
|
+
$:.push File.expand_path("../../lib", __FILE__)
|
5
|
+
require 'url2png_dc'
|
6
|
+
|
7
|
+
require 'turn'
|
8
|
+
require 'minitest/autorun'
|
9
|
+
|
10
|
+
def json_payload
|
11
|
+
# TODO pay attention to disclaimer
|
12
|
+
# TODO sample data comes from: http://beta.url2png.com/v6/P4DE5D1C99D8EF/c9d1c2e545d1280fb6c249aed4031c4b/json/?url=twitter.github.com%2Fbootstrap&viewport=1024x1024&thumbnail_max_width=275
|
13
|
+
<<-json
|
14
|
+
{"_disclaimer_":"This is a draft format is subject to change. Changes will be announced on twitter @url2png -- dan@url2png.com if you have suggestions or comments. Thanks!","status":"ok","job_id":"5ca8fac5a6c33f62bfb0f5d36a388e6219180414","request":{"submitted":"2012-08-31 21:18:52","viewport":"1024x1024","url":"http:\/\/twitter.github.com\/bootstrap","fullpage":false,"thumbnail_max_height":0,"thumbnail_max_width":275},"png":"http:\/\/cache-01.url2png.com\/P4DE5D1C99D8EF\/12244\/5ca8fac5a6c33f62bfb0f5d36a388e6219180414_1.png","meta":{"title":null,"dimensions_original":"1024x1976","dimensions_final":"1024x1976"},"headers":{"X-submitted":"1346447932","X-Original-Status":"HTTP\/1.1 301 Moved Permanently","Etag":"5ca8fac5a6c33f62bfb0f5d36a388e6219180414","X-Status":"OK"},"debug":["Curl Status is 0"]}
|
15
|
+
json
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
class Sandbox
|
20
|
+
include Url2PngDc::UrlHelpers
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestUrl2PngDc < MiniTest::Unit::TestCase
|
4
|
+
def teardown
|
5
|
+
Url2PngDc.instance_eval do
|
6
|
+
@_configuration = nil
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_overriding_configuration_defaults
|
11
|
+
# must reset configuration on teardown, or it will act as configuration
|
12
|
+
# for test suite
|
13
|
+
#
|
14
|
+
Url2PngDc.configure do |config|
|
15
|
+
config.url2png_apikey = 'abcdefg'
|
16
|
+
config.url2png_secret = 'hijklmn'
|
17
|
+
config.viewport_dimensions = '1080x720'
|
18
|
+
config.fullpage = true
|
19
|
+
config.force_refresh = true
|
20
|
+
end
|
21
|
+
|
22
|
+
configuration = Url2PngDc.configuration
|
23
|
+
|
24
|
+
assert_equal 'abcdefg', configuration.url2png_apikey
|
25
|
+
assert_equal 'hijklmn', configuration.url2png_secret
|
26
|
+
assert_equal '1080x720', configuration.viewport_dimensions
|
27
|
+
assert_equal true, configuration.fullpage
|
28
|
+
assert_equal true, configuration.force_refresh
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_cant_override_api_url
|
32
|
+
assert_raises NoMethodError do
|
33
|
+
Url2PngDc.configure do |config|
|
34
|
+
config.url2png_api_url = 'http://google.com'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_cant_override_api_version
|
40
|
+
assert_raises NoMethodError do
|
41
|
+
Url2PngDc.configure do |config|
|
42
|
+
config.url2png_api_version = 'v3'
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Url2PngDc
|
4
|
+
class TestUrlHelper < MiniTest::Unit::TestCase
|
5
|
+
def url2png_apikey
|
6
|
+
Url2PngDc.configuration.url2png_apikey
|
7
|
+
end
|
8
|
+
|
9
|
+
def a_url
|
10
|
+
"http://google.com/maps/"
|
11
|
+
end
|
12
|
+
|
13
|
+
def query_string_with_defaults
|
14
|
+
"force=0&fullpage=0&url=#{CGI.escape(a_url)}&viewport=1280x1024"
|
15
|
+
end
|
16
|
+
|
17
|
+
def token(query_string)
|
18
|
+
Digest::MD5.hexdigest(query_string+Url2PngDc.configuration.url2png_secret)
|
19
|
+
end
|
20
|
+
|
21
|
+
def mock_my_httparty!
|
22
|
+
# mocky
|
23
|
+
HTTParty.instance_eval do
|
24
|
+
def get(url)
|
25
|
+
obj = Object.new
|
26
|
+
def obj.body
|
27
|
+
json_payload
|
28
|
+
end
|
29
|
+
obj
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def test_url_2png_generates_valid_url2png_url_for_png
|
36
|
+
token = token(query_string_with_defaults)
|
37
|
+
url = Sandbox.new.url_2png a_url
|
38
|
+
|
39
|
+
assert_equal "http://beta.url2png.com/v6/#{url2png_apikey}/#{token}/png/?#{query_string_with_defaults}", url
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_url_2png_generates_valid_url2png_url_for_png_with_options
|
43
|
+
query_string_with_options =
|
44
|
+
"force=0&fullpage=1&url=#{CGI.escape(a_url)}&viewport=720x480"
|
45
|
+
token = token(query_string_with_options)
|
46
|
+
url = Sandbox.new.url_2png a_url, {:fullpage => true, :viewport => '720x480'}
|
47
|
+
|
48
|
+
assert_equal "http://beta.url2png.com/v6/#{url2png_apikey}/#{token}/png/?#{query_string_with_options}", url
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
def test_url_2json_generates_valid_url2png_url_for_json
|
53
|
+
token = token(query_string_with_defaults)
|
54
|
+
url = Sandbox.new.url_2json a_url
|
55
|
+
|
56
|
+
assert_equal "http://beta.url2png.com/v6/#{url2png_apikey}/#{token}/json/?#{query_string_with_defaults}", url
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_url_2json_generates_valid_url2png_url_for_json_with_options
|
60
|
+
query_string_with_options =
|
61
|
+
"force=0&fullpage=1&url=#{CGI.escape(a_url)}&viewport=1080x720"
|
62
|
+
token = token(query_string_with_options)
|
63
|
+
url = Sandbox.new.url_2json a_url, {:fullpage => true, :viewport => '1080x720'}
|
64
|
+
|
65
|
+
assert_equal "http://beta.url2png.com/v6/#{url2png_apikey}/#{token}/json/?#{query_string_with_options}", url
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
def test_url_2cache_returns_a_url2png_cache_url
|
70
|
+
mock_my_httparty!
|
71
|
+
|
72
|
+
token = token(query_string_with_defaults)
|
73
|
+
url = Sandbox.new.url_2cache a_url
|
74
|
+
assert_match(/cache(-[\d]+)\.url2png\.com/, url)
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_url_2cache_resolves_to_url_2png_if_cache_url_is_empty_or_nil
|
78
|
+
mock_my_httparty!
|
79
|
+
|
80
|
+
# mocky
|
81
|
+
Url2PngDc::Cache.class_eval do
|
82
|
+
alias_method :url_original, :url
|
83
|
+
def url
|
84
|
+
nil
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
resolved_url = Sandbox.new.url_2png a_url
|
89
|
+
url = Sandbox.new.url_2cache a_url
|
90
|
+
|
91
|
+
assert_match resolved_url, url
|
92
|
+
|
93
|
+
# put things back as they were
|
94
|
+
Url2PngDc::Cache.class_eval do
|
95
|
+
alias_method :url, :url_original
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
|
100
|
+
def test_query_string_builder_builds_query_string_with_configuration
|
101
|
+
query_string = Sandbox.new.__send__ :query_string_builder, a_url
|
102
|
+
assert_equal query_string_with_defaults, query_string
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_query_string_builder_builds_query_string_override_params
|
106
|
+
expected_query_string =
|
107
|
+
"force=1&fullpage=1&thumbnail_max_height=300&thumbnail_max_width=400&url=#{CGI.escape(a_url)}&viewport=1080x720"
|
108
|
+
|
109
|
+
query_string = Sandbox.new.__send__ :query_string_builder, a_url, {
|
110
|
+
:force => true,
|
111
|
+
:fullpage => true,
|
112
|
+
:thumbnail_max_height => '300',
|
113
|
+
:thumbnail_max_width => '400',
|
114
|
+
:viewport => '1080x720'
|
115
|
+
}
|
116
|
+
assert_equal expected_query_string, query_string
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_query_string_builder_ignores_non_related_options
|
120
|
+
query_string = Sandbox.new.__send__ :query_string_builder, a_url, {
|
121
|
+
:not_used_or_need_by_url2png => true
|
122
|
+
}
|
123
|
+
assert_equal query_string_with_defaults, query_string
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_generate_url2png_token_generates_md5_token
|
127
|
+
expected_token = token(query_string_with_defaults)
|
128
|
+
query_string = Sandbox.new.__send__ :query_string_builder, a_url
|
129
|
+
token = Sandbox.new.__send__ :generate_url2png_token, query_string
|
130
|
+
|
131
|
+
assert_equal expected_token, token
|
132
|
+
end
|
133
|
+
|
134
|
+
def test_generate_url2png_token_must_have_query_string
|
135
|
+
assert_raises ArgumentError do
|
136
|
+
Sandbox.new.__send__ :generate_url2png_token, ''
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
metadata
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: url2png-dc
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Yung Hwa Kwon
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-01 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: httparty
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: minitest
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: turn
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: jeweler
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
description: Gem to use Url2Png
|
79
|
+
email: yung.kwon@damncarousel.com
|
80
|
+
executables: []
|
81
|
+
extensions: []
|
82
|
+
extra_rdoc_files: []
|
83
|
+
files:
|
84
|
+
- .rvmrc
|
85
|
+
- Gemfile
|
86
|
+
- Gemfile.lock
|
87
|
+
- Rakefile
|
88
|
+
- VERSION
|
89
|
+
- lib/url2png/cache.rb
|
90
|
+
- lib/url2png/configuration.rb
|
91
|
+
- lib/url2png/url_helper.rb
|
92
|
+
- lib/url2png_dc.rb
|
93
|
+
- test/cache_test.rb
|
94
|
+
- test/configuration_test.rb
|
95
|
+
- test/really/make_call_to_url2png_test.rb
|
96
|
+
- test/test_helper.rb
|
97
|
+
- test/url2png_dc_test.rb
|
98
|
+
- test/url_helper_test.rb
|
99
|
+
homepage: http://github.com/nowk/url2png-dc
|
100
|
+
licenses:
|
101
|
+
- MIT
|
102
|
+
post_install_message:
|
103
|
+
rdoc_options: []
|
104
|
+
require_paths:
|
105
|
+
- lib
|
106
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
segments:
|
113
|
+
- 0
|
114
|
+
hash: -110950005258160162
|
115
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
requirements: []
|
122
|
+
rubyforge_project:
|
123
|
+
rubygems_version: 1.8.24
|
124
|
+
signing_key:
|
125
|
+
specification_version: 3
|
126
|
+
summary: Url2Png Gem .v6
|
127
|
+
test_files: []
|