adf_builder 0.3.0 → 1.0.0

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.
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AdfBuilder
4
+ module Validations
5
+ def self.included(base)
6
+ base.extend(ClassMethods)
7
+ end
8
+
9
+ module ClassMethods
10
+ def validates_inclusion_of(attribute, in:)
11
+ @validations ||= []
12
+ @validations << { type: :inclusion, attribute: attribute, in: binding.local_variable_get(:in) }
13
+ end
14
+
15
+ def validations
16
+ @validations || []
17
+ end
18
+ end
19
+
20
+ def validate!
21
+ self.class.validations.each do |validation|
22
+ value = @attributes[validation[:attribute]]
23
+ next if value.nil? # Allow nil unless presence validation is added
24
+
25
+ next unless validation[:type] == :inclusion
26
+
27
+ allowed = validation[:in]
28
+ unless allowed.include?(value)
29
+ raise AdfBuilder::Error,
30
+ "Invalid value for #{validation[:attribute]}: #{value}. Allowed: #{allowed.join(", ")}"
31
+ end
32
+ end
33
+
34
+ # Recursively validate children
35
+ @children.each(&:validate!)
36
+ end
37
+ end
38
+ end
@@ -1,7 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AdfBuilder
2
4
  class ColorCombinations
3
-
4
- FREE_TEXT_OPTIONAL_TAGS = [:interiorcolor, :exteriorcolor, :preference]
5
+ FREE_TEXT_OPTIONAL_TAGS = %i[interiorcolor exteriorcolor preference].freeze
5
6
 
6
7
  def initialize(vehicle)
7
8
  @vehicle = vehicle
@@ -9,23 +10,21 @@ module AdfBuilder
9
10
  end
10
11
 
11
12
  def add(interior_color, exterior_color, preference)
12
- @color_combination = Ox::Element.new('colorcombination')
13
+ @color_combination = Ox::Element.new("colorcombination")
13
14
  @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
15
+ (Ox::Element.new("interiorcolor") << interior_color) <<
16
+ (Ox::Element.new("exteriorcolor") << exterior_color) <<
17
+ (Ox::Element.new("preference") << preference.to_s)
18
+ @vehicle << @color_combination
18
19
  end
19
20
 
20
21
  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
22
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@vehicle, "colorcombination", index)
23
+ return unless valid
24
+
25
+ tags.each do |key, value|
26
+ AdfBuilder::Builder.update_node(vehicle, key, value) if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
28
27
  end
29
28
  end
30
29
  end
31
- end
30
+ end
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AdfBuilder
2
4
  class Price
3
-
4
5
  VALID_PARAMETERS = {
5
- price: [:type, :currency, :delta, :relativeto, :source]
6
- }
6
+ price: %i[type currency delta relativeto source]
7
+ }.freeze
7
8
 
8
9
  VALID_VALUES = {
9
10
  price: {
@@ -13,30 +14,30 @@ module AdfBuilder
13
14
  relativeto: %w[msrp invoice],
14
15
  source: true
15
16
  }
16
- }
17
+ }.freeze
17
18
 
18
- def initialize(parent_node, value, params={})
19
+ def initialize(parent_node, value, params = {})
19
20
  @parent_node = parent_node
20
- params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
21
+ params.merge!({ valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS })
21
22
  validate_currency(params)
22
- AdfBuilder::Builder.update_node(@parent_node, :price, value, params)
23
+ AdfBuilder::Builder.update_node(@parent_node, :price, value, params)
23
24
  @price = @parent_node.price
24
25
  end
25
26
 
26
- def update(value, params={})
27
- params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
28
- AdfBuilder::Builder.update_node(@parent_node, :price, value, params)
27
+ def update(value, params = {})
28
+ params.merge!({ valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS })
29
+ AdfBuilder::Builder.update_node(@parent_node, :price, value, params)
29
30
  end
30
31
 
31
32
  def validate_currency(params)
32
33
  code = params[:currency]
33
- if code
34
- json = JSON.parse(File.read('./lib/adf_builder/data/iso-4217-currency-codes.json'))
35
- codes = json.map{|j| j['Alphabetic_Code']}.reject{|j| j.nil?}
36
- unless codes.include? code
37
- params.delete(:currency)
38
- end
39
- end
34
+ return unless code
35
+
36
+ json = JSON.parse(File.read("./lib/adf_builder/data/iso-4217-currency-codes.json"))
37
+ codes = json.map { |j| j["Alphabetic_Code"] }.reject(&:nil?)
38
+ return if codes.include? code
39
+
40
+ params.delete(:currency)
40
41
  end
