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 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: