adf_builder 0.0.4 → 0.0.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d008819843612af5533e3967bcd340b078b9d72a8616bd9ae53cd0ef00b8a483
4
- data.tar.gz: d5c4308aff6683a815f1afda34e5fbaf3efcc617c2738a9ce2cd702ad4cc67d9
3
+ metadata.gz: 8a2725ac72b47a548355664e21014fd434ead3aa0829f0dfd3d8c506dd12c1db
4
+ data.tar.gz: 584cabe276de7ef15cecc2e50911005e6a7100468582934f3efa97107d5d576b
5
5
  SHA512:
6
- metadata.gz: 73b81965ecfa689d8b107dcbdea47e6c7d75b49efed0bb589bdd677a7b417c1b71002d0e25e3772aa5a5f3b26b881470fef752493f9dc476145d0715448157a3
7
- data.tar.gz: 1784480ea361713eafcd0caba178558d97c02b66b30657b28154185cc59160cdcd8dd6d53d74147396f773fe9e6ad22ef4e4189554bfedd2bf194ee19c07467a
6
+ metadata.gz: 5a4e274b4ea6af2af31d0cec8c6c452ff8da5db67b8f4c3b9442a0d44449dbf912e6b6ad1146649f12b7b8a20017716598e56b01e19f5ebb17020aa94ee57faf
7
+ data.tar.gz: b7c13eab73118e95fe03af6c1428c01f18a69c895ef2d48d4eda9731289353857d210328f08150818d27141e332bace07ff6c991c482d6063526939beca3e492
data/CHANGELOG.md CHANGED
@@ -1,21 +1,29 @@
1
1
  ## [Unreleased]
2
- - Vehicle Structure
3
- - Remaining Optional Tags that are not free text
4
- - odometer
5
- - condition
6
- - colorcombination
7
- - imagetag
2
+ - Vehicle Structure - Remaining Optional Tags that are not free text
8
3
  - price
9
4
  - option
10
5
  - finance
11
6
  - Expand Structures for all parameters
12
7
  - Customer
13
- - Vehicle
14
8
  - Contact
9
+ - Vehicle
10
+ - Price
11
+
12
+
13
+ ## [0.0.8] - 2021-08-12
14
+ - Added all of Provider structure
15
+
16
+ ## [0.0.7] - 2021-08-08
17
+ - Much refactoring so that we can reuse functions
18
+ - Added more functionality to the Vehicle structure including all free text, all same level tags with params, and Color Combination and ImageTag
19
+
20
+
21
+ ## [0.0.6] - 2021-08-08
22
+ - minimal_lead function will remove all previous adf nodes
23
+ - Created ability to reset doc
15
24
 
16
- ### In many moons
17
- - Add Provider structure
18
- - Add Price structure
25
+ ## [0.0.5] - 2021-08-08
26
+ - Fixed bug that kept us from using the library
19
27
 
20
28
  ## [0.0.4] - 2021-08-08
21
29
  - Added Customer, Contact, Vendor basic structure
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- adf_builder (0.0.4)
4
+ adf_builder (0.0.8)
5
5
  ox (~> 2.14)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -108,15 +108,28 @@ Outputs
108
108
  </prospect>
109
109
  </adf>
110
110
  ```
111
- Add Vehicle with tags
111
+
112
+ Vehicle with different operations
112
113
 
113
114
  ```ruby
114
115
  builder = AdfBuilder::Builder.new
115
116
  builder.prospect.vehicles.add(2021, 'Toyota', 'Prius', {
116
- interest: :sell,
117
117
  status: :used,
118
- vin: 'XXXXXXXXXX',
119
118
  })
