Module: Fletcher
- Defined in:
- lib/fletcher.rb,
lib/fletcher/data.rb,
lib/fletcher/model.rb,
lib/fletcher/string.rb,
lib/fletcher/nokogiri.rb,
lib/fletcher/cli/utility.rb,
lib/fletcher/models/base.rb,
lib/fletcher/models/ebay.rb,
lib/fletcher/models/etsy.rb,
lib/fletcher/models/steam.rb,
lib/fletcher/models/amazon.rb,
lib/fletcher/models/newegg.rb,
lib/fletcher/models/playcom.rb,
lib/fletcher/models/gamecouk.rb,
lib/fletcher/models/thinkgeek.rb,
lib/fletcher/models/googleshopping.rb
Defined Under Namespace
Modules: CLI, Model, Nokogiri, String Classes: Data
Constant Summary collapse
- LIBRARY_PATH =
File.join(File.dirname(__FILE__), 'fletcher')
- CLI_PATH =
File.join(LIBRARY_PATH, 'cli')
- MODEL_PATH =
File.join(LIBRARY_PATH, 'models')
- USER_AGENT =
User Agent (Chrome)
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36"
Class Method Summary collapse
-
.fetch(url) ⇒ Object
Fetch information based on url.
-
.model_classes ⇒ Object
get array of model classes Fletcher.model_classes = [Amazon, Ebay, ThinkGeek].
-
.models ⇒ Object
get array of models syms.
-
.root ⇒ Object
Get gem root directory.
-
.version ⇒ Object
Get gem version.
Class Method Details
.fetch(url) ⇒ Object
Fetch information based on url
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/fletcher.rb', line 20 def fetch(url) # Look for model based on url model_class = Fletcher::Model.identify(url) # Use Base class for fallback model_class = Fletcher::Model::Base unless model_class data = Fletcher::Data.read(url) product = model_class.new product.parse(data) # Save url product.url = url return product end |
.model_classes ⇒ Object
get array of model classes
Fletcher.model_classes = [Amazon, Ebay, ThinkGeek]
60 61 62 63 64 65 66 67 |
# File 'lib/fletcher.rb', line 60 def model_classes models = Array.new Dir[File.join(File.dirname(__FILE__), "fletcher", "models", "*.rb")].each do |f| filename = File.basename(f, ".rb") models << ["Fletcher", "Model", filename.camelize].join("::").constantize unless filename == "base" end return models end |
.models ⇒ Object
get array of models syms
49 50 51 52 53 54 55 56 |
# File 'lib/fletcher.rb', line 49 def models models = Array.new Dir[File.join(File.dirname(__FILE__), "fletcher", "models", "*.rb")].each do |f| model = File.basename(f, ".rb").to_sym models << model unless model == :base end return models end |
.root ⇒ Object
Get gem root directory
44 45 46 |
# File 'lib/fletcher.rb', line 44 def root File.("../..", __FILE__) end |
.version ⇒ Object
Get gem version
39 40 41 |
# File 'lib/fletcher.rb', line 39 def version File.read(File.join(root, "VERSION")) end |