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 |