Class: Puma::Plugin

Inherits:
Object
  • Object
show all
Defined in:
lib/puma/plugin.rb

Constant Summary collapse

CALLER_FILE =

Matches

"C:/Ruby22/lib/ruby/gems/2.2.0/gems/puma-3.0.1/lib/puma/plugin/tmp_restart.rb:3:in `<top (required)>'"
AS
C:/Ruby22/lib/ruby/gems/2.2.0/gems/puma-3.0.1/lib/puma/plugin/tmp_restart.rb
/
  \A       # start of string
  .+       # file path (one or more characters)
  (?=      # stop previous match when
    :\d+     # a colon is followed by one or more digits
    :in      # followed by a colon followed by in
  )
/x

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.create(&blk) ⇒ Object


97
98
99
100
101
102
103
104
105
# File 'lib/puma/plugin.rb', line 97

def self.create(&blk)
  name = extract_name(caller)

  cls = Class.new(self)

  cls.class_eval(&blk)

  Plugins.register name, cls
end

.extract_name(ary) ⇒ Object


90
91
92
93
94
95
# File 'lib/puma/plugin.rb', line 90

def self.extract_name(ary)
  path = ary.first[CALLER_FILE]

  m = %r!puma/plugin/([^/]*)\.rb$!.match(path)
  return m[1]
end

Instance Method Details

#in_background(&blk) ⇒ Object


107
108
109
# File 'lib/puma/plugin.rb', line 107

def in_background(&blk)
  Plugins.add_background blk
end