41
42
  end
42
- end
43
+ end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AdfBuilder
2
4
  class Vehicles
3
5
  VALID_PARAMETERS = {
4
- vehicle: [:interest, :status],
5
- odometer: [:status, :units],
6
- imagetag: [:width, :height, :alttext],
7
- }
6
+ vehicle: %i[interest status],
7
+ odometer: %i[status units],
8
+ imagetag: %i[width height alttext]
9
+ }.freeze
8
10
 
9
11
  VALID_VALUES = {
10
12
  vehicle: {
@@ -20,12 +22,12 @@ module AdfBuilder
20
22
  height: true,
21
23
  alttext: true
22
24
  }
23
- }
25
+ }.freeze
24
26
 
25
- FREE_TEXT_OPTIONAL_TAGS = [:year, :make, :model, :vin, :stock,
26
- :trim, :doors, :bodystyle, :transmission, :pricecomments, :comments]
27
+ FREE_TEXT_OPTIONAL_TAGS = %i[year make model vin stock
28
+ trim doors bodystyle transmission pricecomments comments].freeze
27
29
 
28
- CONDITIONS = %w[excellent good fair poor unknown]
30
+ CONDITIONS = %w[excellent good fair poor unknown].freeze
29
31
 
30
32
  def initialize(prospect)
31
33
  @prospect = prospect
@@ -34,12 +36,12 @@ module AdfBuilder
34
36
  end
35
37
 
36
38
  def add_color_combination(v_index, interior_color, exterior_color, preference)
37
- valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', v_index)
38
- if valid
39
- cc = ColorCombinations.new(vehicle)
40
- cc.add(interior_color, exterior_color, preference)
41
- @color_combinations.push(cc)
42
- end
39
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect, "vehicle", v_index)
40
+ return unless valid
41
+
42
+ cc = ColorCombinations.new(vehicle)
43
+ cc.add(interior_color, exterior_color, preference)
44
+ @color_combinations.push(cc)
43
45
  end
44
46
 
45
47
  def color_combination(index)
@@ -50,74 +52,72 @@ module AdfBuilder
50
52
  @prices[index]
51
53
  end
52
54
 
53
- def add(year, make, model, params={})
54
- vehicle = Ox::Element.new('vehicle')
55
+ def add(year, make, model, params = {})
56
+ vehicle = Ox::Element.new("vehicle")
55
57
 
56
- params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
58
+ params.merge!({ valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS })
57
59
  AdfBuilder::Builder.update_params(vehicle, :vehicle, params)
58
60
 
59
- vehicle << (Ox::Element.new('year') << year.to_s)
60
- vehicle << (Ox::Element.new('make') << make)
61
- vehicle << (Ox::Element.new('model') << model)
61
+ vehicle << (Ox::Element.new("year") << year.to_s)
62
+ vehicle << (Ox::Element.new("make") << make)
63
+ vehicle << (Ox::Element.new("model") << model)
62
64
 
63
65
  @prospect << vehicle
64
66
  end
65
67
 
66
- def update_odometer(index, value, params={})
67
- valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
68
- if valid
69
- params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
70
- AdfBuilder::Builder.update_node(vehicle, 'odometer', value, params)
71
- end
68
+ def update_odometer(index, value, params = {})
69
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect, "vehicle", index)
70
+ return unless valid
71
+
72
+ params.merge!({ valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS })
73
+ AdfBuilder::Builder.update_node(vehicle, "odometer", value, params)
72
74
  end
73
75
 
74
76
  def update_condition(index, value)
75
- valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
76
- if valid and CONDITIONS.include? value
77
- AdfBuilder::Builder.update_node(vehicle, 'condition', value)
78
- end
77
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect, "vehicle", index)
78
+ return unless valid && CONDITIONS.include?(value)
79
+
80
+ AdfBuilder::Builder.update_node(vehicle, "condition", value)
79
81
  end
80
82
 
81
- def update_imagetag(index, value, params={})
82
- valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
83
- if valid
84
- params.merge!({valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS})
85
- AdfBuilder::Builder.update_node(vehicle, 'imagetag', value, params)
86
- end
83
+ def update_imagetag(index, value, params = {})
84
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect, "vehicle", index)
85
+ return unless valid
86
+
87
+ params.merge!({ valid_values: VALID_VALUES, valid_parameters: VALID_PARAMETERS })
88
+ AdfBuilder::Builder.update_node(vehicle, "imagetag", value, params)
87
89
  end