119
+ builder.prospect.vehicles.update_tags_with_free_text(0, {
120
+ bodystyle: 'howdy',
121
+ year: '2000'
122
+ })
123
+ builder.prospect.vehicles.update_odometer(0, 9000, {
124
+ units: 'km'
125
+ })
126
+ builder.prospect.vehicles.update_condition(0, 'ffff')
127
+ builder.prospect.vehicles.update_imagetag(0, 'http://adfxml.info/adf_spec.pdf', {
128
+ width: 400,
129
+ height: 500,
130
+ alttext: 'Howdy'
131
+ })
132
+ puts builder.to_xml
120
133
  ```
121
134
 
122
135
  Outputs
@@ -127,16 +140,55 @@ Outputs
127
140
  <?xml version="1.0"?>
128
141
  <adf>
129
142
  <prospect status="new">
130
- <requestdate>2021-08-04T18:16:31+04:00</requestdate>
131
- <vehicle interest="sell" status="used">
132
- <year>2021</year>
143
+ <requestdate>2021-08-09T00:53:59+04:00</requestdate>
144
+ <customer/>
145
+ <vendor/>
146
+ <vehicle status="used">
147
+ <year>2000</year>
133
148
  <make>Toyota</make>
134
149
  <model>Prius</model>
135
- <vin>XXXXXXXXXX</vin>
150
+ <bodystyle>howdy</bodystyle>
151
+ <odometer units="km">9000</odometer>
152
+ <imagetag width="400" height="500" alttext="Howdy">http://adfxml.info/adf_spec.pdf</imagetag>
136
153
  </vehicle>
137
154
  </prospect>
138
155
  </adf>
156
+ ```
157
+
158
+ Color Combination
159
+
160
+ ```ruby
161
+ builder = AdfBuilder::Builder.new
162
+ builder.prospect.vehicles.add(2021, 'Toyota', 'Prius', {
163
+ status: :used,
164
+ })
165
+ builder.prospect.vehicles.add_color_combination(0, 'black', 'yellow', 1)
166
+ puts builder.to_xml
167
+ ```
139
168
 
169
+ Outputs
170
+
171
+ ```xml
172
+ <?ADF version="1.0"?>
173
+
174
+ <?xml version="1.0"?>
175
+ <adf>
176
+ <prospect status="new">
177
+ <requestdate>2021-08-09T00:56:07+04:00</requestdate>
178
+ <customer/>
179
+ <vendor/>
180
+ <vehicle status="used">
181
+ <year>2021</year>
182
+ <make>Toyota</make>
183
+ <model>Prius</model>
184
+ <colorcombination>
185
+ <interiorcolor>black</interiorcolor>
186
+ <exteriorcolor>yellow</exteriorcolor>
187
+ <preference>1</preference>
188
+ </colorcombination>
189
+ </vehicle>
190
+ </prospect>
191
+ </adf>
140
192
  ```
141
193
 
142
194
  Add Vendor
@@ -199,6 +251,49 @@ Outputs
199
251
  </prospect>
200
252
  </adf>
