leadtune 0.0.6 → 0.0.7

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.
@@ -63,6 +63,14 @@ module Leadtune
63
63
  new(options_and_factors, &block).put
64
64
  end
65
65
 
66
+ # Delete a prospect from the LeadTune Appraiser service.
67
+ #
68
+ # Raises a Leadtune::LeadtuneError if a non-2XX response is received.
69
+
70
+ def self.delete(options_and_factors={}, &block)
71
+ new(options_and_factors, &block).delete
72
+ end
73
+
66
74
  # Get a prospect from the LeadTune Appraiser service.
67
75
  #
68
76
  # Raises a Leadtune::LeadtuneError if a non-2XX response is received.
@@ -93,6 +101,16 @@ module Leadtune
93
101
  self
94
102
  end
95
103
 
104
+ # Delete a prospect from the LeadTune Appraiser service.
105
+ #
106
+ # Raises a Leadtune::LeadtuneError if a non-2XX response is received.
107
+
108
+ def delete
109
+ json = @rest.delete(post_data)
110
+ parse_response(json) unless json.nil?
111
+ self
112
+ end
113
+
96
114
  # The unique +decision_id+ for this prospect.
97
115
 
98
116
  def decision_id
@@ -184,8 +202,9 @@ module Leadtune
184
202
  CURL_OPTIONS = ["username", "password", "timeout", "leadtune_host",] #:nodoc:
185
203
 
186
204
  def post_data #:nodoc:
187
- @factors.merge("decision" => @decision,
188
- "organization" => organization)
205
+ f = @factors.merge("organization" => organization)
206
+ f.merge!("decision" => @decision) if @decision
207
+ f
189
208
  end
190
209
 
191
210
  def load_options_and_factors(options) #:nodoc:
data/lib/leadtune/rest.rb CHANGED
@@ -39,6 +39,13 @@ module Leadtune
39
39
  parse_response(curl.body_str)
40
40
  end
41
41
 
42
+ def delete(post_data)
43
+ @post_data = post_data
44
+ curl = build_curl_easy_object_delete
45
+ curl.http("DELETE")
46
+ parse_response(curl.body_str) unless curl.body_str.empty?
47
+ end
48
+
42
49
 
43
50
  private
44
51
 
@@ -64,7 +71,7 @@ module Leadtune
64
71
 
65
72
  def build_curl_easy_object_post #:nodoc:
66
73
  build_curl_easy_object do |curl|
67
- curl.url = URI.join(@config.leadtune_host, "/prospects").to_s
74
+ curl.url = build_post_url
68
75
  curl.post_body = @post_data.to_json
69
76
  $stderr.puts curl.post_body if curl.verbose?
70
77
  end
@@ -73,8 +80,13 @@ module Leadtune
73
80
  def build_curl_easy_object_put #:nodoc:
74
81
  build_curl_easy_object do |curl|
75
82
  curl.url = build_put_url
76
- curl.put_data = @post_data.to_json
77
- $stderr.puts curl.post_body if curl.verbose?
83
+ curl.post_body = @post_data.to_json
84
+ end
85
+ end
86
+
87
+ def build_curl_easy_object_delete #:nodoc:
88
+ build_curl_easy_object do |curl|
89
+ curl.url = build_get_url
78
90
  end
79
91
  end
80
92
 
@@ -84,6 +96,10 @@ module Leadtune
84
96
  end
85
97
  end
86
98
 
99
+ def build_post_url #:nodoc:
100
+ URI.join(@config.leadtune_host, "/prospects").to_s
101
+ end
102
+
87
103
  def build_get_url #:nodoc:
88
104
  params = {:organization => @post_data["organization"],}
89
105
  if @post_data["prospect_ref"]
@@ -5,5 +5,5 @@
5
5
  # Copyright 2010 LeadTune LLC
6
6
 
7
7
  module Leadtune
8
- VERSION = "0.0.6"
8
+ VERSION = "0.0.7"
9
9
  end