88
90
 
89
91
  def update_tags_with_free_text(index, tags)
90
- valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
91
- if valid
92
- tags.each do |key, value|
93
- if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
94
- AdfBuilder::Builder.update_node(vehicle, key, value)
95
- end
96
- end
92
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect, "vehicle", index)
93
+ return unless valid
94
+
95
+ tags.each do |key, value|
96
+ AdfBuilder::Builder.update_node(vehicle, key, value) if FREE_TEXT_OPTIONAL_TAGS.include? key.to_sym
97
97
  end
98
98
  end
99
99
 
100
- def add_id(index, value, source=nil, sequence=1)
101
- if @prospect.locate("vehicle").empty? or @prospect.vehicle(index).nil?
100
+ def add_id(index, value, source = nil, sequence = 1)
101
+ if @prospect.locate("vehicle").empty? || @prospect.vehicle(index).nil?
102
102
  false
103
103
  else
104
104
  Id.new.add(@prospect.vehicle(index), value, source, sequence)
105
105
  end
106
106
  end
107
107
 
108
- def add_price(index, value, params={})
109
- valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
110
- if valid
111
- price = Price.new(vehicle, value, params)
112
- @prices.push(price)
113
- end
108
+ def add_price(index, value, params = {})
109
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect, "vehicle", index)
110
+ return unless valid
111
+
112
+ price = Price.new(vehicle, value, params)
113
+ @prices.push(price)
114
114
  end
115
115
 
116
116
  def add_comments(index, value)
117
- valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect,'vehicle', index)
118
- if valid
119
- AdfBuilder::Builder.update_node(vehicle, 'comments', value)
120
- end
117
+ valid, vehicle = AdfBuilder::Builder.valid_child?(@prospect, "vehicle", index)
118
+ return unless valid
119
+
120
+ AdfBuilder::Builder.update_node(vehicle, "comments", value)
121
121
  end
122
122
  end
123
- end
123
+ end
@@ -1,34 +1,31 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AdfBuilder
2
4
  class Vendor
3
5
  def initialize(prospect)
4
- @vendor = Ox::Element.new('vendor')
6
+ @vendor = Ox::Element.new("vendor")
5
7
  @contact = nil
6
8
  prospect << @vendor
7
9
  end
8
10
 
9
- def contact
10
- @contact
11
- end
11
+ attr_reader :contact
12
12
 
13
- def add(name, contact_name, opts={})
14
- @vendor << (Ox::Element.new('vendorname') << name)
13
+ def add(name, contact_name, opts = {})
14
+ @vendor << (Ox::Element.new("vendorname") << name)
15
15
  @contact = Contact.new(@vendor, contact_name, opts)
16
16
  end
17
17
 
18
18
  def add_url(url)
19
- if @vendor.locate("url").size > 0
20
- @vendor.remove_children(@vendor.url)
21
- end
22
- @vendor << (Ox::Element.new('url') << url)
19
+ @vendor.remove_children(@vendor.url) if @vendor.locate("url").size.positive?
20
+ @vendor << (Ox::Element.new("url") << url)
23
21
  end
24
22
 
25
- def add_id(index, value, source=nil, sequence=1)
23
+ def add_id(index, value, source = nil, sequence = 1)
26
24
  if @prospect.locate("vendor").empty?
27
25
  false
28
26
  else
29
27
  Id.new.add(@prospect.vendor(index), value, source, sequence)
30
28
  end
31
29
  end
32
-
33
30
  end
34
- end
31
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AdfBuilder
4
- VERSION = "0.3.0"
4
+ VERSION = "1.0.0"
5
5
  end
data/lib/adf_builder.rb CHANGED
@@ -1,39 +1,50 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ox'
4
- require 'json'
3
+ require "ox"
4
+ require "json"
5
5
 
6
6
  require_relative "adf_builder/version"
7
7
 
8
8
  # CUSTOMER
9
- require_relative 'adf_builder/customer/customer'
10
- require_relative 'adf_builder/customer/timeframe'
9
+ require_relative "adf_builder/customer/customer"
10
+ require_relative "adf_builder/customer/timeframe"
11
11
 
12
12
  # BASE
13
- require_relative 'adf_builder/base/base'
14
- require_relative 'adf_builder/base/prospect'
15
- require_relative 'adf_builder/base/request_date'
13
+ require_relative "adf_builder/base/base"
14
+ require_relative "adf_builder/base/prospect"
15
+ require_relative "adf_builder/base/request_date"
16
16
 
