pure360 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ require "pure360/version"
2
+ require "pure360/client"
3
+
4
+ module Pure360
5
+ end
@@ -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
@@ -0,0 +1,3 @@
1
+ module Pure360
2
+ VERSION = "0.0.1"
3
+ 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: []