pure360 0.0.1
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/lib/pure360.rb +5 -0
- data/lib/pure360/client.rb +54 -0
- data/lib/pure360/version.rb +3 -0
- metadata +97 -0
data/lib/pure360.rb
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require 'uri'
|
|
2
|
+
require 'net/http'
|
|
3
|
+
require 'net/https'
|
|
4
|
+
|
|
5
|
+
module Pure360
|
|
6
|
+
class Client
|
|
7
|
+
def initialize(params)
|
|
8
|
+
@params = {}
|
|
9
|
+
|
|
10
|
+
@params[:endpoint] = URI.parse(params.fetch(:endpoint))
|
|
11
|
+
@params[:listName] = params.fetch(:list)
|
|
12
|
+
@params[:accName] = params.fetch(:account)
|
|
13
|
+
@params[:fullEmailValidationInd] = params.fetch(:full_email_validation, "N")
|
|
14
|
+
@params[:doubleOptin] = params.fetch(:double_opt_in, "false")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def subscribe(subscription_params)
|
|
18
|
+
ensure_email!(subscription_params.fetch(:email))
|
|
19
|
+
|
|
20
|
+
response = post(subscription_params)
|
|
21
|
+
|
|
22
|
+
response.body
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
def ensure_email!(email)
|
|
27
|
+
raise "Invalid Email" unless valid_email?(email)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def valid_email?(email)
|
|
31
|
+
return false if email.empty? or email.nil?
|
|
32
|
+
|
|
33
|
+
true
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def post(subscription_params)
|
|
37
|
+
req = Net::HTTP::Post.new(@params[:endpoint].path)
|
|
38
|
+
req.set_form_data(payload(subscription_params))
|
|
39
|
+
http.request(req)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def http
|
|
43
|
+
https = Net::HTTP.new(@params[:endpoint].host, @params[:endpoint].port)
|
|
44
|
+
https.use_ssl = true
|
|
45
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
|
46
|
+
|
|
47
|
+
https
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def payload(subscription_args)
|
|
51
|
+
@params.merge subscription_args
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: pure360
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- Emile
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2014-05-01 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: bundler
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
18
|
+
requirements:
|
|
19
|
+
- - ~>
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '1.3'
|
|
22
|
+
type: :development
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ~>
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '1.3'
|
|
30
|
+
- !ruby/object:Gem::Dependency
|
|
31
|
+
name: rake
|
|
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: rspec
|
|
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
|
+
description: Interact with the Pure360 email marketing platform
|
|
63
|
+
email:
|
|
64
|
+
- emile.swarts123@gmail.com
|
|
65
|
+
executables: []
|
|
66
|
+
extensions: []
|
|
67
|
+
extra_rdoc_files: []
|
|
68
|
+
files:
|
|
69
|
+
- lib/pure360/client.rb
|
|
70
|
+
- lib/pure360/version.rb
|
|
71
|
+
- lib/pure360.rb
|
|
72
|
+
homepage: https://github.com/madebymade/pure360
|
|
73
|
+
licenses:
|
|
74
|
+
- MIT
|
|
75
|
+
post_install_message:
|
|
76
|
+
rdoc_options: []
|
|
77
|
+
require_paths:
|
|
78
|
+
- lib
|
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
|
+
none: false
|
|
81
|
+
requirements:
|
|
82
|
+
- - ! '>='
|
|
83
|
+
- !ruby/object:Gem::Version
|
|
84
|
+
version: '0'
|
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
|
+
none: false
|
|
87
|
+
requirements:
|
|
88
|
+
- - ! '>='
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '0'
|
|
91
|
+
requirements: []
|
|
92
|
+
rubyforge_project:
|
|
93
|
+
rubygems_version: 1.8.23
|
|
94
|
+
signing_key:
|
|
95
|
+
specification_version: 3
|
|
96
|
+
summary: A wrapper tailored for interacting with the Pure360 email marketing platform
|
|
97
|
+
test_files: []
|