Module: Grape::RackBuilder::ClassMethods

Included in:
Grape::RackBuilder
Defined in:
lib/grape/reload/rack_builder.rb

Instance Method Summary collapse

Instance Method Details

#applicationObject



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/grape/reload/rack_builder.rb', line 77

def application
  return @rack_app if @rack_app
  mounts = config.mounts
  middleware = config.middleware
  force_reloading = config.force_reloading
  environment = config.environment
  reload_threshold = config.reload_threshold
  @rack_app = ::Rack::Builder.new do
    middleware.each do |parameters|
      parameters.length == 1 ? use(*parameters.first) : use(*parameters.first, &parameters.last)
    end

    mounts.each_with_index do |m|
      if (environment == 'development') || force_reloading
        r = Rack::Builder.new
        r.use Grape::ReloadMiddleware[reload_threshold]
        r.run m.app_class
        map(m.mount_root) { run r }
      else
        app_klass = m.app_class.constantize
        map(m.mount_root) { run app_klass }
      end
    end
  end
end

#boot!Object



71
72
73
74
75
# File 'lib/grape/reload/rack_builder.rb', line 71

def boot!
  @rack_app = nil
  Grape::Reload::Watcher.setup(sources: Grape::Reload::Sources.new(config.sources))
  self
end

#loggerObject



111
112
113
# File 'lib/grape/reload/rack_builder.rb', line 111

def logger
  config.logger
end

#mounted_apps_of(file) ⇒ Object



103
104
105
# File 'lib/grape/reload/rack_builder.rb', line 103

def mounted_apps_of(file)
  config.mounts.select { |mount| File.identical?(file, Grape::Reloader.root(mount.app_file)) }
end

#reloadable_appsObject



107
108
109
# File 'lib/grape/reload/rack_builder.rb', line 107

def reloadable_apps
  config.mounts
end

#setup(&block) ⇒ Object



66
67
68
69
# File 'lib/grape/reload/rack_builder.rb', line 66

def setup(&block)
  config.instance_eval(&block)
  self
end