adf_builder 0.0.2 → 0.0.3
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 +4 -4
- data/CHANGELOG.md +14 -1
- data/Gemfile.lock +1 -1
- data/README.md +106 -41
- data/lib/adf_builder.rb +7 -1
- data/lib/adf_builder/base/prospect.rb +7 -0
- data/lib/adf_builder/base/request_date.rb +0 -1
- data/lib/adf_builder/vehicles/vehicles.rb +73 -0
- data/lib/adf_builder/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b52ffaa62f849533560890d14c698c1de3e4475b347c23d43a12cb5c75ea42c
|
4
|
+
data.tar.gz: 3a1d8dd414e73453ca32d768406518b01648c555e1c9e0cf8416f06924321d64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b2361f9fe58e67dbbce7990b045d791383e5a07c164ad82b4ec3b72099d8d220b75942c45e974e82e7ce885cc5a5c3af56e247dd517126998fd7232ce508ed6
|
7
|
+
data.tar.gz: e4beaad79cc2613f219c34ac1aa291a87ac186b9240c5f23e32d344886673bc4eb746b180029fdd2feee661aed9976612a46fc46a41dbfc75844ded7d3234c16
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,24 @@
|
|
1
1
|
## [Unreleased]
|
2
|
-
-
|
2
|
+
- Vehicle Structure
|
3
|
+
- Remaining Optional Tags that are not free text
|
4
|
+
- odometer
|
5
|
+
- condition
|
6
|
+
- colorcombination
|
7
|
+
- imagetag
|
8
|
+
- price
|
9
|
+
- option
|
10
|
+
- finance
|
11
|
+
|
12
|
+
### In many moons
|
3
13
|
- Add Vendor structure
|
4
14
|
- Add Customer structure
|
5
15
|
- Add Provider structure
|
6
16
|
- Add Contact structure
|
7
17
|
- Add Price structure
|
8
18
|
|
19
|
+
## [0.0.3] - 2021-08-04
|
20
|
+
- Added ability to add simple vehicle structures
|
21
|
+
|
9
22
|
## [0.0.2] - 2021-08-04
|
10
23
|
|
11
24
|
- Can create a prospect and dynamically update params and values for the base and parent level
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -10,69 +10,134 @@ gem 'adf_builder'
|
|
10
10
|
```
|
11
11
|
|
12
12
|
And then execute:
|
13
|
-
|
14
|
-
|
13
|
+
```shell
|
14
|
+
$ bundle install
|
15
|
+
```
|
15
16
|
|
16
17
|
Or install it yourself as:
|
17
|
-
|
18
|
-
|
18
|
+
```shell
|
19
|
+
$ gem install adf_builder
|
20
|
+
```
|
19
21
|
|
20
22
|
## Usage
|
21
23
|
|
22
24
|
Quickly create the minimal lead found in the spec document
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
25
|
+
```ruby
|
26
|
+
builder = AdfBuilder::Builder.new
|
27
|
+
builder.minimal_lead
|
28
|
+
```
|
27
29
|
Start Building
|
30
|
+
```ruby
|
31
|
+
builder = AdfBuilder::Builder.new
|
32
|
+
builder.to_xml
|
33
|
+
```
|
34
|
+
|
28
35
|
|
29
|
-
|
30
|
-
|
36
|
+
Outputs
|
37
|
+
```xml
|
38
|
+
<?ADF version="1.0"?>
|
39
|
+
|
40
|
+
<?xml version="1.0"?>
|
41
|
+
<adf>
|
42
|
+
<prospect status="new">
|
43
|
+
<requestdate>2021-08-04T15:18:30+04:00</requestdate>
|
44
|
+
</prospect>
|
45
|
+
</adf>
|
46
|
+
```
|
31
47
|
|
32
|
-
Outputs
|
33
|
-
|
34
|
-
<?ADF version="1.0"?>
|
35
|
-
<?xml version="1.0"?>
|
36
|
-
<adf>
|
37
|
-
<prospect status="new">
|
38
|
-
<requestdate>2021-08-04T15:18:30+04:00</requestdate>
|
39
|
-
</prospect>
|
40
|
-
</adf>
|
41
48
|
|
42
49
|
Update Requestdate value
|
50
|
+
```ruby
|
51
|
+
builder = AdfBuilder::Builder.new
|
52
|
+
builder.base.prospect.request_date.update_val(Date.new(2021,12,12))
|
53
|
+
```
|
54
|
+
Outputs
|
43
55
|
|
44
|
-
|
45
|
-
|
56
|
+
```xml
|
57
|
+
<?ADF version="1.0"?>
|
46
58
|
|
47
|
-
|
59
|
+
<?xml version="1.0"?>
|
60
|
+
<adf>
|
61
|
+
<prospect status="new">
|
62
|
+
<requestdate>2021-12-12T00:00:00+00:00</requestdate>
|
63
|
+
</prospect>
|
64
|
+
</adf>
|
65
|
+
```
|
48
66
|
|
49
|
-
<?ADF version="1.0"?>
|
50
|
-
|
51
|
-
<?xml version="1.0"?>
|
52
|
-
<adf>
|
53
|
-
<prospect status="new">
|
54
|
-
<requestdate>2021-12-12T00:00:00+00:00</requestdate>
|
55
|
-
</prospect>
|
56
|
-
</adf>
|
57
67
|
|
58
68
|
Add ID tag to Prospect
|
69
|
+
```ruby
|
70
|
+
builder = AdfBuilder::Builder.new
|
71
|
+
builder.base.prospect.add_id('howdy', 'Ag')
|
72
|
+
```
|
73
|
+
|
74
|
+
Outputs
|
75
|
+
```xml
|
76
|
+
<?ADF version="1.0"?>
|
77
|
+
|
78
|
+
<?xml version="1.0"?>
|
79
|
+
<adf>
|
80
|
+
<prospect status="new">
|
81
|
+
<id sequence="1" source="Ag">howdy</id>
|
82
|
+
<requestdate>2021-08-04T15:24:16+04:00</requestdate>
|
83
|
+
</prospect>
|
84
|
+
</adf>
|
85
|
+
```
|
59
86
|
|
60
|
-
|
61
|
-
|
87
|
+
Add Vehicle
|
88
|
+
|
89
|
+
```ruby
|
90
|
+
builder = AdfBuilder::Builder.new
|
91
|
+
builder.base.prospect.vehicles.add(2021, 'Ford', 'Raptor')
|
92
|
+
```
|
62
93
|
|
63
94
|
Outputs
|
64
95
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
96
|
+
```xml
|
97
|
+
<?ADF version="1.0"?>
|
98
|
+
|
99
|
+
<?xml version="1.0"?>
|
100
|
+
<adf>
|
101
|
+
<prospect status="new">
|
102
|
+
<requestdate>2021-08-04T18:08:50+04:00</requestdate>
|
103
|
+
<vehicle interest="buy" status="new">
|
104
|
+
<year>2021</year>
|
105
|
+
<make>Ford</make>
|
106
|
+
<model>Raptor</model>
|
107
|
+
</vehicle>
|
108
|
+
</prospect>
|
109
|
+
</adf>
|
110
|
+
```
|
111
|
+
Add Vehicle with tags
|
112
|
+
|
113
|
+
```ruby
|
114
|
+
builder = AdfBuilder::Builder.new
|
115
|
+
builder.base.prospect.vehicles.add(2021, 'Toyota', 'Prius', {
|
116
|
+
interest: :sell,
|
117
|
+
status: :used,
|
118
|
+
vin: 'XXXXXXXXXX',
|
119
|
+
})
|
120
|
+
```
|
121
|
+
|
122
|
+
Outputs
|
74
123
|
|
124
|
+
```xml
|
125
|
+
<?ADF version="1.0"?>
|
126
|
+
|
127
|
+
<?xml version="1.0"?>
|
128
|
+
<adf>
|
129
|
+
<prospect status="new">
|
130
|
+
<requestdate>2021-08-04T18:16:31+04:00</requestdate>
|
131
|
+
<vehicle interest="sold" status="used">
|
132
|
+
<year>2021</year>
|
133
|
+
<make>Toyota</make>
|
134
|
+
<model>Prius</model>
|
135
|
+
<vin>XXXXXXXXXX</vin>
|
136
|
+
</vehicle>
|
137
|
+
</prospect>
|
138
|
+
</adf>
|
75
139
|
|
140
|
+
```
|
76
141
|
|
77
142
|
## Development
|
78
143
|
|
data/lib/adf_builder.rb
CHANGED
@@ -2,9 +2,15 @@
|
|
2
2
|
|
3
3
|
require_relative "adf_builder/version"
|
4
4
|
require_relative 'adf_builder/base'
|
5
|
+
require_relative 'adf_builder/id'
|
6
|
+
|
7
|
+
# BASE
|
5
8
|
require_relative 'adf_builder/base/prospect'
|
6
9
|
require_relative 'adf_builder/base/request_date'
|
7
|
-
|
10
|
+
|
11
|
+
# VEHICLES
|
12
|
+
require_relative 'adf_builder/vehicles/vehicles'
|
13
|
+
|
8
14
|
|
9
15
|
|
10
16
|
require 'ox'
|
@@ -10,13 +10,20 @@ module AdfBuilder
|
|
10
10
|
@doc.adf << Ox::Element.new("prospect")
|
11
11
|
@prospect = @doc.adf.prospect
|
12
12
|
@prospect[:status] = STATUSES[:new]
|
13
|
+
|
14
|
+
|
13
15
|
@request_date = RequestDate.new(@prospect)
|
16
|
+
@vehicles = Vehicles.new(@prospect)
|
14
17
|
end
|
15
18
|
|
16
19
|
def request_date
|
17
20
|
@request_date
|
18
21
|
end
|
19
22
|
|
23
|
+
def vehicles
|
24
|
+
@vehicles
|
25
|
+
end
|
26
|
+
|
20
27
|
# set status to renew
|
21
28
|
def set_renew
|
22
29
|
@prospect[:status] = STATUSES[:resend]
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module AdfBuilder
|
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'
|
9
|
+
}
|
10
|
+
|
11
|
+
STATUS_VALUES = {
|
12
|
+
new: 'new',
|
13
|
+
used: 'used'
|
14
|
+
}
|
15
|
+
|
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
|
+
}
|
26
|
+
|
27
|
+
def initialize(prospect)
|
28
|
+
@prospect = prospect
|
29
|
+
end
|
30
|
+
|
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
|
+
else
|
38
|
+
interest = INTEREST_VALUES[:buy]
|
39
|
+
end
|
40
|
+
|
41
|
+
if tags[:status]
|
42
|
+
status = STATUS_VALUES[tags[:status].to_sym]
|
43
|
+
tags.delete(:status)
|
44
|
+
else
|
45
|
+
status = STATUS_VALUES[:new]
|
46
|
+
end
|
47
|
+
|
48
|
+
vehicle[:interest] = interest
|
49
|
+
vehicle[:status] = status
|
50
|
+
|
51
|
+
vehicle << (Ox::Element.new('year') << year.to_s)
|
52
|
+
vehicle << (Ox::Element.new('make') << make)
|
53
|
+
vehicle << (Ox::Element.new('model') << model)
|
54
|
+
|
55
|
+
tags.each do |key, value|
|
56
|
+
if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
|
57
|
+
vehicle << (Ox::Element.new(key.to_s) << value)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
@prospect << vehicle
|
62
|
+
end
|
63
|
+
|
64
|
+
def add_id(index, value, source=nil, sequence=1)
|
65
|
+
if @prospect.locate("vehicle").empty? or @prospect.vehicle(index).nil?
|
66
|
+
false
|
67
|
+
else
|
68
|
+
Id.new.add(@prospect.vehicle(index), value, source, sequence)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
data/lib/adf_builder/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adf_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- marcus.salinas
|
@@ -49,6 +49,7 @@ files:
|
|
49
49
|
- lib/adf_builder/base/prospect.rb
|
50
50
|
- lib/adf_builder/base/request_date.rb
|
51
51
|
- lib/adf_builder/id.rb
|
52
|
+
- lib/adf_builder/vehicles/vehicles.rb
|
52
53
|
- lib/adf_builder/version.rb
|
53
54
|
homepage: https://github.com/jippylong12/adf_builder
|
54
55
|
licenses:
|