platformx 0.0.4 → 0.0.6
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/lib/platformx.rb +70 -25
- data/lib/platformx/aws.rb +71 -0
- data/lib/platformx/form.rb +88 -0
- data/lib/platformx/pdf.rb +42 -0
- data/lib/platformx/version.rb +1 -1
- data/platformx.gemspec +2 -1
- metadata +18 -10
- data/lib/platformx/configuration.rb +0 -35
- data/lib/platformx/facebook.rb +0 -16
- data/lib/platformx/google_map.rb +0 -42
- data/lib/platformx/instagram.rb +0 -115
- data/lib/platformx/template.rb +0 -16
- data/lib/platformx/timeline.rb +0 -55
- data/lib/platformx/twitter.rb +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11401e09149022fde8fdb14a2eabc94be4df5917
|
4
|
+
data.tar.gz: e1699f7712a4cb2f7bd39e9c204081dc1eab55b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d54c6c7754ba961f3b78012e9c50db730ff6a941fa49d748b7521212a639fd7de4264b7f0f1e35cd6130f020007ffd2f663aab02a93390b65a8aa757e27bb52
|
7
|
+
data.tar.gz: 6ef11e9a97363506e57ed0c559300739896bc922a7ddfff6d0d140a1e5403e373503ff9094dc193d82e76f46478ea111cc0a8e43c1b2639d23c19279cbeebd19
|
data/lib/platformx.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require "platformx/version"
|
2
|
-
require "platformx/configuration"
|
3
2
|
require "platformx/auth"
|
4
3
|
require "platformx/form"
|
5
4
|
require "platformx/layout"
|
@@ -7,11 +6,10 @@ require "platformx/date"
|
|
7
6
|
require "platformx/notify"
|
8
7
|
require "platformx/mail"
|
9
8
|
require "platformx/stripe"
|
10
|
-
require "platformx/google_map"
|
11
|
-
require "platformx/instagram"
|
12
9
|
require "platformx/faker"
|
13
10
|
require "platformx/pdf"
|
14
11
|
require "platformx/text"
|
12
|
+
require "platformx/aws"
|
15
13
|
|
16
14
|
########################### Require Gems ############################
|
17
15
|
require "sinatra/base"
|
@@ -34,11 +32,12 @@ require "rack-ssl-enforcer"
|
|
34
32
|
require "bugsnag"
|
35
33
|
require "slugify"
|
36
34
|
require "data_mapper"
|
35
|
+
require "dm-validations"
|
37
36
|
require "securerandom"
|
38
|
-
require "geokit"
|
39
37
|
require "faker"
|
40
38
|
require "uuidtools"
|
41
39
|
require "net/ssh"
|
40
|
+
require "fog"
|
42
41
|
|
43
42
|
module Platformx
|
44
43
|
|
@@ -46,18 +45,67 @@ module Platformx
|
|
46
45
|
attr_accessor :configuration
|
47
46
|
end
|
48
47
|
|
49
|
-
def self.
|
50
|
-
|
48
|
+
def self.configure
|
49
|
+
self.configuration ||= Configuration.new
|
50
|
+
yield(configuration)
|
51
51
|
end
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
53
|
+
########################################################
|
54
|
+
#
|
55
|
+
# Start Configuration Class
|
56
|
+
#
|
57
|
+
########################################################
|
58
|
+
class Configuration
|
59
|
+
|
60
|
+
# For Bugsnag
|
61
|
+
attr_accessor :bugsnag_api_key
|
62
|
+
|
63
|
+
# X_mail
|
64
|
+
attr_accessor :mail_from
|
65
|
+
attr_accessor :mail_address
|
66
|
+
attr_accessor :mail_port
|
67
|
+
attr_accessor :mail_domain
|
68
|
+
attr_accessor :mail_user_name
|
69
|
+
attr_accessor :mail_password
|
70
|
+
attr_accessor :mail_authentication
|
71
|
+
|
72
|
+
# For AWS/Fog
|
73
|
+
attr_accessor :aws_bucket
|
74
|
+
attr_accessor :aws_access_key_id
|
75
|
+
attr_accessor :aws_secret_access_key
|
76
|
+
attr_accessor :aws_region
|
77
|
+
|
78
|
+
def initialize
|
79
|
+
# Bugsnag:
|
80
|
+
@bugsnag_api_key = ""
|
81
|
+
|
82
|
+
# X_mail
|
83
|
+
@mail_from = ""
|
84
|
+
@mail_address = "smtp.mailgun.org"
|
85
|
+
@mail_port = "587"
|
86
|
+
@mail_domain = "smtp.mailgun.org"
|
87
|
+
@mail_user_name = ""
|
88
|
+
@mail_password = ""
|
89
|
+
@mail_authentication = "plain"
|
90
|
+
|
91
|
+
# For AWS/Fog
|
92
|
+
@aws_bucket = ""
|
93
|
+
@aws_secret_access_key = ""
|
94
|
+
@aws_access_key_id = ""
|
95
|
+
@aws_region = ""
|
96
|
+
end
|
56
97
|
|
57
|
-
def self.configure
|
58
|
-
yield(configuration)
|
59
98
|
end
|
60
99
|
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
########################################################
|
104
|
+
#
|
105
|
+
# Start Sinatra Module
|
106
|
+
#
|
107
|
+
########################################################
|
108
|
+
|
61
109
|
module Sinatra
|
62
110
|
|
63
111
|
def self.registered(app)
|
@@ -67,19 +115,19 @@ module Platformx
|
|
67
115
|
app.helpers Platformx::FormHelpers
|
68
116
|
app.helpers Platformx::LayoutHelpers
|
69
117
|
app.helpers Platformx::NotifyHelpers
|
70
|
-
app.helpers Platformx::GooglemapHelpers
|
71
|
-
app.helpers Platformx::InstagramHelpers
|
72
118
|
app.helpers Platformx::FakerHelpers
|
73
|
-
app.helpers Platformx::TextHelpers
|
119
|
+
app.helpers Platformx::TextHelpers
|
120
|
+
app.helpers Platformx::PdfHelpers
|
121
|
+
app.helpers Platformx::S3Helpers
|
74
122
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
123
|
+
# #BugSnag
|
124
|
+
# if Platformx.configuration.bugsnag_api_key != ""
|
125
|
+
# app.Bugsnag.configure do |config|
|
126
|
+
# config.api_key = Platformx.configuration.bugsnag_api_key
|
127
|
+
# end
|
128
|
+
# app.use Bugsnag::Rack
|
129
|
+
# app.enable :raise_errors
|
130
|
+
# end
|
83
131
|
|
84
132
|
|
85
133
|
# Configure Better Errors
|
@@ -93,9 +141,6 @@ module Platformx
|
|
93
141
|
app.use Rack::Protection
|
94
142
|
end
|
95
143
|
|
96
|
-
#require_relative 'platformx/omniauth_routes.rb'
|
97
|
-
|
98
|
-
|
99
144
|
end
|
100
145
|
|
101
146
|
end # End Sinatra
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module Platformx
|
2
|
+
module S3Helpers
|
3
|
+
########################################################
|
4
|
+
#
|
5
|
+
# Set Up Connection
|
6
|
+
#
|
7
|
+
########################################################
|
8
|
+
def x_s3_init()
|
9
|
+
|
10
|
+
connection = Fog::Storage.new({
|
11
|
+
:provider => 'AWS',
|
12
|
+
:region => Platformx.configuration.aws_region,
|
13
|
+
:aws_access_key_id => Platformx.configuration.aws_access_key_id,
|
14
|
+
:aws_secret_access_key => Platformx.configuration.aws_secret_access_key
|
15
|
+
})
|
16
|
+
return connection
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
########################################################
|
21
|
+
#
|
22
|
+
# Upload to S3
|
23
|
+
#
|
24
|
+
########################################################
|
25
|
+
def x_s3_upload(new_filename: "", file: "", bucket: "#{Platformx.configuration.aws_bucket}", path: "")
|
26
|
+
|
27
|
+
|
28
|
+
################# Init S3 #################
|
29
|
+
connection = x_s3_init
|
30
|
+
|
31
|
+
|
32
|
+
################# Set Bucket #################
|
33
|
+
bucket = connection.directories.create(key: "#{bucket}/#{path}", public: false)
|
34
|
+
|
35
|
+
# upload that resume
|
36
|
+
file = bucket.files.create(
|
37
|
+
:key => "#{new_filename}",
|
38
|
+
:body => open(file),
|
39
|
+
:public => false
|
40
|
+
)
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
########################################################
|
46
|
+
#
|
47
|
+
# Download from S3
|
48
|
+
#
|
49
|
+
########################################################
|
50
|
+
def x_s3_get_link(key: "", bucket:"", bucket_path:"", verbose: false)
|
51
|
+
|
52
|
+
connection = x_s3_init
|
53
|
+
expiry = Time.now.to_i + 604800
|
54
|
+
connection.directories.new(:key => "#{bucket}").files.new(:key => "#{bucket_path}/#{key}").url(expiry)
|
55
|
+
|
56
|
+
if verbose == true
|
57
|
+
# returns more information about file from s3
|
58
|
+
# directory = connection.directories.get("files.myclocktower.com")
|
59
|
+
# file = directory.files.get("support/#{support_id}/#{key}")
|
60
|
+
#return file.url(expiry)
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
########################################################
|
66
|
+
#
|
67
|
+
# End
|
68
|
+
#
|
69
|
+
########################################################
|
70
|
+
end
|
71
|
+
end
|
data/lib/platformx/form.rb
CHANGED
@@ -172,6 +172,94 @@ EOS
|
|
172
172
|
end
|
173
173
|
|
174
174
|
|
175
|
+
########################################################
|
176
|
+
#
|
177
|
+
# Money input helper
|
178
|
+
#
|
179
|
+
########################################################
|
180
|
+
def x_money(id: "", name: "", value: "", label: "", required: false, placeholder: "", mask: "", maxlength: "")
|
181
|
+
|
182
|
+
id = name unless id != ""
|
183
|
+
if required
|
184
|
+
if label != ""
|
185
|
+
required_output = '<sup class="text-danger">*</sup>'
|
186
|
+
else
|
187
|
+
required_output = ''
|
188
|
+
end
|
189
|
+
required_tag = 'required="required"'
|
190
|
+
else
|
191
|
+
required_output = ""
|
192
|
+
required_tag = ""
|
193
|
+
end
|
194
|
+
|
195
|
+
if label != ""
|
196
|
+
label = "<label>#{label}</label>"
|
197
|
+
end
|
198
|
+
|
199
|
+
if maxlength != ""
|
200
|
+
maxlength = "maxlength='#{maxlength}'"
|
201
|
+
end
|
202
|
+
|
203
|
+
if mask != ""
|
204
|
+
mask = "data-masked-input='#{mask}'"
|
205
|
+
end
|
206
|
+
|
207
|
+
tb = <<EOS
|
208
|
+
<div class="form-group">
|
209
|
+
<div class="input-group">
|
210
|
+
<span class="input-group-addon">$</span>
|
211
|
+
#{label}#{required_output}
|
212
|
+
<input type="text" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" placeholder="#{placeholder}" data-parsley-type="number" #{required_tag} #{mask} #{maxlength} />
|
213
|
+
</div>
|
214
|
+
</div>
|
215
|
+
EOS
|
216
|
+
return tb
|
217
|
+
end
|
218
|
+
|
219
|
+
########################################################
|
220
|
+
#
|
221
|
+
# Percentage input helper
|
222
|
+
#
|
223
|
+
########################################################
|
224
|
+
def x_percentage(id: "", name: "", value: "", label: "", required: false, placeholder: "", mask: "", maxlength: "")
|
225
|
+
|
226
|
+
id = name unless id != ""
|
227
|
+
if required
|
228
|
+
if label != ""
|
229
|
+
required_output = '<sup class="text-danger">*</sup>'
|
230
|
+
else
|
231
|
+
required_output = ''
|
232
|
+
end
|
233
|
+
required_tag = 'required="required"'
|
234
|
+
else
|
235
|
+
required_output = ""
|
236
|
+
required_tag = ""
|
237
|
+
end
|
238
|
+
|
239
|
+
if label != ""
|
240
|
+
label = "<label>#{label}</label>"
|
241
|
+
end
|
242
|
+
|
243
|
+
if maxlength != ""
|
244
|
+
maxlength = "maxlength='#{maxlength}'"
|
245
|
+
end
|
246
|
+
|
247
|
+
if mask != ""
|
248
|
+
mask = "data-masked-input='#{mask}'"
|
249
|
+
end
|
250
|
+
|
251
|
+
tb = <<EOS
|
252
|
+
<div class="form-group">
|
253
|
+
<div class="input-group">
|
254
|
+
<span class="input-group-addon">%</span>
|
255
|
+
#{label}#{required_output}
|
256
|
+
<input type="text" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" placeholder="#{placeholder}" data-parsley-type="number" #{required_tag} #{mask} #{maxlength} />
|
257
|
+
</div>
|
258
|
+
</div>
|
259
|
+
EOS
|
260
|
+
return tb
|
261
|
+
end
|
262
|
+
|
175
263
|
########################################################
|
176
264
|
#
|
177
265
|
# Number input helper
|
data/lib/platformx/pdf.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
module Platformx
|
2
|
+
module PdfHelpers
|
3
|
+
########################################################
|
4
|
+
#
|
5
|
+
# PDF's
|
6
|
+
#
|
7
|
+
########################################################
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
################# Fill PDF #################
|
12
|
+
def x_fill_pdf(source_pdf: "", target_file_path: "", new_pdf_name: "", pdf_variables: {}, flatten: true)
|
13
|
+
# include pdftk
|
14
|
+
pdftk = PdfForms.new(settings.pdftk_path)
|
15
|
+
|
16
|
+
#find out the field names that are present in form.pdf
|
17
|
+
#pdftk.get_field_names 'pdfs/cover_opt.pdf'
|
18
|
+
#pdf_name = Time.new.to_i
|
19
|
+
pdf_name = @proposal.id
|
20
|
+
|
21
|
+
#Fill Out the forms
|
22
|
+
pdftk.fill_form source_pdf, "#{target_file_path}/#{pdf_name}",
|
23
|
+
{
|
24
|
+
Client: @proposal.client,
|
25
|
+
proposalDate: "#{format_date(Date.today)}",
|
26
|
+
expires: format_date(1.month.from_now)
|
27
|
+
},
|
28
|
+
:flatten => flatten
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
########################################################
|
37
|
+
#
|
38
|
+
# End Class
|
39
|
+
#
|
40
|
+
########################################################
|
41
|
+
end
|
42
|
+
end
|
data/lib/platformx/version.rb
CHANGED
data/platformx.gemspec
CHANGED
@@ -41,8 +41,9 @@ Gem::Specification.new do |spec|
|
|
41
41
|
spec.add_dependency "sinatra-flash"
|
42
42
|
spec.add_dependency "data_mapper"
|
43
43
|
spec.add_dependency "dm-mysql-adapter"
|
44
|
-
spec.add_dependency "
|
44
|
+
spec.add_dependency "dm-validations"
|
45
45
|
spec.add_dependency "faker"
|
46
46
|
spec.add_dependency "uuidtools"
|
47
47
|
spec.add_dependency "net-ssh"
|
48
|
+
spec.add_dependency "fog"
|
48
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: platformx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- timmushen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -305,7 +305,7 @@ dependencies:
|
|
305
305
|
- !ruby/object:Gem::Version
|
306
306
|
version: '0'
|
307
307
|
- !ruby/object:Gem::Dependency
|
308
|
-
name:
|
308
|
+
name: dm-validations
|
309
309
|
requirement: !ruby/object:Gem::Requirement
|
310
310
|
requirements:
|
311
311
|
- - ">="
|
@@ -360,6 +360,20 @@ dependencies:
|
|
360
360
|
- - ">="
|
361
361
|
- !ruby/object:Gem::Version
|
362
362
|
version: '0'
|
363
|
+
- !ruby/object:Gem::Dependency
|
364
|
+
name: fog
|
365
|
+
requirement: !ruby/object:Gem::Requirement
|
366
|
+
requirements:
|
367
|
+
- - ">="
|
368
|
+
- !ruby/object:Gem::Version
|
369
|
+
version: '0'
|
370
|
+
type: :runtime
|
371
|
+
prerelease: false
|
372
|
+
version_requirements: !ruby/object:Gem::Requirement
|
373
|
+
requirements:
|
374
|
+
- - ">="
|
375
|
+
- !ruby/object:Gem::Version
|
376
|
+
version: '0'
|
363
377
|
description: PlatformX Gem for PlatformX
|
364
378
|
email:
|
365
379
|
- timmushen@clocktowermedia.com
|
@@ -375,13 +389,10 @@ files:
|
|
375
389
|
- Rakefile
|
376
390
|
- lib/platformx.rb
|
377
391
|
- lib/platformx/auth.rb
|
378
|
-
- lib/platformx/
|
392
|
+
- lib/platformx/aws.rb
|
379
393
|
- lib/platformx/date.rb
|
380
|
-
- lib/platformx/facebook.rb
|
381
394
|
- lib/platformx/faker.rb
|
382
395
|
- lib/platformx/form.rb
|
383
|
-
- lib/platformx/google_map.rb
|
384
|
-
- lib/platformx/instagram.rb
|
385
396
|
- lib/platformx/layout.rb
|
386
397
|
- lib/platformx/mail.rb
|
387
398
|
- lib/platformx/notify.rb
|
@@ -389,10 +400,7 @@ files:
|
|
389
400
|
- lib/platformx/omniauth_routes.rb
|
390
401
|
- lib/platformx/pdf.rb
|
391
402
|
- lib/platformx/stripe.rb
|
392
|
-
- lib/platformx/template.rb
|
393
403
|
- lib/platformx/text.rb
|
394
|
-
- lib/platformx/timeline.rb
|
395
|
-
- lib/platformx/twitter.rb
|
396
404
|
- lib/platformx/version.rb
|
397
405
|
- platformx.gemspec
|
398
406
|
- spec/layout_spec.rb
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Platformx
|
2
|
-
class Configuration
|
3
|
-
|
4
|
-
attr_accessor :bugsnag_api_key
|
5
|
-
attr_accessor :mail_from
|
6
|
-
attr_accessor :mail_address
|
7
|
-
attr_accessor :mail_port
|
8
|
-
attr_accessor :mail_domain
|
9
|
-
attr_accessor :mail_user_name
|
10
|
-
attr_accessor :mail_password
|
11
|
-
attr_accessor :mail_authentication
|
12
|
-
|
13
|
-
|
14
|
-
def initialize
|
15
|
-
#Example:
|
16
|
-
@bugsnag_api_key = ""
|
17
|
-
@mail_from = ""
|
18
|
-
@mail_address = "smtp.mailgun.org"
|
19
|
-
@mail_port = "587"
|
20
|
-
@mail_domain = "smtp.mailgun.org"
|
21
|
-
@mail_user_name = ""
|
22
|
-
@mail_password = ""
|
23
|
-
@mail_authentication = "plain"
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
|
31
|
-
# Platformx.configure do |config|
|
32
|
-
# config.access_key = ''
|
33
|
-
# config.secret_key = ''
|
34
|
-
# config.personal_key = ''
|
35
|
-
# end
|
data/lib/platformx/facebook.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
module Platformx
|
2
|
-
module FacebookHelpers
|
3
|
-
########################################################
|
4
|
-
#
|
5
|
-
# Start Helpers
|
6
|
-
#
|
7
|
-
########################################################
|
8
|
-
|
9
|
-
|
10
|
-
########################################################
|
11
|
-
#
|
12
|
-
# End
|
13
|
-
#
|
14
|
-
########################################################
|
15
|
-
end
|
16
|
-
end
|
data/lib/platformx/google_map.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
module Platformx
|
2
|
-
module GooglemapHelpers
|
3
|
-
########################################################
|
4
|
-
#
|
5
|
-
# Start Helpers
|
6
|
-
#
|
7
|
-
########################################################
|
8
|
-
|
9
|
-
# Start Google Map
|
10
|
-
def x_google_map(css: "", id: "map", address: "", address_2:"", city:"", state:"", zip:"", zoom:"12", height: "400px", width: "520px")
|
11
|
-
|
12
|
-
|
13
|
-
geo=Geokit::Geocoders::GoogleGeocoder.geocode "#{address} #{address_2}, #{city} #{state} #{zip}"
|
14
|
-
#Get Lat & long
|
15
|
-
|
16
|
-
cb = <<EOS
|
17
|
-
<script src="https://maps.googleapis.com/maps/api/js"></script>
|
18
|
-
<script>
|
19
|
-
function initialize() {
|
20
|
-
var mapCanvas = document.getElementById('#{id}');
|
21
|
-
var mapOptions = {
|
22
|
-
center: new google.maps.LatLng(#{geo.ll}),
|
23
|
-
zoom: #{zoom},
|
24
|
-
mapTypeId: google.maps.MapTypeId.ROADMAP
|
25
|
-
}
|
26
|
-
var map = new google.maps.Map(mapCanvas, mapOptions)
|
27
|
-
}
|
28
|
-
google.maps.event.addDomListener(window, 'load', initialize);
|
29
|
-
</script>
|
30
|
-
|
31
|
-
<div id="#{id}" class="#{css}"></div>
|
32
|
-
|
33
|
-
EOS
|
34
|
-
|
35
|
-
end
|
36
|
-
########################################################
|
37
|
-
#
|
38
|
-
# End
|
39
|
-
#
|
40
|
-
########################################################
|
41
|
-
end
|
42
|
-
end
|
data/lib/platformx/instagram.rb
DELETED
@@ -1,115 +0,0 @@
|
|
1
|
-
module Platformx
|
2
|
-
module InstagramHelpers
|
3
|
-
########################################################
|
4
|
-
#
|
5
|
-
# Start Helpers
|
6
|
-
#
|
7
|
-
########################################################
|
8
|
-
|
9
|
-
# def self.init
|
10
|
-
# Instagram.configure do |config|
|
11
|
-
# config.client_id = Platformx.configuration.instagram_key
|
12
|
-
# config.client_secret = Platformx.configuration.instagram_secret
|
13
|
-
# # For secured endpoints only
|
14
|
-
# #config.client_ips = '<Comma separated list of IPs>'
|
15
|
-
# end
|
16
|
-
# @client = Instagram.client(access_token: access_token)
|
17
|
-
|
18
|
-
# return @client
|
19
|
-
# end
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
########################### Get Recent Feed ############################
|
24
|
-
|
25
|
-
def x_instagram_recent(access_token: "")
|
26
|
-
@client = Instagram.client(access_token: access_token)
|
27
|
-
user = @client.user
|
28
|
-
|
29
|
-
@feed = []
|
30
|
-
|
31
|
-
for media_item in @client.user_recent_media
|
32
|
-
|
33
|
-
item = {
|
34
|
-
:thumb_url => media_item.images.thumbnail.url,
|
35
|
-
:id => media_item.id,
|
36
|
-
:likes => media_item.likes[:count]
|
37
|
-
}
|
38
|
-
|
39
|
-
@feed.push(item)
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
return @feed
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
########################### Search by Location ID ############################
|
48
|
-
|
49
|
-
# def x_instagram_by_location(access_token: "", location_id: "")
|
50
|
-
# html = "<h1>Media</h1>"
|
51
|
-
|
52
|
-
# for media_item in @client.location_recent_media(location_id)
|
53
|
-
# html << "<img src='#{media_item.images.thumbnail.url}'>"
|
54
|
-
# end
|
55
|
-
# return html
|
56
|
-
|
57
|
-
# end
|
58
|
-
|
59
|
-
# ########################### Search By Lat/Long ############################
|
60
|
-
# def x_instagram_by_lat_long(access_token: "", latitude: "", longitude: "")
|
61
|
-
# html = "<h1>Get a list of media close to a given latitude and longitude</h1>"
|
62
|
-
|
63
|
-
# for media_item in @client.media_search(latitude,longitude)
|
64
|
-
# html << "<img src='#{media_item.images.thumbnail.url}'>"
|
65
|
-
# end
|
66
|
-
|
67
|
-
# return html
|
68
|
-
# end
|
69
|
-
|
70
|
-
# ########################### Nearby Locations ############################
|
71
|
-
# def x_instagram_nearby_locations(access_token: "", latitude: "", longitude: "", radius: "5000")
|
72
|
-
# html = "<h1>Search for a location by lat/lng with a radius of #{radius}m</h1>"
|
73
|
-
# for location in @client.location_search(latitude,longitude,radius)
|
74
|
-
# html << "<li> #{location.name} <a href='https://www.google.com/maps/preview/@#{location.latitude},#{location.longitude},19z'>Map</a></li>"
|
75
|
-
# end
|
76
|
-
# return html
|
77
|
-
|
78
|
-
# end
|
79
|
-
|
80
|
-
# ########################### Search by tag ############################
|
81
|
-
# def x_instagram_tag(access_token: "", tag: "")
|
82
|
-
# html = "<h1>Search for #{tag}</h1>"
|
83
|
-
# tags = @client.tag_search(tag)
|
84
|
-
# html << "<h2>Tag Name = #{tags[0].name}. Media Count = #{tags[0].media_count}. </h2><br/><br/>"
|
85
|
-
# for media_item in @client.tag_recent_media(tags[0].name)
|
86
|
-
# html << "<img src='#{media_item.images.thumbnail.url}'>"
|
87
|
-
# end
|
88
|
-
# return html
|
89
|
-
|
90
|
-
# end
|
91
|
-
|
92
|
-
# ########################### User Search ############################
|
93
|
-
# def x_instagram_user(access_token: "", user: "")
|
94
|
-
# html = "<h1>Search for #{user}</h1>"
|
95
|
-
# for user in @client.user_search(user)
|
96
|
-
# html << "<li> <img src='#{user.profile_picture}'> #{user.username} #{user.full_name}</li>"
|
97
|
-
# end
|
98
|
-
# return html
|
99
|
-
# end
|
100
|
-
|
101
|
-
# ########################### Limits ############################
|
102
|
-
# def x_instagram_limits(access_token: "")
|
103
|
-
# html = "<h1/>View API Rate Limit and calls remaining</h1>"
|
104
|
-
# response = @client.utils_raw_response
|
105
|
-
# html << "Rate Limit = #{response.headers[:x_ratelimit_limit]}. <br/>Calls Remaining = #{response.headers[:x_ratelimit_remaining]}"
|
106
|
-
|
107
|
-
# return html
|
108
|
-
# end
|
109
|
-
########################################################
|
110
|
-
#
|
111
|
-
# End
|
112
|
-
#
|
113
|
-
########################################################
|
114
|
-
end
|
115
|
-
end
|
data/lib/platformx/template.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
module Platformx
|
2
|
-
module InstagramHelpers
|
3
|
-
########################################################
|
4
|
-
#
|
5
|
-
# Start Helpers
|
6
|
-
#
|
7
|
-
########################################################
|
8
|
-
|
9
|
-
|
10
|
-
########################################################
|
11
|
-
#
|
12
|
-
# End
|
13
|
-
#
|
14
|
-
########################################################
|
15
|
-
end
|
16
|
-
end
|
data/lib/platformx/timeline.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
module Platformx
|
2
|
-
module TimelineHelpers
|
3
|
-
########################################################
|
4
|
-
#
|
5
|
-
# Start Helpers
|
6
|
-
#
|
7
|
-
########################################################
|
8
|
-
########################### Init ############################
|
9
|
-
def x_timeline(left_aligned: false, items: array)
|
10
|
-
|
11
|
-
timeline_items =""
|
12
|
-
total_items = items.count
|
13
|
-
|
14
|
-
items.each_with_index do |item, index|
|
15
|
-
|
16
|
-
inverted = ""
|
17
|
-
if !left_aligned == false || index.even?
|
18
|
-
inverted = "inverted"
|
19
|
-
end
|
20
|
-
|
21
|
-
item =<<EOS
|
22
|
-
<li class="#{inverted}">
|
23
|
-
<div class="timeline-badge"><i class="fa #{item[:icon]}"></i></div>
|
24
|
-
<div class="timeline-panel">
|
25
|
-
<div class="timeline-heading">
|
26
|
-
<h4 class="timeline-title">#{item[:title]}</h4>
|
27
|
-
<p><small class="text-muted">#{item[:time]}</small></p>
|
28
|
-
</div>
|
29
|
-
<div class="timeline-body">
|
30
|
-
#{item[:body]}
|
31
|
-
</div>
|
32
|
-
</div>
|
33
|
-
</li>
|
34
|
-
EOS
|
35
|
-
timeline_items << item
|
36
|
-
end
|
37
|
-
|
38
|
-
timeline =<<EOS
|
39
|
-
<div class="timeline_wrapper">
|
40
|
-
<ul class="timeline">
|
41
|
-
#{timeline_items}
|
42
|
-
</ul>
|
43
|
-
</div>
|
44
|
-
EOS
|
45
|
-
|
46
|
-
return timeline
|
47
|
-
end
|
48
|
-
|
49
|
-
########################################################
|
50
|
-
#
|
51
|
-
# End
|
52
|
-
#
|
53
|
-
########################################################
|
54
|
-
end
|
55
|
-
end
|
data/lib/platformx/twitter.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
module Platformx
|
2
|
-
module Twitter
|
3
|
-
########################################################
|
4
|
-
#
|
5
|
-
# Start Helpers
|
6
|
-
#
|
7
|
-
########################################################
|
8
|
-
|
9
|
-
########################### Init ############################
|
10
|
-
def x_twitter_init(access_token="", access_token_secret="")
|
11
|
-
client = Twitter::REST::Client.new do |config|
|
12
|
-
config.access_token = access_token
|
13
|
-
config.access_token_secret = access_token_secret
|
14
|
-
config.consumer_key = Platformx.configuration.twitter_consumer_key
|
15
|
-
config.consumer_secret = Platformx.configuration.twitter_consumer_secret
|
16
|
-
end
|
17
|
-
return client
|
18
|
-
end
|
19
|
-
|
20
|
-
########################### Post ############################
|
21
|
-
def x_twitter_post(access_token: "", access_token_secret:"", tweet:"", place_id: "", lat: "", long: "", display_coordinates: "")
|
22
|
-
client = x_twitter_init(access_token, access_token_secret)
|
23
|
-
client.update(tweet, place_id: place_id, lat: lat, long: long, display_coordinates: display_coordinates)
|
24
|
-
return client
|
25
|
-
end
|
26
|
-
|
27
|
-
########################### Post with Media ############################
|
28
|
-
def x_twitter_post_media(access_token: "", access_token_secret:"", tweet:"", place_id: "", lat: "", long: "", display_coordinates: "", media: "")
|
29
|
-
client = x_twitter_init(access_token, access_token_secret)
|
30
|
-
client.update_with_media(tweet, media, place_id: "", lat: "", long: "", display_coordinates: "")
|
31
|
-
return client
|
32
|
-
end
|
33
|
-
|
34
|
-
########################### Get Tweet ############################
|
35
|
-
def x_twitter_tweet(access_token: "", access_token_secret:"", tweet: "")
|
36
|
-
client = x_twitter_init(access_token, access_token_secret)
|
37
|
-
client.status(tweet)
|
38
|
-
return client
|
39
|
-
end
|
40
|
-
|
41
|
-
########################################################
|
42
|
-
#
|
43
|
-
# End
|
44
|
-
#
|
45
|
-
########################################################
|
46
|
-
end
|
47
|
-
end
|