markety 1.4.3 → 2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +5 -13
  2. data/.gitignore +3 -0
  3. data/README.md +66 -15
  4. data/Rakefile +1 -1
  5. data/example_xml/get_lead_failure.xml +42 -0
  6. data/example_xml/get_lead_success.xml +63 -0
  7. data/example_xml/get_lead_success_two_leads.xml +88 -0
  8. data/example_xml/list_op_add_to_list_success.xml +42 -0
  9. data/example_xml/list_op_is_member_of_list_failure.xml +50 -0
  10. data/example_xml/list_op_is_member_of_list_success.xml +51 -0
  11. data/example_xml/list_op_remove_from_list_failure.xml +50 -0
  12. data/example_xml/list_op_remove_from_list_success.xml +42 -0
  13. data/example_xml/sync_lead_failure.xml +60 -0
  14. data/example_xml/sync_lead_success.xml +78 -0
  15. data/lib/markety.rb +26 -1
  16. data/lib/markety/authentication_header.rb +3 -3
  17. data/lib/markety/client.rb +35 -141
  18. data/lib/markety/command.rb +11 -0
  19. data/lib/markety/command/get_lead.rb +27 -0
  20. data/lib/markety/command/list_operation.rb +68 -0
  21. data/lib/markety/command/sync_lead.rb +55 -0
  22. data/lib/markety/enums.rb +18 -16
  23. data/lib/markety/lead.rb +69 -0
  24. data/lib/markety/lead_key.rb +5 -4
  25. data/lib/markety/response.rb +15 -0
  26. data/lib/markety/response/generic_response.rb +45 -0
  27. data/lib/markety/response/get_lead_response.rb +35 -0
  28. data/lib/markety/response/list_operation_response.rb +30 -0
  29. data/lib/markety/response/response_factory.rb +27 -0
  30. data/lib/markety/response/sync_lead_response.rb +32 -0
  31. data/lib/markety/version.rb +1 -3
  32. data/spec/markety/lead_key_spec.rb +10 -11
  33. data/spec/markety/{lead_record_spec.rb → lead_spec.rb} +13 -30
  34. data/spec/markety/response/get_lead_response_spec.rb +170 -0
  35. data/spec/markety/response/list_operation_response_spec.rb +76 -0
  36. data/spec/markety/response/sync_lead_response_spec.rb +107 -0
  37. data/spec/spec_helper.rb +4 -0
  38. data/spec/support/savon_helper.rb +14 -0
  39. metadata +61 -33
  40. data/lib/markety/lead_record.rb +0 -73
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  require 'coveralls'
2
2
  Coveralls.wear!
3
3
 
4
+ require 'support/savon_helper'
5
+
4
6
  require 'pry'
5
7
  require 'markety'
8
+ require 'markety/command'
9
+ require 'markety/response'
@@ -0,0 +1,14 @@
1
+ module SavonHelper
2
+ extend self
3
+
4
+ def create_response(xml)
5
+ http_response = HTTPI::Response.new(200,{},xml) #should be 500 for failure, but this test doesn't care
6
+ begin
7
+ response = Savon::Response.new(http_response,Savon::GlobalOptions.new,Savon::LocalOptions.new)
8
+ rescue Savon::SOAPFault => e
9
+ response = e
10
+ end
11
+ response
12
+ end
13
+
14
+ end
metadata CHANGED
@@ -1,159 +1,159 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markety
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.3
4
+ version: '2.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Santoso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-15 00:00:00.000000000 Z
11
+ date: 2014-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '2.3'
48
- - - ! '>='
48
+ - - ">="
49
49
  - !ruby/object:Gem::Version
50
50
  version: 2.3.0
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - ~>
55
+ - - "~>"
56
56
  - !ruby/object:Gem::Version
57
57
  version: '2.3'
58
- - - ! '>='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: 2.3.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rspec-nc
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ! '>='
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - ! '>='
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: guard
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - ! '>='
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - ! '>='
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: guard-rspec
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - ! '>='
93
+ - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ! '>='
100
+ - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: pry
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ! '>='
107
+ - - ">="
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ! '>='
114
+ - - ">="
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: pry-remote
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - ! '>='
121
+ - - ">="
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - ! '>='
128
+ - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: pry-plus
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - ! '>='
135
+ - - ">="
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - ! '>='
142
+ - - ">="
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: coveralls
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - ! '>='
149
+ - - ">="
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
152
  type: :development
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - ! '>='
156
+ - - ">="
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  - !ruby/object:Gem::Dependency
@@ -191,28 +191,52 @@ executables: []
191
191
  extensions: []
192
192
  extra_rdoc_files: []
193
193
  files:
194
- - .coveralls.yml
195
- - .gitignore
196
- - .rspec
197
- - .travis.yml
194
+ - ".coveralls.yml"
195
+ - ".gitignore"
196
+ - ".rspec"
197
+ - ".travis.yml"
198
198
  - Gemfile
199
199
  - Guardfile
200
200
  - LICENCE
201
201
  - README.md
202
202
  - Rakefile
