shareprogress 0.0.2 → 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.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/lib/shareprogress.rb +27 -10
- data/lib/shareprogress/filters/{new_button.rb → create_button.rb} +1 -1
- data/lib/shareprogress/filters/{new_email_variants.rb → create_email_variants.rb} +1 -1
- data/lib/shareprogress/filters/{new_facebook_variants.rb → create_facebook_variants.rb} +1 -1
- data/lib/shareprogress/filters/{new_twitter_variants.rb → create_twitter_variants.rb} +1 -1
- data/lib/shareprogress/filters/read_button.rb +8 -0
- data/shareprogress.gemspec +1 -1
- data/test/create_button_test.rb +0 -2
- data/test/read_button_test.rb +138 -0
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 082477b4615f11fc7b720305663a0d83875fecee
|
4
|
+
data.tar.gz: 49f04eb0b8878236853d97afaf511431a6adb4ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92e3469f882b16bd44869b00c55523a189e9d4c4f7ac9952e02ff5f9f7a0716a8dda751174ca0f29daaaafba702b67d7f6d7c36f82b2fd321e1649d843d78ba6
|
7
|
+
data.tar.gz: 284c0b6a7dabdb83fe3506efff60d5da1b72f2c3724b83465ccf1c90b29a21c0e699fc7724947094a430473b97550d719f93ce3dee0b6d26d25242c781c51fe7
|
data/.gitignore
CHANGED
data/lib/shareprogress.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
require "scrivener"
|
2
2
|
require "requests"
|
3
3
|
|
4
|
-
require_relative "shareprogress/filters/
|
5
|
-
require_relative "shareprogress/filters/
|
6
|
-
require_relative "shareprogress/filters/
|
7
|
-
require_relative "shareprogress/filters/
|
4
|
+
require_relative "shareprogress/filters/create_button"
|
5
|
+
require_relative "shareprogress/filters/create_email_variants"
|
6
|
+
require_relative "shareprogress/filters/create_twitter_variants"
|
7
|
+
require_relative "shareprogress/filters/create_facebook_variants"
|
8
|
+
require_relative "shareprogress/filters/read_button"
|
8
9
|
|
9
10
|
module ShareProgress
|
10
11
|
module Button
|
@@ -12,8 +13,8 @@ module ShareProgress
|
|
12
13
|
case method
|
13
14
|
when "create"
|
14
15
|
url = "https://run.shareprogress.org/api/v1/buttons/update"
|
15
|
-
when "
|
16
|
-
|
16
|
+
when "read"
|
17
|
+
url = "https://run.shareprogress.org/api/v1/buttons/read"
|
17
18
|
end
|
18
19
|
|
19
20
|
response = Requests.request("POST", url,
|
@@ -111,7 +112,7 @@ module ShareProgress
|
|
111
112
|
# "id"=>"id",
|
112
113
|
# "passed"=>"referrer_id"}}
|
113
114
|
# }
|
114
|
-
button =
|
115
|
+
button = CreateButton.new(data)
|
115
116
|
|
116
117
|
unless button.valid?
|
117
118
|
return button.errors
|
@@ -120,11 +121,11 @@ module ShareProgress
|
|
120
121
|
button_variants = button.variants.merge(button_template: button.button_template)
|
121
122
|
|
122
123
|
if button.variants["email"]
|
123
|
-
variants =
|
124
|
+
variants = CreateEmailVariants.new(button_variants)
|
124
125
|
elsif button.variants["twitter"]
|
125
|
-
variants =
|
126
|
+
variants = CreateTwitterVariants.new(button_variants)
|
126
127
|
elsif button.variants["facebook"]
|
127
|
-
variants =
|
128
|
+
variants = CreateFacebookVariants.new(button_variants)
|
128
129
|
end
|
129
130
|
|
130
131
|
unless variants.valid?
|
@@ -139,5 +140,21 @@ module ShareProgress
|
|
139
140
|
return JSON.parse(e.response.body)["message"]
|
140
141
|
end
|
141
142
|
end
|
143
|
+
|
144
|
+
def self.read(data)
|
145
|
+
button = ReadButton.new(data)
|
146
|
+
|
147
|
+
unless button.valid?
|
148
|
+
return button.errors
|
149
|
+
end
|
150
|
+
|
151
|
+
# send request to ShareProgress to read the info about a button
|
152
|
+
begin
|
153
|
+
request = request("read", button.attributes)
|
154
|
+
return request["response"][0]
|
155
|
+
rescue Requests::Error => e
|
156
|
+
return JSON.parse(e.response.body)["message"]
|
157
|
+
end
|
158
|
+
end
|
142
159
|
end
|
143
160
|
end
|
data/shareprogress.gemspec
CHANGED
data/test/create_button_test.rb
CHANGED
@@ -178,7 +178,6 @@ scope do
|
|
178
178
|
assert result == expected_result
|
179
179
|
end
|
180
180
|
|
181
|
-
# page_url
|
182
181
|
test "create button with empty page_url" do |data|
|
183
182
|
data["page_url"] = ""
|
184
183
|
|
@@ -200,7 +199,6 @@ scope do
|
|
200
199
|
assert result == expected_result
|
201
200
|
end
|
202
201
|
|
203
|
-
# page_title
|
204
202
|
test "create button with empty page_title" do |data|
|
205
203
|
data["page_title"] = ""
|
206
204
|
|
@@ -0,0 +1,138 @@
|
|
1
|
+
require "cutest"
|
2
|
+
require_relative "../lib/shareprogress"
|
3
|
+
|
4
|
+
# Monkeypath the communication with ShareProgress
|
5
|
+
module ShareProgress
|
6
|
+
module Button
|
7
|
+
def self.request(method, payload)
|
8
|
+
return {
|
9
|
+
"success"=>true,
|
10
|
+
"response"=>[{
|
11
|
+
"id"=>12196,
|
12
|
+
"page_url"=>"https://www.sumofus.org/petition/my_petition_slug",
|
13
|
+
"page_title"=>"my_petition_slug-email_button",
|
14
|
+
"button_template"=>"sp_em_small",
|
15
|
+
"share_button_html"=>"<div class='sp_12196 sp_em_small' ></div>",
|
16
|
+
"found_snippet"=>true,
|
17
|
+
"is_active"=>true,
|
18
|
+
"variants"=>{
|
19
|
+
"facebook"=>[{
|
20
|
+
"id"=>48883,
|
21
|
+
"facebook_title"=>nil,
|
22
|
+
"facebook_description"=>nil,
|
23
|
+
"facebook_thumbnail"=>nil}],
|
24
|
+
"email"=>[{
|
25
|
+
"id"=>48881,
|
26
|
+
"email_subject"=>"My Subject 1",
|
27
|
+
"email_body"=>"My Body 1{LINK}"}, {
|
28
|
+
"id"=>48882,
|
29
|
+
"email_subject"=>"My Subject 2",
|
30
|
+
"email_body"=>"My Body 2{LINK}"}],
|
31
|
+
"twitter"=>[{
|
32
|
+
"id"=>48884,
|
33
|
+
"twitter_message"=>nil}]},
|
34
|
+
"advanced_options"=>{
|
35
|
+
"automatic_traffic_routing"=>"true",
|
36
|
+
"buttons_optimize_actions"=>nil,
|
37
|
+
"customize_params"=>nil,
|
38
|
+
"id_pass"=>{
|
39
|
+
"id"=>"id",
|
40
|
+
"passed"=>"referrer_id"}
|
41
|
+
}
|
42
|
+
}],
|
43
|
+
"message"=>nil}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
setup do
|
49
|
+
{
|
50
|
+
"key" => "ZAkVqgDTSq63_FE6FWeU3g",
|
51
|
+
"id" => "12196"
|
52
|
+
}
|
53
|
+
end
|
54
|
+
|
55
|
+
scope do
|
56
|
+
# all
|
57
|
+
test "read button successfully" do |data|
|
58
|
+
result = ShareProgress::Button.read(data)
|
59
|
+
|
60
|
+
expected_result = {
|
61
|
+
"id"=>12196,
|
62
|
+
"page_url"=>"https://www.sumofus.org/petition/my_petition_slug",
|
63
|
+
"page_title"=>"my_petition_slug-email_button",
|
64
|
+
"button_template"=>"sp_em_small",
|
65
|
+
"share_button_html"=>"<div class='sp_12196 sp_em_small' ></div>",
|
66
|
+
"found_snippet"=>true,
|
67
|
+
"is_active"=>true,
|
68
|
+
"variants"=>{
|
69
|
+
"facebook"=>[{
|
70
|
+
"id"=>48883,
|
71
|
+
"facebook_title"=>nil,
|
72
|
+
"facebook_description"=>nil,
|
73
|
+
"facebook_thumbnail"=>nil}],
|
74
|
+
"email"=>[{
|
75
|
+
"id"=>48881,
|
76
|
+
"email_subject"=>"My Subject 1",
|
77
|
+
"email_body"=>"My Body 1{LINK}"}, {
|
78
|
+
"id"=>48882,
|
79
|
+
"email_subject"=>"My Subject 2",
|
80
|
+
"email_body"=>"My Body 2{LINK}"}],
|
81
|
+
"twitter"=>[{
|
82
|
+
"id"=>48884,
|
83
|
+
"twitter_message"=>nil}]},
|
84
|
+
"advanced_options"=>{
|
85
|
+
"automatic_traffic_routing"=>"true",
|
86
|
+
"buttons_optimize_actions"=>nil,
|
87
|
+
"customize_params"=>nil,
|
88
|
+
"id_pass"=>{
|
89
|
+
"id"=>"id",
|
90
|
+
"passed"=>"referrer_id"}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
assert result == expected_result
|
95
|
+
end
|
96
|
+
|
97
|
+
# key
|
98
|
+
test "read button with nil key" do |data|
|
99
|
+
data["key"] = nil
|
100
|
+
|
101
|
+
result = ShareProgress::Button.read(data)
|
102
|
+
|
103
|
+
expected_result = {:key=>[:not_present]}
|
104
|
+
|
105
|
+
assert result == expected_result
|
106
|
+
end
|
107
|
+
|
108
|
+
test "read button with empty key" do |data|
|
109
|
+
data["key"] = ""
|
110
|
+
|
111
|
+
result = ShareProgress::Button.read(data)
|
112
|
+
|
113
|
+
expected_result = {:key=>[:not_present]}
|
114
|
+
|
115
|
+
assert result == expected_result
|
116
|
+
end
|
117
|
+
|
118
|
+
# id
|
119
|
+
test "read button with nil id" do |data|
|
120
|
+
data["id"] = nil
|
121
|
+
|
122
|
+
result = ShareProgress::Button.read(data)
|
123
|
+
|
124
|
+
expected_result = {:id=>[:not_present]}
|
125
|
+
|
126
|
+
assert result == expected_result
|
127
|
+
end
|
128
|
+
|
129
|
+
test "read button with empty id" do |data|
|
130
|
+
data["id"] = ""
|
131
|
+
|
132
|
+
result = ShareProgress::Button.read(data)
|
133
|
+
|
134
|
+
expected_result = {:id=>[:not_present]}
|
135
|
+
|
136
|
+
assert result == expected_result
|
137
|
+
end
|
138
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shareprogress
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cecilia Rivero
|
@@ -65,15 +65,17 @@ files:
|
|
65
65
|
- README.md
|
66
66
|
- Rakefile
|
67
67
|
- lib/shareprogress.rb
|
68
|
-
- lib/shareprogress/filters/
|
69
|
-
- lib/shareprogress/filters/
|
70
|
-
- lib/shareprogress/filters/
|
71
|
-
- lib/shareprogress/filters/
|
68
|
+
- lib/shareprogress/filters/create_button.rb
|
69
|
+
- lib/shareprogress/filters/create_email_variants.rb
|
70
|
+
- lib/shareprogress/filters/create_facebook_variants.rb
|
71
|
+
- lib/shareprogress/filters/create_twitter_variants.rb
|
72
|
+
- lib/shareprogress/filters/read_button.rb
|
72
73
|
- shareprogress.gemspec
|
73
74
|
- test/create_button_test.rb
|
74
75
|
- test/create_email_button_test.rb
|
75
76
|
- test/create_facebook_button_test.rb
|
76
77
|
- test/create_twitter_button_test.rb
|
78
|
+
- test/read_button_test.rb
|
77
79
|
homepage: https://github.com/ceciliarivero/shareprogress-rb
|
78
80
|
licenses:
|
79
81
|
- MIT
|