Module: Enable

Included in:
Parser
Defined in:
lib/fly_parser/enable_source.rb

Overview

add new parser source here

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meth, *args) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/fly_parser/enable_source.rb', line 30

def method_missing(meth, *args)
  prefix = "enable_"
  meth = meth.to_s
  if meth.start_with?(prefix)
    meth_name = meth.split(prefix).last
    proc = send(meth_name, *args)
    iterate_sources(*args, proc)
  else
    raise "Unknown method #{meth} in Enable class, ssory !"
  end
end

Instance Method Details

#fitness(source) ⇒ Object



3
4
5
6
7
8
# File 'lib/fly_parser/enable_source.rb', line 3

def fitness(source)
  lambda do |item|
    item["parser"] = Parser::Exercise.new(item["url"], source: source) and next if item["type"] == "exercises"
    item["parser"] = Parser::Fitness.new(item["url"], source: source)
  end
end

#iterate_sources(source, block) ⇒ Object



42
43
44
# File 'lib/fly_parser/enable_source.rb', line 42

def iterate_sources(source, block)
  source["items"].each(&block)
end

#local(source) ⇒ Object



14
15
16
# File 'lib/fly_parser/enable_source.rb', line 14

def local(source)
  lambda { |item| item["parser"] = Parser::News.new(item["file"], {type: :file, source: source}) }
end

#news(source) ⇒ Object



10
11
12
# File 'lib/fly_parser/enable_source.rb', line 10

def news(source)
  lambda { |item| item["parser"] = Parser::News.new(item["url"], source: source) }
end

#news_az(source) ⇒ Object



26
27
28
# File 'lib/fly_parser/enable_source.rb', line 26

def news_az(source)
  lambda {|item| item["parser"] = Parser::NewsAZ.new(item["url"], source: source)}
end

#news_fr(source) ⇒ Object



22
23
24
# File 'lib/fly_parser/enable_source.rb', line 22

def news_fr(source)
  lambda {|item| item["parser"] = Parser::NewsFr.new(item["url"], source: source)}
end

#news_nl(source) ⇒ Object



18
19
20
# File 'lib/fly_parser/enable_source.rb', line 18

def news_nl(source)
  lambda { |item| item["parser"] = Parser::NewsNl.new(item["url"], source: source) }
end