Sha256: 7187a4c928ec0aa74263c58f03feb0be3e6ea800692dce861a269ac7325e0c2c
Contents?: true
Size: 1.92 KB
Versions: 1
Compression:
Stored size: 1.92 KB
Contents
require 'redis' require 'sass' require 'fileutils' require 'rack/jsonr' require 'rack/jquery-params' require 'rack/cors' require 'sinatra/base' require 'active_support/all' require 'fanforce/api' require 'fanforce/plugin_worker' class Fanforce::Plugin require_relative 'core_config' @@loaded = nil @@config = nil # Only one instance is allowed to initialize, and the resulting instance is stored in Fanforce::Plugin. # @param base_dir [String] base dir of plugin # @param loader_filename [String] either config.ru or Rakefile # @return [Fanforce::Plugin] def self.load(base_dir) @@loaded ? (raise 'Only one instance of Fanforce::PluginFactory can be loaded per process') : @@loaded = true @@config = CoreConfig.new(base_dir) return self end def self.plugin_id @@config._id end def self._id; plugin_id; end def self.config(&block) block ? block.call(@@config) : @@config end def self.base_dir @@config.base_dir end def self.is_bugsnag_enabled? @@config.is_bugsnag_enabled end def self.redis @@redis ||= ::Redis.new(url: @@config.redis_url) end ###################################################################################################################### # Method for use in config.ru files (i.e., run Fanforce::Plugin) def self.call(env) if ENV['RACK_ENV'] == 'development' and env['PATH_INFO'] =~ /^\/assets\// env['PATH_INFO'] = env['PATH_INFO'].gsub(/^\/assets/, '') sprockets = SprocketsCompiler.setup(base_dir) Sass::Plugin.options[:cache_location] = './tmp/sass-cache' return sprockets.index.call(env) end return Rack::File.new("#{base_dir}").call(env) if env['PATH_INFO'] =~ /^\/(favicon.ico|robots.txt)/ require_relative 'sinatra/_load' request = Rack::Request.new(env) Rack::JSONR.intercept_method_override(env, request, request.params, :all) Rack::JQueryParams.fix(env, :all) Sinatra.new.call(env) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fanforce-plugin-factory-2.0.0.rc8 | lib/fanforce/plugin_factory/plugin.rb |