data/spec/checks.bash ADDED
@@ -0,0 +1,37 @@
1
+ #!/bin/bash
2
+
3
+ # LeadTune API Ruby Gem
4
+ #
5
+ # http://github.com/leadtune/leadtune-ruby
6
+ # Eric Wollesen (mailto:devs@leadtune.com)
7
+ # Copyright 2010 LeadTune LLC
8
+
9
+ # this is just a quick script to check a few prerequisites
10
+
11
+ which curl > /dev/null
12
+ if [ $? -ne 0 ]; then
13
+ echo "curl binary not found"
14
+ exit 1
15
+ fi
16
+
17
+ curl -V | grep -qi '\bssl\b'
18
+ if [ $? -ne 0 ]; then
19
+ echo "curl does not support ssl"
20
+ exit 1
21
+ fi
22
+
23
+ host appraiser.leadtune.com > /dev/null
24
+ if [ $? -ne 0 ]; then
25
+ echo "could not resolve appraiser.leadtune.com"
26
+ exit 1
27
+ fi
28
+
29
+ host sandbox-appraiser.leadtune.com > /dev/null
30
+ if [ $? -ne 0 ]; then
31
+ echo "could not resolve sandbox-appraiser.leadtune.com"
32
+ exit 1
33
+ fi
34
+
35
+
36
+ echo Everything looks good.
37
+ exit 0
data/spec/delete.rb ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # LeadTune API Ruby Gem
4
+ #
5
+ # http://github.com/leadtune/leadtune-ruby
6
+ # Eric Wollesen (mailto:devs@leadtune.com)
7
+ # Copyright 2010 LeadTune LLC
8
+
9
+ require "rubygems"
10
+ require "pp"
11
+ require File.join(File.dirname(__FILE__), "../lib/leadtune")
12
+
13
+ begin
14
+ p = Leadtune::Prospect.delete do |p|
15
+ p.organization = "LOL"
16
+ p.username = "admin@loleads.com"
17
+ p.password = "admin"
18
+ p.leadtune_host = "http://localhost:8080"
19
+ p.prospect_id = ARGV[0]
20
+ end
21
+ rescue Leadtune::LeadtuneError => e
22
+ puts e.to_s
23
+ end
data/spec/get.rb CHANGED
@@ -12,20 +12,18 @@ require File.join(File.dirname(__FILE__), "../lib/leadtune")
12
12
 
13
13
  begin
14
14
  p = Leadtune::Prospect.get({
15
- :organization => "AcmeU",
16
- :username => "admin@acme.edu",
15
+ :organization => "LOL",
16
+ :username => "admin@loleads.com",
17
17
  :password => "admin",
18
- # :leadtune_host => "http://localhost:8080",
19
- :prospect_ref => "CRONIN",
20
- # :prospect_id => "4ca3bae9a09801dd413d445c",
21
- })
22
- pp p.factors
18
+ # :leadtune_host => "https://staging-appraiser.leadtune.com",
19
+ # :leadtune_host => "https://sandbox-appraiser.leadtune.com",
20
+ :leadtune_host => "http://localhost:8080",
23
21
 
24
- pp Leadtune::Prospect.new({:prospect_id => "4ca3bd94a09801dd5b3d445c",
25
- :username => "admin@acme.edu",
26
- :password => "admin",
27
- :organization => "AcmeU",}).get.factors
22
+ :prospect_id => ARGV[0],
23
+ })
28
24
  rescue Leadtune::LeadtuneError => e
29
25
  puts e.to_s
26
+ else
27
+ pp p.factors
30
28
  end
31
29
 
data/spec/post.rb CHANGED
@@ -10,15 +10,21 @@ require "rubygems"
10
10
  require "pp"
11
11
  require File.join(File.dirname(__FILE__), "../lib/leadtune")
12
12
 
