Class: Inesita::Server
- Inherits:
-
Object
- Object
- Inesita::Server
- Defined in:
- lib/inesita/server.rb
Instance Attribute Summary collapse
-
#assets_app ⇒ Object
readonly
Returns the value of attribute assets_app.
Instance Method Summary collapse
- #assets_code ⇒ Object
- #call(env) ⇒ Object
- #create_app ⇒ Object
- #create_assets_app ⇒ Object
-
#initialize(opts = {}) ⇒ Server
constructor
A new instance of Server.
- #setup_dirs(opts) ⇒ Object
- #setup_env(opts) ⇒ Object
- #setup_sprockets(dir, sprockets) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Server
Returns a new instance of Server.
13 14 15 16 17 18 19 20 |
# File 'lib/inesita/server.rb', line 13 def initialize(opts = {}) setup_dirs(opts) setup_env(opts) @setup_sprockets = opts.delete(:setup_sprockets) || './.sprockets.rb' @assets_app = create_assets_app @app = create_app Inesita.assets_code = assets_code end |
Instance Attribute Details
#assets_app ⇒ Object (readonly)
Returns the value of attribute assets_app.
11 12 13 |
# File 'lib/inesita/server.rb', line 11 def assets_app @assets_app end |
Instance Method Details
#assets_code ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/inesita/server.rb', line 33 def assets_code assets_prefix = @dist ? '' : Config::ASSETS_PREFIX %( <link rel="stylesheet" type="text/css" href="#{assets_prefix}/stylesheet.css"> #{Opal::Sprockets.javascript_include_tag('application', sprockets: @assets_app, prefix: assets_prefix, debug: !@dist)} ) end |
#call(env) ⇒ Object
87 88 89 |
# File 'lib/inesita/server.rb', line 87 def call(env) @app.call(env) end |
#create_app ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/inesita/server.rb', line 41 def create_app assets_app = @assets_app static_dir = @static_dir Rack::Builder.new do use Rack::Static, :urls => [static_dir] use Rack::Rewrite do rewrite(/^(?!#{Config::ASSETS_PREFIX}).*/, Config::ASSETS_PREFIX) end map Config::ASSETS_PREFIX do run assets_app end end end |
#create_assets_app ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/inesita/server.rb', line 58 def create_assets_app Opal::Sprockets::Server.new do |s| s.append_path @app_dir if @dist s.append_path @app_dist_dir else s.append_path @app_dev_dir end Opal.paths.each do |p| s.append_path p end RailsAssets.load_paths.each do |p| s.append_path p end if defined?(RailsAssets) s.sprockets.context_class.class_eval do include SprocketsContext end setup_sprockets(@setup_sprockets, s.sprockets) end.sprockets end |
#setup_dirs(opts) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/inesita/server.rb', line 26 def setup_dirs(opts) @static_dir = opts[:static_dir] || Config::STATIC_DIR @app_dir = opts[:app_dir] || Config::APP_DIR @app_dist_dir = opts[:app_dist_dir] || Config::APP_DIST_DIR @app_dev_dir = opts[:app_dev_dir] || Config::APP_DEV_DIR end |
#setup_env(opts) ⇒ Object
22 23 24 |
# File 'lib/inesita/server.rb', line 22 def setup_env(opts) @dist = opts[:dist] || false end |
#setup_sprockets(dir, sprockets) ⇒ Object
83 84 85 |
# File 'lib/inesita/server.rb', line 83 def setup_sprockets(dir, sprockets) self.instance_eval(File.read(dir)) if File.exists?(dir) end |