17
17
  # PROVIDER
18
- require_relative 'adf_builder/provider/provider'
18
+ require_relative "adf_builder/provider/provider"
19
19
 
20
20
  # SHARED
21
- require_relative 'adf_builder/shared/id'
22
- require_relative 'adf_builder/shared/contact'
21
+ require_relative "adf_builder/shared/id"
22
+ require_relative "adf_builder/shared/contact"
23
23
 
24
24
  # VEHICLES
25
- require_relative 'adf_builder/vehicles/vehicles'
26
- require_relative 'adf_builder/vehicles/colorcombinations'
27
- require_relative 'adf_builder/vehicles/price'
25
+ require_relative "adf_builder/vehicles/vehicles"
26
+ require_relative "adf_builder/vehicles/colorcombinations"
27
+ require_relative "adf_builder/vehicles/price"
28
28
 
29
29
  # VENDOR
30
- require_relative 'adf_builder/vendor/vendor'
30
+ require_relative "adf_builder/vendor/vendor"
31
+
32
+ # v1.0 DSL
33
+ # v1.0 DSL
34
+ require_relative "adf_builder/validations"
35
+ require_relative "adf_builder/nodes/node"
36
+ require_relative "adf_builder/nodes/prospect"
37
+ require_relative "adf_builder/nodes/vehicle"
38
+ require_relative "adf_builder/nodes/customer"
39
+ require_relative "adf_builder/serializer"
40
+ require_relative "adf_builder/dsl"
31
41
 
32
42
  module AdfBuilder
33
43
  class Error < StandardError; end
44
+
34
45
  class Builder
35
46
  def initialize
36
- @doc = self.init_doc
47
+ @doc = init_doc
37
48
  @base = Base.new(@doc)
38
49
  end
39
50
 
@@ -51,17 +62,17 @@ module AdfBuilder
51
62
  prospect = Ox::Element.new("prospect")
52
63
 
53
64
  request_date = Ox::Element.new("requestdate")
54
- request_date << '2000-03-30T15:30:20-08:00'
65
+ request_date << "2000-03-30T15:30:20-08:00"
55
66
 
56
- vehicle = Ox::Element.new('vehicle')
67
+ vehicle = Ox::Element.new("vehicle")
57
68
  year = Ox::Element.new("year")
58
- year << '1999'
69
+ year << "1999"
59
70
 
60
71
  make = Ox::Element.new("make")
61
- make << 'Chevrolet'
72
+ make << "Chevrolet"
62
73
 
63
74
  model = Ox::Element.new("model")
64
- model << 'Blazer'
75
+ model << "Blazer"
65
76
 
66
77
  vehicle << year << make << model
67
78
 
@@ -70,11 +81,11 @@ module AdfBuilder
70
81
  contact = Ox::Element.new("contact")
71
82
 
72
83
  name = Ox::Element.new("name")
73
- name[:part] = 'full'
74
- name << 'John Doe'
84
+ name[:part] = "full"
85
+ name << "John Doe"
75
86
 
76
87
  phone = Ox::Element.new("phone")
77
- phone << '393-999-3922'
88
+ phone << "393-999-3922"
78
89
 
79
90
  contact << name << phone
80
91
  customer << contact
@@ -83,8 +94,8 @@ module AdfBuilder
83
94
 
84
95
  contact = Ox::Element.new("contact")
85
96
  name = Ox::Element.new("name")
86
- name[:part] = 'full'
87
- name << 'Acura of Bellevue'
97
+ name[:part] = "full"
98
+ name << "Acura of Bellevue"
88
99
 
89
100
  contact << name
90
101
  vendor << contact
@@ -104,11 +115,11 @@ module AdfBuilder
104
115
  def init_doc
105
116
  doc = Ox::Document.new
106
117
  instruct = Ox::Instruct.new(:xml)
107
- instruct[:version] = '1.0'
118
+ instruct[:version] = "1.0"
108
119
  doc << instruct
109
120
  doc << Ox::Raw.new("")
110
- instruct = Ox::Instruct.new('ADF')
111
- instruct[:version] = '1.0'
121
+ instruct = Ox::Instruct.new("ADF")
122
+ instruct[:version] = "1.0"
112
123
  doc << instruct
113
124
  adf = Ox::Element.new("adf")
114
125
  doc << adf
@@ -116,10 +127,10 @@ module AdfBuilder
116
127
  end
117
128
 
118
129
  # we will either create a new node with the value or replace the one if it is available
119
- def self.update_node(parent_node, key, value, params={})
130
+ def self.update_node(parent_node, key, value, params = {})
120
131
  key = key.to_s
121
132
  value = value.to_s
122
- if parent_node.locate(key).size > 0
133
+ if parent_node.locate(key).size.positive?
123
134
  node = parent_node.locate(key).first
124
135
  node.replace_text(value)
125
136
  else
@@ -133,12 +144,13 @@ module AdfBuilder
133
144
  # update the params by first checking if they are valid params and then checking if the values are valid if necessary
134
145
  def self.update_params(node, key, params)
135
146
  return true if params.empty?
147
+
136
148
  key = key.to_sym
137
149
  valid_values = params[:valid_values]
138
150
  valid_parameters = params[:valid_parameters]
139
- _params = AdfBuilder::Builder.whitelabel_params(params,valid_parameters, key)
140
- _params.each do |k,v|
141
- node[k] = v if valid_values[key][k] == true or valid_values[key][k].include? v.to_s
151
+ _params = AdfBuilder::Builder.whitelabel_params(params, valid_parameters, key)
152
+ _params.each do |k, v|
153
+ node[k] = v if (valid_values[key][k] == true) || valid_values[key][k].include?(v.to_s)
142
154
  end
143
155
  end
144
156
 
@@ -149,7 +161,7 @@ module AdfBuilder
149
161
 
150
162
  def self.valid_child?(parent, tag_name, index)
151
163
  child = parent.locate(tag_name)[index]
152
- return !child.nil?,child
164
+ [!child.nil?, child]
153
165
  end
154
166
  end
155
167
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adf_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - marcus.salinas
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-11-28 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: ox
@@ -24,6 +23,62 @@ dependencies:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
25
  version: '2.14'
26
+ - !ruby/object:Gem::Dependency
27
+ name: nokogiri
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.15'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.15'
40
+ - !ruby/object:Gem::Dependency
41
+ name: rake
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '13.2'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '13.2'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rspec
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.13'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.13'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rubocop
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.70'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.70'
27
82
  description: Easily create XML in ADF format to send by email.
28
83
  email:
29
84
  - 12.marcus.salinas@gmail.com
@@ -51,9 +106,16 @@ files:
51
106
  - lib/adf_builder/customer/customer.rb
52
107
  - lib/adf_builder/customer/timeframe.rb
53
108
  - lib/adf_builder/data/iso-4217-currency-codes.json
109
+ - lib/adf_builder/dsl.rb
110
+ - lib/adf_builder/nodes/customer.rb
111
+ - lib/adf_builder/nodes/node.rb
112
+ - lib/adf_builder/nodes/prospect.rb
113
+ - lib/adf_builder/nodes/vehicle.rb
54
114
  - lib/adf_builder/provider/provider.rb
115
+ - lib/adf_builder/serializer.rb
55
116
  - lib/adf_builder/shared/contact.rb
56
117
  - lib/adf_builder/shared/id.rb
118
+ - lib/adf_builder/validations.rb
57
119
  - lib/adf_builder/vehicles/colorcombinations.rb
58
120
  - lib/adf_builder/vehicles/price.rb
59
121
  - lib/adf_builder/vehicles/vehicles.rb
@@ -66,7 +128,6 @@ metadata:
66
128
  homepage_uri: https://github.com/jippylong12/adf_builder
67
129
  source_code_uri: https://github.com/jippylong12/adf_builder
68
130
  changelog_uri: https://github.com/jippylong12/adf_builder/blob/main/CHANGELOG.md
69
- post_install_message:
70
131
  rdoc_options: []
71
132
  require_paths:
72
133
  - lib
@@ -74,15 +135,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
74
135
  requirements:
75
136
  - - ">="
76
137
  - !ruby/object:Gem::Version
77
- version: 2.4.0
138
+ version: 3.0.0
78
139
  required_rubygems_version: !ruby/object:Gem::Requirement
79
140
  requirements:
80
141
  - - ">="
81
142
  - !ruby/object:Gem::Version
82
143
  version: '0'
83
144
  requirements: []
84
- rubygems_version: 3.1.6
85
- signing_key:
145
+ rubygems_version: 3.7.2
86
146
  specification_version: 4
87
147
  summary: Create XML for the Auto-base Date Format
88
148
  test_files: []