201
253
  ```
254
+ A complex Provider
255
+
256
+ ```ruby
257
+ builder = AdfBuilder::Builder.new
258
+ provider = builder.prospect.provider
259
+ provider.add('Testing', {part: 'full', type: 'business'})
260
+ provider.update_tags_with_free_text({
261
+ url: 'howdy',
262
+ service: "Nice"
263
+ })
264
+ provider.add_email("test@test.com", {preferredcontact: 0})
265
+ provider.add_phone("+14445556666", {
266
+ type: 'fax',
267
+ time: 'day'
268
+ })
269
+ provider.add_contact("Mr Sir")
270
+ provider.contact.add_phone("+132435523424")
271
+ ```
272
+
273
+ ```xml
274
+ <?ADF version="1.0"?>
275
+
276
+ <?xml version="1.0"?>
277
+ <adf>
278
+ <prospect status="new">
279
+ <requestdate>2021-08-12T18:56:41+04:00</requestdate>
280
+ <customer/>
281
+ <vendor/>
282
+ <provider>
283
+ <name part="full" type="business">Testing</name>
284
+ <url>howdy</url>
285
+ <service>Nice</service>
286
+ <email preferredcontact="0">test@test.com</email>
287
+ <phone type="fax" time="day">+14445556666</phone>
288
+ <contact>
289
+ <name>Mr Sir</name>
290
+ <phone>+132435523424</phone>
291
+ </contact>
292
+ </provider>
293
+ </prospect>
294
+ </adf>
295
+ ```
296
+
202
297
  ## Development
203
298
 
204
299
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/lib/adf_builder.rb CHANGED
@@ -11,14 +11,18 @@ require_relative 'adf_builder/base/base'
11
11
  require_relative 'adf_builder/base/prospect'
12
12
  require_relative 'adf_builder/base/request_date'
13
13
 
14
+ # PROVIDER
15
+ require_relative 'adf_builder/provider/provider'
16
+
14
17
  # SHARED
15
18
  require_relative 'adf_builder/shared/id'
16
19
  require_relative 'adf_builder/shared/contact'
17
20
 
18
21
  # VEHICLES
19
22
  require_relative 'adf_builder/vehicles/vehicles'
23
+ require_relative 'adf_builder/vehicles/colorcombinations'
20
24
 
21
- # VENDER
25
+ # VENDOR
22
26
  require_relative 'adf_builder/vendor/vendor'
23
27
 
24
28
  module AdfBuilder
@@ -40,8 +44,6 @@ module AdfBuilder
40
44
 
41
45
  # def an example of minimal XML taken from ADF spec file http://adfxml.info/adf_spec.pdf
42
46
  def minimal_lead
43
- adf = Ox::Element.new("adf")
44
-
45
47
  prospect = Ox::Element.new("prospect")
46
48
 
47
49
  request_date = Ox::Element.new("requestdate")
@@ -84,16 +86,15 @@ module AdfBuilder
84
86
  vendor << contact
85
87
 
86
88
  prospect << request_date << vehicle << customer << vendor
87
- adf << prospect
88
- @doc << adf
89
+ @doc.remove_children_by_path("adf/prospect")
90
+ @doc.adf << prospect
89
91
  Ox.dump(@doc, {})
90
92
  end
91
93
 
92
-
93
-
94
-
95
- private
96
-
94
+ # go back to the initial structure
95
+ def reset_doc
96
+ @doc.adf.prospect.remove_children_by_path("*")
97
+ end
97
98
 
98
99
  # all the files will start with this same header
99
100
  def init_doc
@@ -109,5 +110,42 @@ module AdfBuilder
109
110
  doc << adf
110
111
  doc
111
112
  end
113
+
114
+ # we will either create a new node with the value or replace the one if it is available
115
+ def self.update_node(parent_node, key, value, params={})
116
+ key = key.to_s
117
+ value = value.to_s
118
+ if parent_node.locate(key).size > 0
119
+ node = parent_node.locate(key).first
120
+ node.replace_text(value)
121
+ else
122
+ node = (Ox::Element.new(key) << value)
123
+ parent_node << node
124
+ end
125
+
126
+ AdfBuilder::Builder.update_params(node, key, params)
127
+ end
128
+
129
+ # update the params by first checking if they are valid params and then checking if the values are valid if necessary
130
+ def self.update_params(node, key, params)
131
+ return true if params.empty?
132
+ key = key.to_sym
133
+ valid_values = params[:valid_values]
134
+ valid_parameters = params[:valid_parameters]
135
+ _params = AdfBuilder::Builder.whitelabel_params(params,valid_parameters, key)
136
+ _params.each do |k,v|
137
+ node[k] = v if valid_values[key][k] == true or valid_values[key][k].include? v.to_s
138
+ end
139
+ end
140
+
141
+ # clear out the opts that don't match valid keys
142
+ def self.whitelabel_params(opts, valid_parameters, key)
143
+ opts.slice(*valid_parameters[key])
144
+ end
145
+
146
+ def self.valid_child?(parent, tag_name, index)
147
+ child = parent.locate(tag_name)[index]
148
+ return !child.nil?,child
149
+ end
112
150
  end
113
151
  end
@@ -16,6 +16,7 @@ module AdfBuilder
16
16
  @vehicles = Vehicles.new(@prospect)
17
17
  @customer = Customer.new(@prospect)
18
18
  @vendor = Vendor.new(@prospect)
19
+ @provider = Provider.new(@prospect)
19
20
  end
20
21
 
21
22
  def request_date
@@ -34,6 +35,10 @@ module AdfBuilder
34
35
  @vendor
35
36
  end
36
37
 
38
+ def provider
39
+ @provider
40
+ end
41
+
37
42
  # set status to renew
38
43
  def set_renew
39
44
  @prospect[:status] = STATUSES[:resend]
@@ -0,0 +1,55 @@
1
+ module AdfBuilder
2
+ class Provider
3
+
4
+
5
+ FREE_TEXT_OPTIONAL_TAGS = [:service, :url]
6
+
7
+ def initialize(prospect)
8
+ @prospect = prospect
9
+ @provider = nil
10
+ @contact = nil
11
+ end
12
+
13
+ def contact
14
+ @contact
15
+ end
16
+
17
+
18
+ def add(name, params={})
19
+ @provider = Ox::Element.new('provider')
20
+ params.merge!({valid_values: AdfBuilder::Contact::VALID_VALUES, valid_parameters: AdfBuilder::Contact::VALID_PARAMETERS})
21
+ AdfBuilder::Builder.update_node(@provider, :name, name, params)
22
+ @prospect << @provider
23
+ end
24
+
25
+ def add_contact(name, opts={})
26
+ @contact = Contact.new(@provider, name, opts)
27
+ end
28
+
29
+ def add_phone(phone, params={})
30
+ params.merge!({valid_values: AdfBuilder::Contact::VALID_VALUES, valid_parameters: AdfBuilder::Contact::VALID_PARAMETERS})
31
+ AdfBuilder::Builder.update_node(@provider, :phone, phone, params)
32
+ end
33
+
34
+ def add_email(email, params={})
35
+ params.merge!({valid_values: AdfBuilder::Contact::VALID_VALUES, valid_parameters: AdfBuilder::Contact::VALID_PARAMETERS})
36
+ AdfBuilder::Builder.update_node(@provider, :email, email, params)
37
+ end
38
+
39
+ def update_tags_with_free_text(tags)
40
+ tags.each do |key, value|
41
+ if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
42
+ AdfBuilder::Builder.update_node(@provider, key, value)
43
+ end
44
+ end
45
+ end
46
+
47
+ def add_id(index, value, source=nil, sequence=1)
48
+ if @prospect.locate("provider").empty?
49
+ false
50
+ else
51
+ Id.new.add(@prospect.provider(index), value, source, sequence)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -6,50 +6,37 @@ module AdfBuilder
6
6
  phone: [:type, :time, :preferredcontact]
7
7
  }
8
8
 
9
- PHONE_TYPES = [:phone, :fax, :cellphone, :pager]
9
+ VALID_VALUES = {
10
+ name: {
11
+ part: %w[first middle suffix last full],
12
+ type: %w[individual business],
13
+ primarycontact: %w[0 1]
14
+ },
15
+ email: {
16
+ preferredcontact: %w[0 1],
17
+ },
18
+ phone: {
19
+ preferredcontact: %w[0 1],
20
+ type: %w[phone fax cellphone pager],
21
+ time: %w[morning afternoon evening nopreference day]
22
+ }
23
+ }
10
24
 
11
- def initialize(parent_node, name, opts={})
12
- @contact = Ox::Element.new('contact') << (Ox::Element.new('name') << name)
25
+ def initialize(parent_node, name, params={})
26
+ @contact = Ox::Element.new('contact')
27
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
28
+ AdfBuilder::Builder.update_node(@contact, :name, name, params)
13
29
  parent_node << @contact
14
-
15
- opts = whitelabel_opts(opts, :name)
16
-
17
- if opts[:primary_contact]
18
- @contact[:primarycontact] = opts[:primary_contact].to_s
19
- end
20
-
21
- opts.each do |k,v|
22
- @contact.locate("name")[0][k] = v.to_s
23
- end
24
-
25
30
  end
26
31
 
27
- def add_email(email, opts={})
28
- @contact << (Ox::Element.new('email') << email)
29
- opts = whitelabel_opts(opts, :phone)
30
-
31
- opts.each do |k,v|
32
- @contact.email[k] = v.to_s
33
- end
32
+ def add_phone(phone, params={})
33
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
34
+ AdfBuilder::Builder.update_node(@contact, :phone, phone, params)
34
35
  end
35
36
 
36
- def add_phone(phone, opts={})
37
- @contact << (Ox::Element.new('phone') << phone)
38
- opts = whitelabel_opts(opts, :phone)
39
-
40
- opts.each do |k,v|
41
- @contact.phone[k] = v.to_s
42
- end
43
- end
44
-
45
-
46
-
47
-
48
- private
49
-
50
- # clear out the opts that don't match valid keys
51
- def whitelabel_opts(opts, key)
52
- opts.slice(*VALID_PARAMETERS[key])
37
+ def add_email(email, params={})
38
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
39
+ AdfBuilder::Builder.update_node(@contact, :email, email, params)
53
40
  end
54
41
  end
55
42
  end
@@ -0,0 +1,31 @@
1
+ module AdfBuilder
2
+ class ColorCombinations
3
+
4
+ FREE_TEXT_OPTIONAL_TAGS = [:interiorcolor, :exteriorcolor, :preference]
5
+
6
+ def initialize(vehicle)
7
+ @vehicle = vehicle
8
+ @color_combination = nil
9
+ end
10
+
11
+ def add(interior_color, exterior_color, preference)
12
+ @color_combination = Ox::Element.new('colorcombination')
13
+ @color_combination <<
14
+ (Ox::Element.new('interiorcolor') << interior_color) <<
15
+ (Ox::Element.new('exteriorcolor') << exterior_color) <<
16
+ (Ox::Element.new('preference') << preference.to_s)
17
+ @vehicle << @color_combination
18
+ end
19
+
20
+ def update_tags(index, tags)
21
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@vehicle,'colorcombination', index)
22
+ if valid
23
+ tags.each do |key, value|
24
+ if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
25
+ AdfBuilder::Builder.update_node(vehicle, key, value)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,60 +1,95 @@
1
1
  module AdfBuilder
2
2
  class Vehicles
3
- INTEREST_VALUES = {
4
- buy: 'buy',
5
- lease: 'lease',
6
- sell: 'sell',
7
- trade_in: 'trade-in',
8
- test_drive: 'test-drive'
3
+ VALID_PARAMETERS = {
4
+ vehicle: [:interest, :status],
5
+ odometer: [:status, :units],
6
+ imagetag: [:width, :height, :alttext],
9
7
  }
10
8
 
11
- STATUS_VALUES = {
12
- new: 'new',
13
- used: 'used'
9
+ VALID_VALUES = {
10
+ vehicle: {
11
+ interest: %w[buy lease sell trade-in test-drive],
12
+ status: %w[new used]
13
+ },
14
+ odometer: {
15
+ status: %w[unknown rolledover replaced original],
16
+ units: %w[km mi]
17
+ },
18
+ imagetag: {
19
+ width: true,
20
+ height: true,
21
+ alttext: true
22
+ }
14
23
  }
15
24
 
16
- FREE_TEXT_OPTIONAL_TAGS = {
17
- vin: :vin,
18
- stock: :stock,
19
- trim: :trim,
20
- doors: :doors,
21
- bodystyle: :bodystyle,
22
- transmission: :transmission,
23
- pricecomments: :pricecomments,
24
- comments: :comments
25
- }
25
+ FREE_TEXT_OPTIONAL_TAGS = [:year, :make, :model, :vin, :stock,
26
+ :trim, :doors, :bodystyle, :transmission, :pricecomments, :comments]
27
+
28
+ CONDITIONS = %w[excellent good fair poor unknown]
26
29
 
27
30
  def initialize(prospect)
28
31
  @prospect = prospect
32
+ @color_combinations = []
29
33
  end
30
34
 
31
- def add(year, make, model, tags={})
32
- vehicle = Ox::Element.new('vehicle')
33
-
34
- if tags[:interest]
35
- interest = INTEREST_VALUES[tags[:interest].to_sym]
36
- tags.delete(:interest)
37
- vehicle[:interest] = interest
35
+ def add_color_combination(v_index, interior_color, exterior_color, preference)
36
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', v_index)
37
+ if valid
38
+ cc = ColorCombinations.new(vehicle)
39
+ cc.add(interior_color, exterior_color, preference)
40
+ @color_combinations.push(cc)
38
41
  end
42
+ end
39
43
 
40
- if tags[:status]
41
- status = STATUS_VALUES[tags[:status].to_sym]
42
- tags.delete(:status)
43
- vehicle[:status] = status
44
- end
44
+ def color_combinations
45
+ @color_combinations
46
+ end
47
+
48
+ def add(year, make, model, params={})
49
+ vehicle = Ox::Element.new('vehicle')
45
50
 
51
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
52
+ AdfBuilder::Builder.update_params(vehicle, :vehicle, params)
46
53
 
47
54
  vehicle << (Ox::Element.new('year') << year.to_s)
48
55
  vehicle << (Ox::Element.new('make') << make)
49
56
  vehicle << (Ox::Element.new('model') << model)
50
57
 
51
- tags.each do |key, value|
52
- if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
53
- vehicle << (Ox::Element.new(key.to_s) << value)
54
- end
58
+ @prospect << vehicle
59
+ end
60
+
61
+ def update_odometer(index, value, params={})
62
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
63
+ if valid
64
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
65
+ AdfBuilder::Builder.update_node(vehicle, 'odometer', value, params)
55
66
  end
67
+ end
56
68
 
57
- @prospect << vehicle
69
+ def update_condition(index, value)
70
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
71
+ if valid and CONDITIONS.include? value
72
+ AdfBuilder::Builder.update_node(vehicle, 'condition', value)
73
+ end
74
+ end
75
+
76
+ def update_imagetag(index, value, params={})
77
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
78
+ if valid
79
+ params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
80
+ AdfBuilder::Builder.update_node(vehicle, 'imagetag', value, params)
81
+ end
82
+ end
83
+
84
+ def update_tags_with_free_text(index, tags)
85
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
86
+ if valid
87
+ tags.each do |key, value|
88
+ if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
89
+ AdfBuilder::Builder.update_node(vehicle, key, value)
90
+ end
91
+ end
92
+ end
58
93
  end
59
94
 
60
95
  def add_id(index, value, source=nil, sequence=1)
@@ -64,6 +99,5 @@ module AdfBuilder
64
99
  Id.new.add(@prospect.vehicle(index), value, source, sequence)
65
100
  end
66
101
  end
67
-
68
102
  end
69
103
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AdfBuilder
4
- VERSION = "0.0.4"
4
+ VERSION = "0.0.8"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adf_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - marcus.salinas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-08 00:00:00.000000000 Z
11
+ date: 2021-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ox
@@ -49,8 +49,10 @@ files:
49
49
  - lib/adf_builder/base/prospect.rb
50
50
  - lib/adf_builder/base/request_date.rb
51
51
  - lib/adf_builder/customer/customer.rb
52
+ - lib/adf_builder/provider/provider.rb
52
53
  - lib/adf_builder/shared/contact.rb
53
54
  - lib/adf_builder/shared/id.rb
55
+ - lib/adf_builder/vehicles/colorcombinations.rb
54
56
  - lib/adf_builder/vehicles/vehicles.rb
55
57
  - lib/adf_builder/vendor/vendor.rb
56
58
  - lib/adf_builder/version.rb