13
- p = Leadtune::Prospect.post do |p|
14
- p.event = "offers_prepared"
15
- p.organization = "LOL"
16
- p.username = "admin@loleads.com"
17
- p.password = "admin"
18
- p.email = "test@example.com"
19
- p.target_buyers = ["AcmeU", "Bravo", "ConvU",]
20
- # p.leadtune_host = "http://localhost:8080"
21
- end
13
+ begin
14
+ p = Leadtune::Prospect.post do |p|
15
+ p.organization = "LOL"
16
+ p.username = "admin@loleads.com"
17
+ p.password = "admin"
18
+ # p.leadtune_host = "https://staging-appraiser.leadtune.com"
19
+ # p.leadtune_host = "https://sandbox-appraiser.leadtune.com"
20
+ p.leadtune_host = "http://localhost:8080"
22
21
 
23
- pp p.factors
24
- pp p.decision_id
22
+ p.event = "offers_prepared"
23
+ p.email = "test@example.com"
24
+ p.target_buyers = ["AcmeU", "Bravo", "ConvU",]
25
+ end
26
+ pp p.factors
27
+ `/bin/echo -n #{p.prospect_id} | pbcopy 2>&1 > /dev/null`
28
+ rescue Leadtune::LeadtuneError => e
29
+ puts e.to_s
30
+ end
data/spec/put.rb CHANGED
@@ -10,22 +10,17 @@ require "rubygems"
10
10
  require "pp"
11
11
  require File.join(File.dirname(__FILE__), "../lib/leadtune")
12
12
 
13
-
14
13
  begin
15
- p = Leadtune::Prospect.get({:prospect_id => "4c93fda2b34601ddb7d1c030",
16
- :username => "admin@acme.edu",
14
+ p = Leadtune::Prospect.new({:prospect_id => ARGV[0],
15
+ :username => "admin@loleads.com",
17
16
  :password => "admin",
18
- :organization => "AcmeU",})
19
- p.browser_family = "Firefox"
17
+ :target_buyers => ["AcmeU", "Bravo", "ConvU",],
18
+ :organization => "LOL",
19
+ :age => rand(30)+18})
20
20
  p.leadtune_host = "http://localhost:8080"
21
21
  p.put
22
22
 
23
- p = Leadtune::Prospect.get({:prospect_id => "4c92f8d6b34601dd5ecac030",
24
- :username => "admin@acme.edu",
25
- :password => "admin",
26
- :organization => "AcmeU",})
27
23
  pp p.factors
28
-
29
24
  rescue Leadtune::LeadtuneError => e
30
25
  puts e.to_s
31
26
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leadtune
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 6
10
- version: 0.0.6
9
+ - 7
10
+ version: 0.0.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Eric Wollesen
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-29 00:00:00 -06:00
18
+ date: 2010-10-22 00:00:00 -06:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -30,10 +30,10 @@ dependencies:
30
30
  - 0
31
31
  - 0
32
32
  version: 1.0.0
33
- prerelease: false
34
33
  requirement: *id001
35
34
  type: :development
36
35
  name: bundler
36
+ prerelease: false
37
37
  - !ruby/object:Gem::Dependency
38
38
  version_requirements: &id002 !ruby/object:Gem::Requirement
39
39
  none: false
@@ -44,10 +44,10 @@ dependencies:
44
44
  segments:
45
45
  - 0
46
46
  version: "0"
47
- prerelease: false
48
47
  requirement: *id002
49
48
  type: :development
50
49
  name: ruby-debug
50
+ prerelease: false
51
51
  - !ruby/object:Gem::Dependency
52
52
  version_requirements: &id003 !ruby/object:Gem::Requirement
53
53
  none: false
@@ -62,10 +62,10 @@ dependencies:
62
62
  - beta
63
63
  - 19
64
64
  version: 2.0.0.beta.19
65
- prerelease: false
66
65
  requirement: *id003
67
66
  type: :development
68
67
  name: rspec
68
+ prerelease: false
69
69
  - !ruby/object:Gem::Dependency
