Class: Base

Inherits:
Sinatra::Base
  • Object
show all
Defined in:
lib/base_scraper_service/base.rb

Instance Method Summary collapse

Instance Method Details

#constantize(lower_case_string) ⇒ Object



63
64
65
# File 'lib/base_scraper_service/base.rb', line 63

def constantize(lower_case_string)
  "#{lower_case_string.split('_').collect(&:capitalize).join + 'OffersService'}".constantize
end

#filter_offers(offers) ⇒ Object



56
57
58
59
60
61
# File 'lib/base_scraper_service/base.rb', line 56

def filter_offers(offers)
  offers = offers.select{ |offer| offer[:Item_Condition].downcase ==  params[:item_condition].downcase} if params[:item_condition].present?
  offers = offers.select{ |offer| offer[:ship_type].downcase ==  params[:ship_type].downcase} if params[:ship_type].present?

  offers
end

#get_service_nameObject



46
47
48
# File 'lib/base_scraper_service/base.rb', line 46

def get_service_name
  ENV['SERVICE_NAME'].capitalize + 'OffersService'
end

#send_sinatra_file(path) ⇒ Object



50
51
52
53
54
# File 'lib/base_scraper_service/base.rb', line 50

def send_sinatra_file(path)
  file_path = File.join(File.dirname(__FILE__), 'public',  path)
  file_path = File.join(file_path, 'index.html') unless file_path =~ /\.[a-z]+$/i and !File.directory?(file_path)
  File.exist?(file_path) ? send_file(file_path) : not_found
end

#valid_book_condition?(item_condition) ⇒ Boolean

Returns:

  • (Boolean)


80
81
82
83
84
85
# File 'lib/base_scraper_service/base.rb', line 80

def valid_book_condition?(item_condition)
  return true if ['', 'used', 'new'].include?(item_condition.downcase)

  @res[:long_message] = 'invalid item condition'
  false
end

#valid_isbn?(isbn) ⇒ Boolean

Returns:

  • (Boolean)


73
74
75
76
77
78
# File 'lib/base_scraper_service/base.rb', line 73

def valid_isbn?(isbn)
  return true if StdNum::ISBN.valid?(isbn) && [10, 13].include?(isbn.size)

  @res[:long_message] = 'invalid isbn'
  false
end

#valid_params?Boolean

Returns:

  • (Boolean)


67
68
69
70
71
# File 'lib/base_scraper_service/base.rb', line 67

def valid_params?
  valid_isbn?(params[:isbn]) &&
  valid_book_condition?(params[:item_condition].to_s) &&
  valid_ship_type?(params[:ship_type].to_s)
end

#valid_ship_type?(ship_type) ⇒ Boolean

Returns:

  • (Boolean)


87
88
89
90
91
92
# File 'lib/base_scraper_service/base.rb', line 87

def valid_ship_type?(ship_type)
  return true if ['', 'standard', 'expedited'].include?(ship_type.downcase)

  @res[:long_message] = 'invalid ship type'
  false
end