Class: Opal::Server
- Inherits:
-
Object
- Object
- Opal::Server
- Defined in:
- opal/lib/opal/sprockets/server.rb
Defined Under Namespace
Classes: Index
Constant Summary
- SOURCE_MAPS_PREFIX_PATH =
'/__OPAL_SOURCE_MAPS__'
Instance Attribute Summary collapse
-
#debug ⇒ Object
Returns the value of attribute debug.
-
#index_path ⇒ Object
Returns the value of attribute index_path.
-
#main ⇒ Object
Returns the value of attribute main.
-
#prefix ⇒ Object
Returns the value of attribute prefix.
-
#public_root ⇒ Object
Returns the value of attribute public_root.
-
#public_urls ⇒ Object
Returns the value of attribute public_urls.
-
#sprockets ⇒ Object
Returns the value of attribute sprockets.
-
#use_index ⇒ Object
Returns the value of attribute use_index.
Instance Method Summary collapse
- #append_path(path) ⇒ Object
- #call(env) ⇒ Object
- #create_app ⇒ Object
-
#initialize(debug_or_options = {}) {|_self| ... } ⇒ Server
constructor
A new instance of Server.
- #public_dir=(dir) ⇒ Object
- #source_map=(enabled) ⇒ Object
- #source_map_enabled ⇒ Object
- #use_gem(gem_name) ⇒ Object
Constructor Details
#initialize(debug_or_options = {}) {|_self| ... } ⇒ Server
Returns a new instance of Server
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
# File 'opal/lib/opal/sprockets/server.rb', line 16 def initialize debug_or_options = {} unless Hash === debug_or_options warn "passing a boolean to control debug is deprecated.\n"+ "Please pass an Hash instead: Server.new(debug: true)" options = {:debug => debug_or_options} else options = debug_or_options end @use_index = true @public_root = nil @public_urls = ['/'] @sprockets = options.fetch(:sprockets, ::Sprockets::Environment.new) @debug = options.fetch(:debug, true) @prefix = options.fetch(:prefix, '/assets') Opal .paths .each { |p| @sprockets.append_path(p) } yield self if block_given? create_app end
Instance Attribute Details
#debug ⇒ Object
Returns the value of attribute debug
13 14 15
# File 'opal/lib/opal/sprockets/server.rb', line 13 def debug @debug end
#index_path ⇒ Object
Returns the value of attribute index_path
13 14 15
# File 'opal/lib/opal/sprockets/server.rb', line 13 def index_path @index_path end
#main ⇒ Object
Returns the value of attribute main
13 14 15
# File 'opal/lib/opal/sprockets/server.rb', line 13 def main @main end
#prefix ⇒ Object
Returns the value of attribute prefix
13 14 15
# File 'opal/lib/opal/sprockets/server.rb', line 13 def prefix @prefix end
#public_root ⇒ Object
Returns the value of attribute public_root
13 14 15
# File 'opal/lib/opal/sprockets/server.rb', line 13 def public_root @public_root end
#public_urls ⇒ Object
Returns the value of attribute public_urls
13 14 15
# File 'opal/lib/opal/sprockets/server.rb', line 13 def public_urls @public_urls end
#sprockets ⇒ Object
Returns the value of attribute sprockets
13 14 15
# File 'opal/lib/opal/sprockets/server.rb', line 13 def sprockets @sprockets end
#use_index ⇒ Object
Returns the value of attribute use_index
13 14 15
# File 'opal/lib/opal/sprockets/server.rb', line 13 def use_index @use_index end
Instance Method Details
#append_path(path) ⇒ Object
51 52 53
# File 'opal/lib/opal/sprockets/server.rb', line 51 def append_path path @sprockets.append_path path end
#call(env) ⇒ Object
86 87 88
# File 'opal/lib/opal/sprockets/server.rb', line 86 def call(env) @app.call env end
#create_app ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
# File 'opal/lib/opal/sprockets/server.rb', line 59 def create_app server, sprockets, prefix = self, @sprockets, self.prefix sprockets.logger.level ||= Logger::DEBUG source_map_enabled = self.source_map_enabled if source_map_enabled maps_prefix = SOURCE_MAPS_PREFIX_PATH maps_app = SourceMapServer .new (sprockets, maps_prefix) ::Opal ::Sprockets ::SourceMapHeaderPatch .inject! (maps_prefix) end @app = Rack::Builder.app do not_found = lambda { |env| [404, {}, []] } use Rack::Deflater use Rack::ShowExceptions use Index , server if server.use_index if source_map_enabled map(maps_prefix) do use Rack::ConditionalGet use Rack::ETag run maps_app end end map(prefix) { run sprockets } run Rack::Static.new(not_found, root: server.public_root, urls: server.public_urls) end end
#public_dir=(dir) ⇒ Object
38 39 40 41
# File 'opal/lib/opal/sprockets/server.rb', line 38 def public_dir=(dir) @public_root = dir @public_urls = ["/"] end
#source_map=(enabled) ⇒ Object
#source_map_enabled ⇒ Object
#use_gem(gem_name) ⇒ Object
55 56 57
# File 'opal/lib/opal/sprockets/server.rb', line 55 def use_gem gem_name @sprockets.use_gem gem_name end