203
+ - example_xml/get_lead_failure.xml
204
+ - example_xml/get_lead_success.xml
205
+ - example_xml/get_lead_success_two_leads.xml
206
+ - example_xml/list_op_add_to_list_success.xml
207
+ - example_xml/list_op_is_member_of_list_failure.xml
208
+ - example_xml/list_op_is_member_of_list_success.xml
209
+ - example_xml/list_op_remove_from_list_failure.xml
210
+ - example_xml/list_op_remove_from_list_success.xml
211
+ - example_xml/sync_lead_failure.xml
212
+ - example_xml/sync_lead_success.xml
203
213
  - lib/markety.rb
204
214
  - lib/markety/authentication_header.rb
205
215
  - lib/markety/client.rb
216
+ - lib/markety/command.rb
217
+ - lib/markety/command/get_lead.rb
218
+ - lib/markety/command/list_operation.rb
219
+ - lib/markety/command/sync_lead.rb
206
220
  - lib/markety/enums.rb
221
+ - lib/markety/lead.rb
207
222
  - lib/markety/lead_key.rb
208
- - lib/markety/lead_record.rb
223
+ - lib/markety/response.rb
224
+ - lib/markety/response/generic_response.rb
225
+ - lib/markety/response/get_lead_response.rb
226
+ - lib/markety/response/list_operation_response.rb
227
+ - lib/markety/response/response_factory.rb
228
+ - lib/markety/response/sync_lead_response.rb
209
229
  - lib/markety/version.rb
210
230
  - markety.gemspec
211
231
  - spec/markety/authentication_header_spec.rb
212
232
  - spec/markety/client_spec.rb
213
233
  - spec/markety/lead_key_spec.rb
214
- - spec/markety/lead_record_spec.rb
234
+ - spec/markety/lead_spec.rb
235
+ - spec/markety/response/get_lead_response_spec.rb
236
+ - spec/markety/response/list_operation_response_spec.rb
237
+ - spec/markety/response/sync_lead_response_spec.rb
215
238
  - spec/spec_helper.rb
239
+ - spec/support/savon_helper.rb
216
240
  homepage: https://github.com/davidsantoso/markety
217
241
  licenses:
218
242
  - MIT
@@ -223,12 +247,12 @@ require_paths:
223
247
  - lib
224
248
  required_ruby_version: !ruby/object:Gem::Requirement
225
249
  requirements:
226
- - - ! '>='
250
+ - - ">="
227
251
  - !ruby/object:Gem::Version
228
252
  version: 1.9.3
229
253
  required_rubygems_version: !ruby/object:Gem::Requirement
230
254
  requirements:
231
- - - ! '>='
255
+ - - ">="
232
256
  - !ruby/object:Gem::Version
233
257
  version: '0'
234
258
  requirements: []
@@ -241,5 +265,9 @@ test_files:
241
265
  - spec/markety/authentication_header_spec.rb
242
266
  - spec/markety/client_spec.rb
243
267
  - spec/markety/lead_key_spec.rb
244
- - spec/markety/lead_record_spec.rb
268
+ - spec/markety/lead_spec.rb
269
+ - spec/markety/response/get_lead_response_spec.rb
270
+ - spec/markety/response/list_operation_response_spec.rb
271
+ - spec/markety/response/sync_lead_response_spec.rb
245
272
  - spec/spec_helper.rb
273
+ - spec/support/savon_helper.rb
@@ -1,73 +0,0 @@
1
- module Markety
2
- # Represents a record of the data known about a lead within marketo
3
- class LeadRecord
4
- attr_reader :types
5
-
6
- def initialize(email, idnum = nil)
7
- @idnum = idnum
8
- @attributes = {}
9
- @types = {}
10
- set_attribute('Email', email)
11
- end
12
-
13
- # hydrates an instance from a savon hash returned form the marketo API
14
- def self.from_hash(savon_hash)
15
- lead_record = LeadRecord.new(savon_hash[:email], savon_hash[:id].to_i)
16
-
17
- unless savon_hash[:lead_attribute_list].nil?
18
- if savon_hash[:lead_attribute_list][:attribute].kind_of? Hash
19
- attributes = [savon_hash[:lead_attribute_list][:attribute]]
20
- else
21
- attributes = savon_hash[:lead_attribute_list][:attribute]
22
- end
23
-
24
- attributes.each do |attribute|
25
- lead_record.set_attribute(attribute[:attr_name], attribute[:attr_value], attribute[:attr_type])
26
- end
27
- end
28
-
29
- lead_record
30
- end
31
-
32
- # get the record idnum
33
- def idnum
34
- @idnum
35
- end
36
-
37
- # get the record email
38
- def email
39
- get_attribute('Email')
40
- end
41
-
42
- def attributes
43
- @attributes
44
- end
45
-
46
- # update the value of the named attribute
47
- def set_attribute(name, value, type = "string")
48
- @attributes[name] = value
49
- @types[name] = type
50
- end
51
-
52
- # get the value for the named attribute
53
- def get_attribute(name)
54
- @attributes[name]
55
- end
56
-
57
- def get_attribute_type(name)
58
- @types[name]
59
- end
60
-
61
- # will yield pairs of |attribute_name, attribute_value|
62
- def each_attribute_pair(&block)
63
- @attributes.each_pair do |name, value|
64
- block.call(name, value)
65
- end
66
- end
67
-
68
- def ==(other)
69
- @attributes == other.attributes &&
70
- @idnum == other.idnum
71
- end
72
- end
73
- end