70
70
  version_requirements: &id004 !ruby/object:Gem::Requirement
71
71
  none: false
@@ -80,10 +80,10 @@ dependencies:
80
80
  - beta
81
81
  - 19
82
82
  version: 2.0.0.beta.19
83
- prerelease: false
84
83
  requirement: *id004
85
84
  type: :development
86
85
  name: rspec-core
86
+ prerelease: false
87
87
  - !ruby/object:Gem::Dependency
88
88
  version_requirements: &id005 !ruby/object:Gem::Requirement
89
89
  none: false
@@ -98,10 +98,10 @@ dependencies:
98
98
  - beta
99
99
  - 19
100
100
  version: 2.0.0.beta.19
101
- prerelease: false
102
101
  requirement: *id005
103
102
  type: :development
104
103
  name: rspec-expectations
104
+ prerelease: false
105
105
  - !ruby/object:Gem::Dependency
106
106
  version_requirements: &id006 !ruby/object:Gem::Requirement
107
107
  none: false
@@ -116,10 +116,10 @@ dependencies:
116
116
  - beta
117
117
  - 19
118
118
  version: 2.0.0.beta.19
119
- prerelease: false
120
119
  requirement: *id006
121
120
  type: :development
122
121
  name: rspec-mocks
122
+ prerelease: false
123
123
  - !ruby/object:Gem::Dependency
124
124
  version_requirements: &id007 !ruby/object:Gem::Requirement
125
125
  none: false
@@ -130,10 +130,10 @@ dependencies:
130
130
  segments:
131
131
  - 0
132
132
  version: "0"
133
- prerelease: false
134
133
  requirement: *id007
135
134
  type: :development
136
135
  name: webmock
136
+ prerelease: false
137
137
  - !ruby/object:Gem::Dependency
138
138
  version_requirements: &id008 !ruby/object:Gem::Requirement
139
139
  none: false
@@ -144,10 +144,10 @@ dependencies:
144
144
  segments:
145
145
  - 0
146
146
  version: "0"
147
- prerelease: false
148
147
  requirement: *id008
149
148
  type: :development
150
149
  name: tcpsocket-wait
150
+ prerelease: false
151
151
  - !ruby/object:Gem::Dependency
152
152
  version_requirements: &id009 !ruby/object:Gem::Requirement
153
153
  none: false
@@ -158,10 +158,10 @@ dependencies:
158
158
  segments:
159
159
  - 0
160
160
  version: "0"
161
- prerelease: false
162
161
  requirement: *id009
163
162
  type: :runtime
164
163
  name: rake
164
+ prerelease: false
165
165
  - !ruby/object:Gem::Dependency
166
166
  version_requirements: &id010 !ruby/object:Gem::Requirement
167
167
  none: false
@@ -172,10 +172,10 @@ dependencies:
172
172
  segments:
173
173
  - 0
174
174
  version: "0"
175
- prerelease: false
176
175
  requirement: *id010
177
176
  type: :runtime
178
177
  name: curb
178
+ prerelease: false
179
179
  - !ruby/object:Gem::Dependency
180
180
  version_requirements: &id011 !ruby/object:Gem::Requirement
181
181
  none: false
@@ -186,10 +186,10 @@ dependencies:
186
186
  segments:
187
187
  - 0
188
188
  version: "0"
189
- prerelease: false
190
189
  requirement: *id011
191
190
  type: :runtime
192
191
  name: json
192
+ prerelease: false
193
193
  description: LeadTune Ruby API Gem
194
194
  email:
195
195
  - devs@leadtune.com
@@ -214,6 +214,8 @@ files:
214
214
  - lib/leadtune/rest.rb
215
215
  - lib/leadtune/util.rb
216
216
  - lib/leadtune/version.rb
217
+ - spec/checks.bash
218
+ - spec/delete.rb
217
219
  - spec/echo_server.rb
218
220
  - spec/get.rb
219
221
  - spec/leadtune/appraisals_spec.rb