adf_builder 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|