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

Constructor Details

#initialize(loader) ⇒ Plugin

Returns a new instance of Plugin.



102
103
104
# File 'lib/puma/plugin.rb', line 102

def initialize(loader)
  @loader = loader
end

Class Method Details

.create(&blk) ⇒ Object



92
93
94
95
96
97
98
99
100
# File 'lib/puma/plugin.rb', line 92

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



85
86
87
88
89
90
# File 'lib/puma/plugin.rb', line 85

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



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

def in_background(&blk)
  Plugins.add_background blk
end

#workers_supported?Boolean

Returns:

  • (Boolean)


110
111
112
113
# File 'lib/puma/plugin.rb', line 110

def workers_supported?
  return false if Puma.jruby? || Puma.windows?
  true
end