craigslist_price_it_right 0.1.0 → 0.1.1

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
  SHA1:
3
- metadata.gz: 5f92207699472dfd8f70a68969a5e2dd07392fbd
4
- data.tar.gz: eb06b28a7c66da9e94806661a0a7322cda731439
3
+ metadata.gz: 11c6a0da15fde4ed3761228169d40bab5a74ebb7
4
+ data.tar.gz: 695671cb40b1128429c28a50000d0168dcbe9bfe
5
5
  SHA512:
6
- metadata.gz: cd0e215f2ee523078a6f2ae87d6e2e40f66f3575ff5422125400ce73ccf344826705fcd81e014bf2cc07df0523a7821641b396bca217da3f913f43bba895b612
7
- data.tar.gz: 3844028748e9bb932a4134788aa2352a489bfc068a0e0f7bcff572793a9a4aec07765c89ac156407731be90c8725714bb3dbec2c5a19051e1a039cf8ece71857
6
+ metadata.gz: f227786bbac77b3785d9ba07ba345e4ad92464f6057d7bc20a7290e663cc69bee6f4990ae7be9fd62fcfae3c5e36162f1b660fd8aad3d91da5633955ac2149da
7
+ data.tar.gz: 326a1c02646a696a6f8d1056a929edcf8dece91ba5456ed4fd09107de367dea986c3930cf0f10ebb95c0cc52d3240476afcf9ddb0e94b8e25e05aba6190b0251
@@ -1,6 +1,6 @@
1
1
  require 'nokogiri'
2
2
  require 'open-uri'
3
- #require 'pry' #uncomment this to enable debugging session
3
+ require 'pry' #uncomment this to enable debugging session
4
4
 
5
5
  require_relative '../lib/concerns/concerns.rb'
6
6
  require_relative '../lib/craigslist_price_it_right/version'
@@ -31,8 +31,8 @@ Gem::Specification.new do |spec|
31
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
32
  spec.require_paths = ["lib"]
33
33
 
34
- spec.add_development_dependency "bundler", "~> 1.14"
35
- spec.add_development_dependency "rake", "~> 10.0"
36
- spec.add_development_dependency "nokogiri", "~> 1.8"
37
-
34
+ spec.add_runtime_dependency "bundler", "~> 1.14"
35
+ spec.add_runtime_dependency "rake", "~> 10.0"
36
+ spec.add_runtime_dependency "nokogiri", "~> 1.8"
37
+ spec.add_development_dependency "pry", "~> 0.10.4", ">=0.10.1"
38
38
  end
@@ -105,10 +105,32 @@ module Concerns
105
105
  @stats[:mean] = values.reduce(:+)/@stats[:volume]
106
106
  @stats[:min] = values.min
107
107
  @stats[:max] = values.max
108
+ @stats[:range] = @stats[:max] - @stats[:min]
108
109
  end
109
110
  @stats
110
111
  end
111
112
 
113
+ def quartile
114
+ values = yield.collect{|item| item.price}
115
+ if values != []
116
+ @stat[:volume] = values.length #TODO clean up stuff double check on rounding math for indeces
117
+ if @stats[:volume] % 2 == 0
118
+ @stats[:median] = (values[@stats[:volume]/2] + values[@stats[:volume]/2 - 1]) / 2
119
+ q1 = values[@stats[:volume]/4]
120
+ q3 = values[@stats[:volume]/2 + @stats[:volume]/4]
121
+ else
122
+ mid = @stats[:volume]/2
123
+ @stats[:median] = values[mid]
124
+ q1 = values[mid/2]
125
+ q3 = values[mid + mid/2]
126
+ end
127
+ end
128
+ iqr = q3 - q1
129
+ iqr1 = q1 - 1.5 * iqr
130
+ iqr3 = q3 + 1.5 * iqr
131
+ values.collect{|value| value if value.between?(iqr1,iqr3)}
132
+ end
133
+
112
134
  end
113
135
 
114
136
  end
@@ -1,3 +1,3 @@
1
1
  module CraigslistPriceItRight
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -38,7 +38,7 @@ class CL_Scraper
38
38
  listings = noko_page(category)
39
39
  num_listings = listings.search(".totalcount").first.text.to_i
40
40
  page_count = 1
41
- while page_count <= (num_listings/PER_PAGE).floor
41
+ while page_count <= (num_listings/PER_PAGE).floor + 1
42
42
  page_url = category + "?s=" + "#{page_count*PER_PAGE}"
43
43
  scrape_page(page_url)
44
44
  sleep rand(5..8) #Sleep to help avoid CL API from banning IP!
data/lib/price_manager.rb CHANGED
@@ -47,7 +47,7 @@ class PriceManager
47
47
  when "pid"
48
48
  process_pid
49
49
  when "debug"
50
- #binding.pry #uncomment this line and require 'pry' to allow debug session
50
+ binding.pry #uncomment this line and require 'pry' to allow debug session
51
51
  when "q"
52
52
  run = false
53
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: craigslist_price_it_right
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - zoebisch
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-28 00:00:00.000000000 Z
11
+ date: 2017-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -17,7 +17,7 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.14'
20
- type: :development
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
@@ -31,7 +31,7 @@ dependencies:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
- type: :development
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
@@ -45,13 +45,33 @@ dependencies:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.8'
48
- type: :development
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.8'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.10.4
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 0.10.1
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: 0.10.4
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 0.10.1
55
75
  description: Program sets up menu from scraped for-sale items, allows user to select
56
76
  a category, drills into second level data and self constructs sub-menu, allows user
57
77
  to search for a for-sale item, returns list of items, can sort by price, sort by