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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a45dd0135682b562fe9fe49cacd5590a0da5c702894ae9f0b888d1d48c6536c
4
- data.tar.gz: 479f5c42eb07d457a0196abe35192f719d77a953bf6045739a3944157ff41434
3
+ metadata.gz: 1b52ffaa62f849533560890d14c698c1de3e4475b347c23d43a12cb5c75ea42c
4
+ data.tar.gz: 3a1d8dd414e73453ca32d768406518b01648c555e1c9e0cf8416f06924321d64
5
5
  SHA512:
6
- metadata.gz: 1d43d0eb120efacce6e7e52e610a51435f7d9dbc2f0cd366dbeae29f57eb1446ff220e70ce600dd8adeb9b33a0609d897a34ba4efa519af631777d9413563c6d
7
- data.tar.gz: 63e65e9fa0fe65d6a285bdf52d246ab4f075fefd297fe9fda70d6784358a502ec2924f5dce41f5e5209cbc09835898e646784b9976aa7b237880559bfa297a96
6
+ metadata.gz: 2b2361f9fe58e67dbbce7990b045d791383e5a07c164ad82b4ec3b72099d8d220b75942c45e974e82e7ce885cc5a5c3af56e247dd517126998fd7232ce508ed6
7
+ data.tar.gz: e4beaad79cc2613f219c34ac1aa291a87ac186b9240c5f23e32d344886673bc4eb746b180029fdd2feee661aed9976612a46fc46a41dbfc75844ded7d3234c16
data/CHANGELOG.md CHANGED
@@ -1,11 +1,24 @@
1
1
  ## [Unreleased]
2
- - Add Vehicle structure
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- adf_builder (0.0.1)
4
+ adf_builder (0.0.2)
5
5
  ox (~> 2.14)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -10,69 +10,134 @@ gem 'adf_builder'
10
10
  ```
11
11
 
12
12
  And then execute:
13
-
14
- $ bundle install
13
+ ```shell
14
+ $ bundle install
15
+ ```
15
16
 
16
17
  Or install it yourself as:
17
-
18
- $ gem install adf_builder
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
- builder = AdfBuilder::Builder.new
25
- builder.minimal_lead
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
- builder = AdfBuilder::Builder.new
30
- builder.to_xml
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
- builder = AdfBuilder::Builder.new
45
- builder.base.prospect.request_date.update_val(Date.new(2021,12,12))
56
+ ```xml
57
+ <?ADF version="1.0"?>
46
58
 
47
- Outputs
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
- builder = AdfBuilder::Builder.new
61
- builder.base.prospect.add_id('howdy', 'Ag')
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
- <?ADF version="1.0"?>
66
-
67
- <?xml version="1.0"?>
68
- <adf>
69
- <prospect status="new">
70
- <id sequence="1" source="Ag">howdy</id>
71
- <requestdate>2021-08-04T15:24:16+04:00</requestdate>
72
- </prospect>
73
- </adf>
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
- require_relative 'adf_builder/id'
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]
@@ -7,7 +7,6 @@ module AdfBuilder
7
7
  @request_date_node = Ox::Element.new('requestdate')
8
8
  @request_date_node << DateTime.now.strftime('%FT%T%:z')
9
9
  prospect_node << @request_date_node
10
- @request_date_node
11
10
  end
12
11
 
13
12
  def update_val(datetime_value, format=1)
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AdfBuilder
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
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.2
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: