book-value 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: 0a11cb94c2fb19399434dc294c4e173f13b606fda34cab984577f429a29e7806
4
- data.tar.gz: df5f6035353da19dd775e8b77f45eef7a4a81baa27bc0b3585fd2564254d04f3
3
+ metadata.gz: ed291369351306ff8e17eba798235e353214752282ae1b9b48a5174366664ba6
4
+ data.tar.gz: a34bf2c5abdd71e46237096ee49199619bf0f7c033c4a32b049f72d61b24cfe2
5
5
  SHA512:
6
- metadata.gz: f57c9cdf267e562991df15e675bdff55475859e111f7cb0f4a65df3546fef5e0c2d3157c1dbf997ef2c9d25eddfb4f2ad1467004415c5e78bc8bc4bc942ae35e
7
- data.tar.gz: 8fbbe6a05a7d0099e708a1c43f4d21f97c146bcef883e636ed082873e01ca1609b5018c2d27c413d3d4fa75f711ab274d5ef1efd11954ae6d9b1331b3969bd5e
6
+ metadata.gz: e20a91c25c2975525f2f10cd29d07ce39832b9bd4569d812fc600fa77e43c05108c1523981a13e3e723459b42c0e349cdbf2d0f04994dd41ffc0efea3fa64b2b
7
+ data.tar.gz: 017ad5d8a9757fd8433b154d5869162c271c2b43bb6c8457d2722d0cda76c2fe6f94f1c1a57eb4bf3bac146bd8eed8c4a1ffe20092ec4369e1561c8c7f2402c7
@@ -38,50 +38,60 @@ module BookValue
38
38
  options
39
39
  end
40
40
 
41
+ # TODO: Fix model to try `-`
41
42
  def car_features(make, model)
42
- raw_page = authorise_and_send(http_method: :get, command: "calculate/#{make.downcase}/#{model.downcase.gsub(' ', '')}")
43
- doc = Nokogiri::HTML(raw_page['body'])
43
+ process_model(model) do |model_name|
44
+ raw_page = authorise_and_send(http_method: :get, command: "calculate/#{make.downcase}/#{model_name}")
45
+ next if raw_page == {}
44
46
 
45
- raw_page = authorise_and_send(http_method: :get, command: "calculate/#{make.downcase}/#{model.downcase.gsub(' ', '')}")
46
- doc = Nokogiri::HTML(raw_page['body'])
47
+ doc = Nokogiri::HTML(raw_page['body'])
47
48
 
48
- checkbox_options = {}
49
+ checkbox_options = {}
49
50
 
50
- doc.css(".list-group li div").each do |checkbox|
51
- input_of_child = checkbox.children.find { |child| child.name == 'input' }
52
- label_of_child = checkbox.children.find { |child| child.name == 'label' }
51
+ doc.css(".list-group li div").each do |checkbox|
52
+ input_of_child = checkbox.children.find { |child| child.name == 'input' }
53
+ label_of_child = checkbox.children.find { |child| child.name == 'label' }
53
54
 
54
- checkbox_options[input_of_child[:name]] = label_of_child.children.first.to_s
55
- end
55
+ checkbox_options[input_of_child[:name]] = label_of_child.children.first.to_s
56
+ end
56
57
 
57
- checkbox_options
58
+ return checkbox_options
59
+ end
58
60
  end
59
61
 
60
62
  # Features are just the list of features
61
63
  # condition_score is between 1-10, 10 is perfect, 1 is bad
62
64
  def get_book_value(make, model, features, mileage, year, condition_score = 10)
63
- feature_params = ""
65
+ process_model(model) do |model_name|
66
+ feature_params = ""
64
67
 
65
- features.each do |feature_id|
66
- feature_params = "#{feature_params}#{feature_id}=on&"
67
- end
68
+ features.each do |feature_id|
69
+ feature_params = "#{feature_params}#{feature_id}=on&"
70
+ end
68
71
 
69
- feature_params = feature_params[0..-2]
72
+ feature_params = feature_params[0..-2]
70
73
 
71
- milage_form_page = authorise_and_send(http_method: :post, payload: feature_params, command: "calculate/#{make.downcase}/#{model.downcase.gsub(' ', '')}")
72
- condition_url = milage_form_page['headers']['location']
74
+ milage_form_page = authorise_and_send(http_method: :post, payload: feature_params, command: "calculate/#{make.downcase}/#{model_name}")
75
+ next if milage_form_page == {}
73
76
 
74
- _condition_page = HTTParty.post(condition_url, body: "mileage=#{mileage}&year=#{year}")
77
+ condition_url = milage_form_page['headers']['location']
75
78
 
76
- book_value_url = condition_url.gsub('/4', '/5')
77
- book_value_page = HTTParty.post(book_value_url, body: "condition_score=#{condition_score}")
79
+ _condition_page = HTTParty.post(condition_url, body: "mileage=#{mileage}&year=#{year}")
78
80
 
79
- doc = Nokogiri::HTML(book_value_page.body)
80
- doc.at('h4').text
81
+ book_value_url = condition_url.gsub('/4', '/5')
82
+ book_value_page = HTTParty.post(book_value_url, body: "condition_score=#{condition_score}")
83
+
84
+ doc = Nokogiri::HTML(book_value_page.body)
85
+ return doc.at('h4').text
86
+ end
81
87
  end
82
88
 
83
89
  private
84
90
 
91
+ def process_model(model)
92
+ [model.downcase.gsub(' ', ''), model.downcase.gsub(' ', '-')]
93
+ end
94
+
85
95
  def img_path(name)
86
96
  "#{base_path}/data/makes/#{snake_case(name)}"
87
97
  end
@@ -1,3 +1,3 @@
1
1
  module BookValue
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: book-value
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
  - trex22