Module: Jaleb

Defined in:
lib/jaleb.rb,
lib/jaleb/data.rb,
lib/jaleb/model.rb,
lib/jaleb/string.rb,
lib/jaleb/version.rb,
lib/jaleb/nokogiri.rb,
lib/jaleb/models/base.rb,
lib/jaleb/models/ebay.rb,
lib/jaleb/models/etsy.rb,
lib/jaleb/models/souq.rb,
lib/jaleb/models/amazon.rb,
lib/jaleb/models/newegg.rb,
lib/jaleb/models/gamecouk.rb,
lib/jaleb/models/thinkgeek.rb,
lib/jaleb/models/googleshopping.rb

Defined Under Namespace

Modules: Model, Nokogiri, String Classes: Data

Constant Summary collapse

LIBRARY_PATH =
File.join(File.dirname(__FILE__), 'jaleb')
MODEL_PATH =
File.join(LIBRARY_PATH, 'models')
VERSION =
"0.1.2"

Class Method Summary collapse

Class Method Details

.fetch(url) ⇒ Object

Fetch information based on url



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/jaleb.rb', line 18

def fetch(url) 
  # Look for model based on url
  model_class = Jaleb::Model.identify(url)

  # Use Base class for fallback
  model_class = Jaleb::Model::Base unless model_class
  
  data = Jaleb::Data.read(url)

  product = model_class.new
  product.parse(data)

  # Save url
  product.url = url
  
  return product
end

.model_classesObject

get array of model classes

Jaleb.model_classes = [Amazon, Ebay, ThinkGeek]


49
50
51
52
53
54
55
56
# File 'lib/jaleb.rb', line 49

def model_classes
  models = Array.new
  Dir[File.join(File.dirname(__FILE__), "jaleb", "models", "*.rb")].each do |f|
    filename = File.basename(f, ".rb")
    models << ["Jaleb", "Model", filename.camelize].join("::").constantize unless filename == "base"
  end 
  return models
end

.modelsObject

get array of models syms



38
39
40
41
42
43
44
45
# File 'lib/jaleb.rb', line 38

def models
  models = Array.new
  Dir[File.join(File.dirname(__FILE__), "jaleb", "models", "*.rb")].each do |f|
    model = File.basename(f, ".rb").to_sym
    models << model unless model == :base
  end 
  return models
end