Class: Scraper::ImeiReport
- Inherits:
-
Object
- Object
- Scraper::ImeiReport
- Defined in:
- lib/scraper/imei_report.rb
Overview
ImeiReport class which comunicates with parser and crawler
Instance Method Summary (collapse)
-
- (Hash) get(imei)
Get IMEI info.
-
- (ImeiReport) initialize
constructor
Initialize.
-
- (Boolean) valid?(imei)
Validate IMEI number.
Constructor Details
- (ImeiReport) initialize
Initialize
9 10 11 12 |
# File 'lib/scraper/imei_report.rb', line 9 def initialize @crawler = Crawler::AppleImei.new @parser = Parser::ImeiPage.new end |
Instance Method Details
- (Hash) get(imei)
Get IMEI info
21 22 23 24 25 26 27 28 29 |
# File 'lib/scraper/imei_report.rb', line 21 def get(imei) ret = {imei: imei, valid: valid?(imei)} return ret unless ret[:valid] @crawler.request_imei(imei) ret[:status] = @crawler.status_code ret[:result] = @parser.parse(@crawler.page) if @crawler.parsable? ret end |
- (Boolean) valid?(imei)
Validate IMEI number
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/scraper/imei_report.rb', line 38 def valid?(imei) imei = imei.to_s return false unless /\A\d{15}\z/ =~ imei nums = imei[0, 14].split("").map(&:to_i) .each_with_index .map { |n, i| (i % 2).zero? ? n : (n*2).to_s.split("") } sum = [nums].flatten.map(&:to_i).reduce(&:+) 10 - sum % 10 == imei[-1].to_i end |