Class: Vue::Helpers::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/vue/helpers/server.rb

Overview

Rack middleware to serve sourced vue block, see redpanthers.co/rack-middleware/. Usage: use Vue::Helpers::Server

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Server

Returns a new instance of Server.



13
14
15
# File 'lib/vue/helpers/server.rb', line 13

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/vue/helpers/server.rb', line 17

def call(env)
  req = Rack::Request.new(env)
  case req.path_info
  #when /^\/vuesource\/([A-Za-z0-9\-_]{43})$/
  when /^#{Vue::Helpers.callback_prefix}\/([A-Za-z0-9\-_]{43})$/
    #puts "vue_source match: #{$1}"
    if content = get_content($1)
      [200, {"Content-Type" => "text/javascript"}, [content]]
    else
      [404, {"Content-Type" => "text/html"}, ['']]
    end
  when /^\/pingm$/
    [200, {"Content-Type" => "text/javascript"}, ['Ok']]
  else
    #[404, {"Content-Type" => "text/html"}, ["I'm Lost!"]]
    @app.call(env)
  end
end

#get_content(key) ⇒ Object



36
37
38
39
# File 'lib/vue/helpers/server.rb', line 36

def get_content(key)
  Vue::Helpers.cache_store.delete(key)
  #Vue::Helpers.cache_store[key]
end