Class: Fluent::Lexicon

Inherits:
Object
  • Object
show all
Defined in:
lib/fluent/lexicon.rb

Class Method Summary collapse

Class Method Details

.collect(argser, kwargser) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/fluent/lexicon.rb', line 4

def collect(argser, kwargser)
  lambda do |*args, **kwargs|
    results = [] 

    args.each do |arg|
      results << argser.call(*arg)
    end if args.present?

    kwargs.map do |k, v|
      results << kwargser.call(k, v)
    end if kwargs.present?

    results
  end
end

.reflect(base) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/fluent/lexicon.rb', line 20

def reflect(base)
  lambda do |name|
    klass = "#{base.name}::#{name.to_s.classify}"
    begin
      return klass.constantize
    rescue NameError => e
      raise e if e.name.to_s != name.to_s.classify
      return nil
    end
  end
end