post.rbinitialize
/app/app/post.rb in
initialize
#
# Reads the file and splits it into a yaml and a markdown
#
def self.split(name)
name += ".md" if !name.end_with?(".md")
post = File.new("./posts/#{name}").readlines
yaml_separator = post.grep(/\-\n/)[1] #finds the second ocurrance of "--*"
yaml_ends_index = post[1..-1].index(yaml_separator) #Finds the index of that ocurrance
yaml = post[1..yaml_ends_index].join # 2nd line to were it ends
markdown = post[yaml_ends_index+1..-1].join #were YAML ends + 1 to the end
/app/app/post.rb in
new
#
# Reads the file and splits it into a yaml and a markdown
#
def self.split(name)
name += ".md" if !name.end_with?(".md")
post = File.new("./posts/#{name}").readlines
yaml_separator = post.grep(/\-\n/)[1] #finds the second ocurrance of "--*"
yaml_ends_index = post[1..-1].index(yaml_separator) #Finds the index of that ocurrance
yaml = post[1..yaml_ends_index].join # 2nd line to were it ends
markdown = post[yaml_ends_index+1..-1].join #were YAML ends + 1 to the end
/app/app/post.rb in
split
#
# Reads the file and splits it into a yaml and a markdown
#
def self.split(name)
name += ".md" if !name.end_with?(".md")
post = File.new("./posts/#{name}").readlines
yaml_separator = post.grep(/\-\n/)[1] #finds the second ocurrance of "--*"
yaml_ends_index = post[1..-1].index(yaml_separator) #Finds the index of that ocurrance
yaml = post[1..yaml_ends_index].join # 2nd line to were it ends
markdown = post[yaml_ends_index+1..-1].join #were YAML ends + 1 to the end
/app/app/post.rb in
initialize
module Blossome
class Post
attr_accessor :title, :description, :keywords, :date, :markdown, :html_content, :time, :url
def initialize(name)
yaml, @markdown = Post.split(name)
metadata = YAML.parse(yaml).to_ruby
@title = metadata["title"]
@description = metadata["description"]
@keywords = metadata["keywords"]
@date = metadata["date"]
@markdown = MarkdownHelpers.render(@markdown) #Go through mustache first
/app/app/blog.rb in
new
@title = @@config.title
@posts = get_active_posts
builder :feed
end
get '/:post' do
post = params[:post].gsub(/[^A-Za-z\-]/, "") #strip just in case
@post = Post.new(post) @description = @post.description
@keywords = @post.keywords
@title = @post.title
haml :post
end
private
/app/app/blog.rb in
block in <class:Blog>
@title = @@config.title
@posts = get_active_posts
builder :feed
end
get '/:post' do
post = params[:post].gsub(/[^A-Za-z\-]/, "") #strip just in case
@post = Post.new(post) @description = @post.description
@keywords = @post.keywords
@title = @post.title
haml :post
end
private
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
call
method_name = "#{verb} #{path}"
unbound_method = generate_method(method_name, &block)
pattern, keys = compile path
conditions, @conditions = @conditions, []
[ pattern, keys, conditions, block.arity != 0 ?
proc { |a,p| unbound_method.bind(a).call(*p) } :
proc { |a,p| unbound_method.bind(a).call } ] end
def compile(path)
keys = []
if path.respond_to? :to_str
pattern = path.to_str.gsub(/[^\?\%\\\/\:\*\w]/) { |c| encoded(c) }
pattern.gsub!(/((:\w+)|\*)/) do |match|
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
block in compile!
method_name = "#{verb} #{path}"
unbound_method = generate_method(method_name, &block)
pattern, keys = compile path
conditions, @conditions = @conditions, []
[ pattern, keys, conditions, block.arity != 0 ?
proc { |a,p| unbound_method.bind(a).call(*p) } :
proc { |a,p| unbound_method.bind(a).call } ] end
def compile(path)
keys = []
if path.respond_to? :to_str
pattern = path.to_str.gsub(/[^\?\%\\\/\:\*\w]/) { |c| encoded(c) }
pattern.gsub!(/((:\w+)|\*)/) do |match|
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
[]
end
# Run routes defined on the class and all superclasses.
def route!(base = settings, pass_block=nil)
if routes = base.routes[@request.request_method]
routes.each do |pattern, keys, conditions, block|
pass_block = process_route(pattern, keys, conditions) do |*args|
route_eval { block[*args] } end
end
end
# Run routes defined in superclass.
if base.superclass.respond_to?(:routes)
return route!(base.superclass, pass_block)
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
block (3 levels) in route!
end
# Run routes defined on the class and all superclasses.
def route!(base = settings, pass_block=nil)
if routes = base.routes[@request.request_method]
routes.each do |pattern, keys, conditions, block|
pass_block = process_route(pattern, keys, conditions) do |*args|
route_eval { block[*args] } end
end
end
# Run routes defined in superclass.
if base.superclass.respond_to?(:routes)
return route!(base.superclass, pass_block)
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
route_eval
route_eval(&pass_block) if pass_block
route_missing
end
# Run a route block and throw :halt with the result.
def route_eval
throw :halt, yield end
# If the current request matches pattern and conditions, fill params
# with keys and call the given block.
# Revert params afterwards.
#
# Returns pass block.
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
block (2 levels) in route!
end
# Run routes defined on the class and all superclasses.
def route!(base = settings, pass_block=nil)
if routes = base.routes[@request.request_method]
routes.each do |pattern, keys, conditions, block|
pass_block = process_route(pattern, keys, conditions) do |*args|
route_eval { block[*args] } end
end
end
# Run routes defined in superclass.
if base.superclass.respond_to?(:routes)
return route!(base.superclass, pass_block)
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
block in process_route
if values.any?
original, @params = params, params.merge('splat' => [], 'captures' => values)
keys.zip(values) { |k,v| Array === @params[k] ? @params[k] << v : @params[k] = v if v }
end
catch(:pass) do
conditions.each { |c| throw :pass if c.bind(self).call == false }
block ? block[self, values] : yield(self, values) end
ensure
@params = original if original
end
# No matching route was found or all routes passed. The default
# implementation is to forward the request downstream when running
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
catch
values += match.captures.to_a.map { |v| force_encoding URI.decode(v) if v }
if values.any?
original, @params = params, params.merge('splat' => [], 'captures' => values)
keys.zip(values) { |k,v| Array === @params[k] ? @params[k] << v : @params[k] = v if v }
end
catch(:pass) do conditions.each { |c| throw :pass if c.bind(self).call == false }
block ? block[self, values] : yield(self, values)
end
ensure
@params = original if original
end
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
process_route
values += match.captures.to_a.map { |v| force_encoding URI.decode(v) if v }
if values.any?
original, @params = params, params.merge('splat' => [], 'captures' => values)
keys.zip(values) { |k,v| Array === @params[k] ? @params[k] << v : @params[k] = v if v }
end
catch(:pass) do conditions.each { |c| throw :pass if c.bind(self).call == false }
block ? block[self, values] : yield(self, values)
end
ensure
@params = original if original
end
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
block in route!
base.filters[type].each { |args| process_route(*args) }
end
# Run routes defined on the class and all superclasses.
def route!(base = settings, pass_block=nil)
if routes = base.routes[@request.request_method]
routes.each do |pattern, keys, conditions, block|
pass_block = process_route(pattern, keys, conditions) do |*args| route_eval { block[*args] }
end
end
end
# Run routes defined in superclass.
if base.superclass.respond_to?(:routes)
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
each
filter! type, base.superclass if base.superclass.respond_to?(:filters)
base.filters[type].each { |args| process_route(*args) }
end
# Run routes defined on the class and all superclasses.
def route!(base = settings, pass_block=nil)
if routes = base.routes[@request.request_method]
routes.each do |pattern, keys, conditions, block| pass_block = process_route(pattern, keys, conditions) do |*args|
route_eval { block[*args] }
end
end
end
# Run routes defined in superclass.
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
route!
filter! type, base.superclass if base.superclass.respond_to?(:filters)
base.filters[type].each { |args| process_route(*args) }
end
# Run routes defined on the class and all superclasses.
def route!(base = settings, pass_block=nil)
if routes = base.routes[@request.request_method]
routes.each do |pattern, keys, conditions, block| pass_block = process_route(pattern, keys, conditions) do |*args|
route_eval { block[*args] }
end
end
end
# Run routes defined in superclass.
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
dispatch!
end
end
# Dispatch a request with error handling.
def dispatch!
static! if settings.static? && (request.get? || request.head?)
filter! :before
route! rescue ::Exception => boom
handle_exception!(boom)
ensure
filter! :after unless env['sinatra.static_file']
end
# Error handling during requests.
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
block in call!
@request = Request.new(env)
@response = Response.new
@params = indifferent_params(@request.params)
template_cache.clear if settings.reload_templates
force_encoding(@params)
@response['Content-Type'] = nil
invoke { dispatch! } invoke { error_block!(response.status) }
unless @response['Content-Type']
if Array === body and body[0].respond_to? :content_type
content_type body[0].content_type
else
content_type :html
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
block in invoke
# Creates a Hash with indifferent access.
def indifferent_hash
Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
end
# Run the block with 'throw :halt' support and apply result to the response.
def invoke
res = catch(:halt) { yield } res = [res] if Fixnum === res or String === res
if Array === res and Fixnum === res.first
status(res.shift)
body(res.pop)
headers(*res)
elsif res.respond_to? :each
body res
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
catch
# Creates a Hash with indifferent access.
def indifferent_hash
Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
end
# Run the block with 'throw :halt' support and apply result to the response.
def invoke
res = catch(:halt) { yield } res = [res] if Fixnum === res or String === res
if Array === res and Fixnum === res.first
status(res.shift)
body(res.pop)
headers(*res)
elsif res.respond_to? :each
body res
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
invoke
# Creates a Hash with indifferent access.
def indifferent_hash
Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
end
# Run the block with 'throw :halt' support and apply result to the response.
def invoke
res = catch(:halt) { yield } res = [res] if Fixnum === res or String === res
if Array === res and Fixnum === res.first
status(res.shift)
body(res.pop)
headers(*res)
elsif res.respond_to? :each
body res
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
call!
@request = Request.new(env)
@response = Response.new
@params = indifferent_params(@request.params)
template_cache.clear if settings.reload_templates
force_encoding(@params)
@response['Content-Type'] = nil
invoke { dispatch! } invoke { error_block!(response.status) }
unless @response['Content-Type']
if Array === body and body[0].respond_to? :content_type
content_type body[0].content_type
else
content_type :html
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
call
@app = app
@template_cache = Tilt::Cache.new
yield self if block_given?
end
# Rack call interface.
def call(env)
dup.call!(env) end
attr_accessor :env, :request, :response, :params
def call!(env) # :nodoc:
@env = env
@request = Request.new(env)
/app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb in
call
default_options :xss_mode => :block
def header
{ 'X-XSS-Protection' => "1; mode=#{options[:xss_mode]}" }
end
def call(env)
status, headers, body = @app.call(env) [status, header.merge(headers), body]
end
end
end
end
/app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/path_traversal.rb in
call
#
# Unescapes '/' and '.', expands +path_info+.
# Thus <tt>GET /foo/%2e%2e%2fbar</tt> becomes <tt>GET /bar</tt>.
class PathTraversal < Base
def call(env)
path_was = env["PATH_INFO"]
env["PATH_INFO"] = cleanup path_was if path_was
app.call env ensure
env["PATH_INFO"] = path_was
end
def cleanup(path)
parts = []
unescaped = path.gsub('%2e', '.').gsub('%2f', '/')
/app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/json_csrf.rb in
call
# JSON GET APIs are vulnerable to being embedded as JavaScript while the
# Array prototype has been patched to track data. Checks the referrer
# even on GET requests if the content type is JSON.
class JsonCsrf < Base
default_reaction :deny
def call(env)
status, headers, body = app.call(env) if headers['Content-Type'].to_s.split(';', 2).first =~ /^\s*application\/json\s*$/
if referrer(env) != Request.new(env).host
result = react(env)
warn env, "attack prevented by #{self.class}"
end
end
result or [status, headers, body]
/app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/base.rb in
call
end
def call(env)
unless accepts? env
warn env, "attack prevented by #{self.class}"
result = react env
end
result or app.call(env) end
def react(env)
result = send(options[:reaction], env)
result if Array === result and result.size == 3
end
/app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb in
call
default_options :xss_mode => :block
def header
{ 'X-XSS-Protection' => "1; mode=#{options[:xss_mode]}" }
end
def call(env)
status, headers, body = @app.call(env) [status, header.merge(headers), body]
end
end
end
end
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/nulllogger.rb in
call
class NullLogger
def initialize(app)
@app = app
end
def call(env)
env['rack.logger'] = self
@app.call(env) end
def info(progname = nil, &block); end
def debug(progname = nil, &block); end
def warn(progname = nil, &block); end
def error(progname = nil, &block); end
def fatal(progname = nil, &block); end
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/head.rb in
call
class Head
def initialize(app)
@app = app
end
def call(env)
status, headers, body = @app.call(env)
if env["REQUEST_METHOD"] == "HEAD"
[status, headers, []]
else
[status, headers, body]
end
end
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/showexceptions.rb in
call
def initialize(app)
@app = app
@template = ERB.new(TEMPLATE)
end
def call(env)
@app.call(env) rescue Exception => e
errors, env["rack.errors"] = env["rack.errors"], @@eats_errors
if respond_to?(:prefers_plain_text?) and prefers_plain_text?(env)
content_type = "text/plain"
body = [dump_exception(e)]
else
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
call
# Some Rack handlers (Thin, Rainbows!) implement an extended body object protocol, however,
# some middleware (namely Rack::Lint) will break it by not mirroring the methods in question.
# This middleware will detect an extended body object and will make sure it reaches the
# handler directly. We do this here, so our middleware and middleware set up by the app will
# still be able to run.
class ExtendedRack < Struct.new(:app)
def call(env)
result, callback = app.call(env), env['async.callback'] return result unless callback and async?(*result)
after_response { callback.call result }
setup_close(env, *result)
throw :async
end
private
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
block in call
setup_default_middleware builder
setup_middleware builder
builder.run new!(*args, &bk)
builder
end
def call(env)
synchronize { prototype.call(env) } end
private
def setup_default_middleware(builder)
builder.use ExtendedRack
builder.use ShowExceptions if show_exceptions?
builder.use Rack::MethodOverride if method_override?
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
synchronize
end
@@mutex = Mutex.new
def synchronize(&block)
if lock?
@@mutex.synchronize(&block)
else
yield end
end
public
CALLERS_TO_IGNORE = [ # :nodoc:
/\/sinatra(\/(base|main|showexceptions))?\.rb$/, # all sinatra code
/lib\/tilt.*\.rb$/, # all tilt code
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb in
call
setup_default_middleware builder
setup_middleware builder
builder.run new!(*args, &bk)
builder
end
def call(env)
synchronize { prototype.call(env) } end
private
def setup_default_middleware(builder)
builder.use ExtendedRack
builder.use ShowExceptions if show_exceptions?
builder.use Rack::MethodOverride if method_override?
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb in
call
def to_app
app = @map ? generate_map(@run, @map) : @run
fail "missing run or map statement" unless app
@use.reverse.inject(app) { |a,e| e[a] }
end
def call(env)
to_app.call(env) end
private
def generate_map(default_app, mapping)
mapped = default_app ? {'/' => default_app} : {}
mapping.each { |r,b| mapped[r] = self.class.new(default_app, &b) }
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/urlmap.rb in
block in call
rest = m[1]
next unless !rest || rest.empty? || rest[0] == ?/
env['SCRIPT_NAME'] = (script_name + location)
env['PATH_INFO'] = rest
return app.call(env) end
[404, {"Content-Type" => "text/plain", "X-Cascade" => "pass"}, ["Not Found: #{path}"]]
ensure
env['PATH_INFO'] = path
env['SCRIPT_NAME'] = script_name
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/urlmap.rb in
each
def call(env)
path = env["PATH_INFO"]
script_name = env['SCRIPT_NAME']
hHost = env['HTTP_HOST']
sName = env['SERVER_NAME']
sPort = env['SERVER_PORT']
@mapping.each do |host, location, match, app| unless hHost == host \
|| sName == host \
|| (!host && (hHost == sName || hHost == sName+':'+sPort))
next
end
next unless m = match.match(path.to_s)
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/urlmap.rb in
call
def call(env)
path = env["PATH_INFO"]
script_name = env['SCRIPT_NAME']
hHost = env['HTTP_HOST']
sName = env['SERVER_NAME']
sPort = env['SERVER_PORT']
@mapping.each do |host, location, match, app| unless hHost == host \
|| sName == host \
|| (!host && (hHost == sName || hHost == sName+':'+sPort))
next
end
next unless m = match.match(path.to_s)
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb in
block in pre_process
# When we're under a non-async framework like rails, we can still spawn
# off async responses using the callback info, so there's little point
# in removing this.
response = AsyncResponse
catch(:async) do
# Process the request calling the Rack adapter
response = @app.call(@request.env) end
response
rescue Exception
handle_error
# Pass through error response
can_persist? && @request.persistent? ? Response::PERSISTENT_ERROR : Response::ERROR
end
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb in
catch
end
end
# When we're under a non-async framework like rails, we can still spawn
# off async responses using the callback info, so there's little point
# in removing this.
response = AsyncResponse
catch(:async) do # Process the request calling the Rack adapter
response = @app.call(@request.env)
end
response
rescue Exception
handle_error
# Pass through error response
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb in
pre_process
end
end
# When we're under a non-async framework like rails, we can still spawn
# off async responses using the callback info, so there's little point
# in removing this.
response = AsyncResponse
catch(:async) do # Process the request calling the Rack adapter
response = @app.call(@request.env)
end
response
rescue Exception
handle_error
# Pass through error response
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb in
process
# is ready to be processed.
def process
if threaded?
@request.threaded = true
EventMachine.defer(method(:pre_process), method(:post_process))
else
@request.threaded = false
post_process(pre_process) end
end
def pre_process
# Add client info to the request env
@request.remote_address = remote_address
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb in
receive_data
@response = Response.new
end
# Called when data is received from the client.
def receive_data(data)
@idle = false
trace { data }
process if @request.parse(data) rescue InvalidRequest => e
log "!! Invalid request"
log_error e
post_process Response::BAD_REQUEST
end
# Called when all data was received and the request
/app/vendor/bundle/ruby/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb in
run_machine
@reactor_running = true
initialize_event_machine
(b = blk || block) and add_timer(0, b)
if @next_tick_queue && !@next_tick_queue.empty?
add_timer(0) { signal_loopbreak }
end
@reactor_thread = Thread.current
run_machine ensure
until @tails.empty?
@tails.pop.call
end
begin
release_machine
/app/vendor/bundle/ruby/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb in
run
@reactor_running = true
initialize_event_machine
(b = blk || block) and add_timer(0, b)
if @next_tick_queue && !@next_tick_queue.empty?
add_timer(0) { signal_loopbreak }
end
@reactor_thread = Thread.current
run_machine ensure
until @tails.empty?
@tails.pop.call
end
begin
release_machine
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/backends/base.rb in
start
@running = true
end
# Allow for early run up of eventmachine.
if EventMachine.reactor_running?
starter.call
else
EventMachine.run(&starter) end
end
# Stop of the backend from accepting new connections.
def stop
@running = false
@stopping = true
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/server.rb in
start
log ">> Thin web server (v#{VERSION::STRING} codename #{VERSION::CODENAME})"
debug ">> Debugging ON"
trace ">> Tracing ON"
log ">> Maximum connections set to #{@backend.maximum_connections}"
log ">> Listening on #{@backend}, CTRL+C to stop"
@backend.start end
alias :start! :start
# == Gracefull shutdown
# Stops the server after processing all current connections.
# As soon as this method is called, the server stops accepting
# new requests and wait for all current connections to finish.
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/controllers/controller.rb in
start
# If a stats URL is specified, wrap in Stats adapter
server.app = Stats::Adapter.new(server.app, @options[:stats]) if @options[:stats]
# Register restart procedure which just start another process with same options,
# so that's why this is done here.
server.on_restart { Command.run(:start, @options) }
server.start end
def stop
raise OptionRequired, :pid unless @options[:pid]
tail_log(@options[:log]) do
if Server.kill(@options[:pid], @options[:force] ? 0 : (@options[:timeout] || 60))
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/runner.rb in
run_command
when cluster? then Controllers::Cluster.new(@options)
when service? then Controllers::Service.new(@options)
else Controllers::Controller.new(@options)
end
if controller.respond_to?(@command)
begin
controller.send(@command, *@arguments) rescue RunnerError => e
abort e.message
end
else
abort "Invalid options for command: #{@command}"
end
end
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/runner.rb in
run!
@arguments = @argv
end
# Parse the current shell arguments and run the command.
# Exits on error.
def run!
if self.class.commands.include?(@command)
run_command elsif @command.nil?
puts "Command required"
puts @parser
exit 1
else
abort "Unknown command: #{@command}. Use one of #{self.class.commands.join(', ')}"
end
/app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/bin/thin in
<top (required)>
#!/usr/bin/env ruby
# Thin command line interface script.
# Run <tt>thin -h</tt> to get more usage.
require 'thin'
Thin::Runner.new(ARGV).run!/app/vendor/bundle/ruby/1.9.1/bin/thin in
load
if str =~ /\A_(.*)_\z/
version = $1
ARGV.shift
end
end
gem 'thin', version
load Gem.bin_path('thin', 'thin', version)/app/vendor/bundle/ruby/1.9.1/bin/thin in
<main>
if str =~ /\A_(.*)_\z/
version = $1
ARGV.shift
end
end
gem 'thin', version
load Gem.bin_path('thin', 'thin', version)No GET data.
No POST data.
| Variable | Value |
|---|---|
| GATEWAY_INTERFACE | CGI/1.2 |
| HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
| HTTP_ACCEPT_CHARSET | ISO-8859-1,utf-8;q=0.7,*;q=0.7 |
| HTTP_ACCEPT_ENCODING | deflate |
| HTTP_ACCEPT_LANGUAGE | en-us,en;q=0.5 |
| HTTP_CONNECTION | keep-alive |
| HTTP_HOST | blog.authy.com |
| HTTP_USER_AGENT | Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30 |
| HTTP_VERSION | HTTP/1.1 |
| HTTP_X_FORWARDED_FOR | 81.169.144.135 |
| HTTP_X_FORWARDED_PORT | 80 |
| HTTP_X_FORWARDED_PROTO | http |
| HTTP_X_HEROKU_DYNOS_IN_USE | 1 |
| HTTP_X_HEROKU_QUEUE_DEPTH | 0 |
| HTTP_X_HEROKU_QUEUE_WAIT_TIME | 0 |
| HTTP_X_REQUEST_START | 1357309987418 |
| PATH_INFO | /favicon.ico |
| QUERY_STRING | |
| REMOTE_ADDR | 10.226.243.2 |
| REQUEST_METHOD | GET |
| REQUEST_PATH | /favicon.ico |
| REQUEST_URI | /favicon.ico |
| SCRIPT_NAME | |
| SERVER_NAME | blog.authy.com |
| SERVER_PORT | 80 |
| SERVER_PROTOCOL | HTTP/1.1 |
| SERVER_SOFTWARE | thin 1.5.0 codename Knife |
| async.callback | #<Method: Thin::Connection#post_process> |
| async.close | #<EventMachine::DefaultDeferrable:0x00000002c659d8> |
| rack.errors | #<Object:0x000000028733e8> |
| rack.input | #<StringIO:0x00000002c5ea48> |
| rack.logger | #<Rack::NullLogger:0x00000001b2bd98 @app=#<Rack::Protection::FrameOptions:0x00000001b2c748 @app=#<Rack::Protection::IPSpoofing:0x00000001b2cd38 @app=#<Rack::Protection::JsonCsrf:0x00000001b2cf18 @app=#<Rack::Protection::PathTraversal:0x00000001b2d1e8 @app=#<Rack::Protection::XSSHeader:0x00000001b2d828 @app=#<Blossome::Blog:0x00000001fb8280 @default_layout=:layout, @app=nil, @template_cache=#<Tilt::Cache:0x00000001fb8230 @cache={[:haml, :index, {:outvar=>"@_out_buf", :default_encoding=>"utf-8"}]=>#<Tilt::HamlTemplate:0x00000001dcde70 @options={:outvar=>"@_out_buf"}, @line=1, @file="/app/app/views/index.haml", @compiled_method={[]=>#<UnboundMethod: BasicObject#__tilt_13377180>}, @default_encoding="utf-8", @reader=#<Proc:0x00000001dcd8a8@/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/template.rb:67 (lambda)>, @data="-# -latest_posts.each do |post|\n\n-latest_post = @posts[0]\n.post\n .post-header\n %h1\n %a{:href => url(latest_post.url)}= latest_post.title\n %p= latest_post.date\n = latest_post.html_content\n.separator\n\n\n.index\n - @posts[1..-1].each do |post|\n .post.expandable\n .post-header\n %h1\n %a{:href => url(post.url)}= post.title\n %p= post.date\n .content{:style => \"display:none\"}\n = post.html_content\n .separator\n\n\n", @engine=#<Haml::Engine:0x00000001dcd470 @options={:suppress_eval=>false, :attr_wrapper=>"'", :autoclose=>["meta", "img", "link", "br", "hr", "input", "area", "param", "col", "base"], :preserve=>["textarea", "pre", "code"], :filename=>"/app/app/views/index.haml", :line=>1, :ugly=>false, :format=>:xhtml, :escape_html=>false, :escape_attrs=>true, :encoding=>"ASCII-8BIT", :outvar=>"@_out_buf"}, @index=23, @template=[], @template_index=24, @to_close_stack=[], @output_tabs=0, @template_tabs=0, @flat=false, @newlines=0, @precompiled="\n\nlatest_post = @posts[0]\n_hamlout.push_text(\"<div class='post'>\\n <div class='post-header'>\\n <h1>\\n <a\#{_hamlout.adjust_tabs(3); \n\n\n_hamlout.attributes({}, nil, :href => url(latest_post.url))}>\#{_hamlout.adjust_tabs(1); _hamlout.format_script_false_true_false_false_false_true_false((latest_post.title\n));}</a>\\n </h1>\\n <p>\#{_hamlout.format_script_false_true_false_false_false_true_false((latest_post.date\n));}</p>\\n </div>\\n \#{_hamlout.adjust_tabs(-1); _hamlout.format_script_false_false_false_false_false_true_false(( latest_post.html_content\n));}\\n</div>\\n<div class='separator'></div>\\n<div class='index'>\\n\", 0, false);\n\n\n\n @posts[1..-1].each do |post|\n_hamlout.push_text(\" <div class='post expandable'>\\n <div class='post-header'>\\n <h1>\\n <a\#{_hamlout.adjust_tabs(3); \n\n\n_hamlout.attributes({}, nil, :href => url(post.url))}>\#{_hamlout.adjust_tabs(1); _hamlout.format_script_false_true_false_false_false_true_false((post.title\n));}</a>\\n </h1>\\n <p>\#{_hamlout.format_script_false_true_false_false_false_true_false((post.date\n));}</p>\\n </div>\\n <div class='content' style='display:none'>\\n \#{\n_hamlout.format_script_false_false_false_false_false_true_false(( post.html_content\n));}\\n </div>\\n </div>\\n <div class='separator'></div>\\n\", -2, false);end\n_hamlout.push_text(\"</div>\\n\", -1, false);", @to_merge=[], @tab_change=0, @parent=(root nil
(haml_comment {:text=>" -latest_posts.each do |post|"})
(silent_script {:text=>"latest_post = @posts[0]", :keyword=>nil})
(tag {:name=>"div", :attributes=>{"class"=>"post"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"post-header"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"h1", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url(latest_post.url)"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"latest_post.title"}))
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"latest_post.date"}))
(script {:text=>" latest_post.html_content", :escape_html=>false, :preserve=>false}))
(tag {:name=>"div", :attributes=>{"class"=>"separator"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})
(tag {:name=>"div", :attributes=>{"class"=>"index"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(silent_script {:text=>" @posts[1..-1].each do |post|", :keyword=>nil, :dont_indent_next_line=>false, :dont_tab_up_next_text=>false}
(tag {:name=>"div", :attributes=>{"class"=>"post expandable"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"post-header"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"h1", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url(post.url)"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"post.title"}))
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"post.date"}))
(tag {:name=>"div", :attributes=>{"class"=>"content", "style"=>"display:none"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(script {:text=>" post.html_content", :escape_html=>false, :preserve=>false})))
(tag {:name=>"div", :attributes=>{"class"=>"separator"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})))
(haml_comment {:text=>""})), @root=(root nil
(haml_comment {:text=>" -latest_posts.each do |post|"})
(silent_script {:text=>"latest_post = @posts[0]", :keyword=>nil})
(tag {:name=>"div", :attributes=>{"class"=>"post"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"post-header"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"h1", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url(latest_post.url)"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"latest_post.title"}))
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"latest_post.date"}))
(script {:text=>" latest_post.html_content", :escape_html=>false, :preserve=>false}))
(tag {:name=>"div", :attributes=>{"class"=>"separator"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})
(tag {:name=>"div", :attributes=>{"class"=>"index"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(silent_script {:text=>" @posts[1..-1].each do |post|", :keyword=>nil, :dont_indent_next_line=>false, :dont_tab_up_next_text=>false}
(tag {:name=>"div", :attributes=>{"class"=>"post expandable"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"post-header"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"h1", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url(post.url)"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"post.title"}))
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"post.date"}))
(tag {:name=>"div", :attributes=>{"class"=>"content", "style"=>"display:none"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(script {:text=>" post.html_content", :escape_html=>false, :preserve=>false})))
(tag {:name=>"div", :attributes=>{"class"=>"separator"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})))
(haml_comment {:text=>""})), @haml_comment=false, @indentation=nil, @next_line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=23, compiler=#<Haml::Engine:0x00000001dcd470 ...>, eod=true>, @line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=23, compiler=#<Haml::Engine:0x00000001dcd470 ...>, eod=true>, @tab_up=nil, @node=nil, @dont_tab_up_next_text=false, @dont_indent_next_line=false, @output_line=23>>, [:haml, :layout, {:outvar=>"@_out_buf", :default_encoding=>"utf-8"}]=>#<Tilt::HamlTemplate:0x000000026210e0 @options={:outvar=>"@_out_buf"}, @line=1, @file="/app/app/views/layout.haml", @compiled_method={[]=>#<UnboundMethod: BasicObject#__tilt_13377180>}, @default_encoding="utf-8", @reader=#<Proc:0x00000002620c30@/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/template.rb:67 (lambda)>, @data="!!!\n%html\n %head\n %meta{:charset => \"utf-8\"}/\n %link{:href => \"/rss\", :rel => \"alternate\", :title => \"Authy Blog\", :type => \"application/rss+xml\"}\n %title= @title\n %meta{:content => \"\#{@description}\", :name => \"description\"}\n %meta{:content => \"\#{@keywords}\", :name => \"keywords\"}\n -# Facebook open graph tags\n %meta{:content => \"\#{request.url}\", :property => \"og:url\"}\n %meta{:content => \"\#{@title}\", :property => \"og:site_name\"}\n %meta{:content => \"website\", :property => \"og:type\"}\n %meta{:content => \"\#{@title}\", :property => \"og:title\"}\n %meta{:content => \"\#{request.host}/assets/logo.png\", :property => \"og:image\"}\n %meta{:content => \"\#{@description}\", :property => \"og:description\"}\n %meta{:content => \"width=device-width\", :name => \"viewport\"}\n %link(rel=\"shortcut icon\" href=\"/assets/favicon.ico\" type=\"image/png\")\n %link{:href => \"/assets/application.css\", :media => \"screen\", :rel => \"stylesheet\", :type => \"text/css\"}\n %body\n = partial \"layouts/header\"\n .content-container\n = yield\n = partial \"layouts/footer\"\n", @engine=#<Haml::Engine:0x000000026205a0 @options={:suppress_eval=>false, :attr_wrapper=>"'", :autoclose=>["meta", "img", "link", "br", "hr", "input", "area", "param", "col", "base"], :preserve=>["textarea", "pre", "code"], :filename=>"/app/app/views/layout.haml", :line=>1, :ugly=>false, :format=>:xhtml, :escape_html=>false, :escape_attrs=>true, :encoding=>"ASCII-8BIT", :outvar=>"@_out_buf"}, @index=24, @template=[], @template_index=25, @to_close_stack=[], @output_tabs=0, @template_tabs=0, @flat=false, @newlines=0, @precompiled="_hamlout.push_text(\"<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.0 Transitional//EN\\\" \\\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\\\">\\n<html>\\n <head>\\n <meta charset='utf-8' />\\n <link href='/rss' rel='alternate' title='Authy Blog' type='application/rss+xml' />\\n <title>\#{_hamlout.adjust_tabs(3); \n\n\n\n\n_hamlout.format_script_false_true_false_false_false_true_false((@title\n));}</title>\\n <meta\#{_hamlout.attributes({}, nil, :content => \"\#{@description}\", :name => \"description\")} />\\n <meta\#{\n_hamlout.attributes({}, nil, :content => \"\#{@keywords}\", :name => \"keywords\")} />\\n <meta\#{\n\n_hamlout.attributes({}, nil, :content => \"\#{request.url}\", :property => \"og:url\")} />\\n <meta\#{\n_hamlout.attributes({}, nil, :content => \"\#{@title}\", :property => \"og:site_name\")} />\\n <meta content='website' property='og:type' />\\n <meta\#{\n\n_hamlout.attributes({}, nil, :content => \"\#{@title}\", :property => \"og:title\")} />\\n <meta\#{\n_hamlout.attributes({}, nil, :content => \"\#{request.host}/assets/logo.png\", :property => \"og:image\")} />\\n <meta\#{\n_hamlout.attributes({}, nil, :content => \"\#{@description}\", :property => \"og:description\")} />\\n <meta content='width=device-width' name='viewport' />\\n <link href='/assets/favicon.ico' rel='shortcut icon' type='image/png' />\\n <link href='/assets/application.css' media='screen' rel='stylesheet' type='text/css' />\\n </head>\\n <body>\\n \#{\n\n\n\n\n_hamlout.format_script_false_false_false_false_false_true_false(( partial \"layouts/header\"\n));}\\n <div class='content-container'>\\n \#{_hamlout.adjust_tabs(1); \n_hamlout.format_script_false_false_false_false_false_true_false(( yield\n));}\\n \#{_hamlout.format_script_false_false_false_false_false_true_false(( partial \"layouts/footer\"\n));}\\n </div>\\n </body>\\n</html>\\n\", -3, false);", @to_merge=[], @tab_change=0, @parent=(root nil
(doctype {:version=>nil, :type=>"", :encoding=>nil})
(tag {:name=>"html", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"head", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"meta", :attributes=>{"charset"=>"utf-8"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"link", :attributes=>{"href"=>"/rss", "rel"=>"alternate", "title"=>"Authy Blog", "type"=>"application/rss+xml"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"title", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"@title"})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@description}\", :name => \"description\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@keywords}\", :name => \"keywords\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(haml_comment {:text=>" Facebook open graph tags"})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{request.url}\", :property => \"og:url\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@title}\", :property => \"og:site_name\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{"content"=>"website", "property"=>"og:type"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@title}\", :property => \"og:title\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{request.host}/assets/logo.png\", :property => \"og:image\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@description}\", :property => \"og:description\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{"content"=>"width=device-width", "name"=>"viewport"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"link", :attributes=>{"rel"=>"shortcut icon", "href"=>"/assets/favicon.ico", "type"=>"image/png"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"link", :attributes=>{"href"=>"/assets/application.css", "media"=>"screen", "rel"=>"stylesheet", "type"=>"text/css"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}))
(tag {:name=>"body", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(script {:text=>" partial \"layouts/header\"", :escape_html=>false, :preserve=>false})
(tag {:name=>"div", :attributes=>{"class"=>"content-container"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(script {:text=>" yield", :escape_html=>false, :preserve=>false})
(script {:text=>" partial \"layouts/footer\"", :escape_html=>false, :preserve=>false}))))
(haml_comment {:text=>""})), @root=(root nil
(doctype {:version=>nil, :type=>"", :encoding=>nil})
(tag {:name=>"html", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"head", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"meta", :attributes=>{"charset"=>"utf-8"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"link", :attributes=>{"href"=>"/rss", "rel"=>"alternate", "title"=>"Authy Blog", "type"=>"application/rss+xml"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"title", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"@title"})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@description}\", :name => \"description\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@keywords}\", :name => \"keywords\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(haml_comment {:text=>" Facebook open graph tags"})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{request.url}\", :property => \"og:url\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@title}\", :property => \"og:site_name\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{"content"=>"website", "property"=>"og:type"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@title}\", :property => \"og:title\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{request.host}/assets/logo.png\", :property => \"og:image\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{}, :attributes_hashes=>[":content => \"\#{@description}\", :property => \"og:description\""], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"meta", :attributes=>{"content"=>"width=device-width", "name"=>"viewport"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"link", :attributes=>{"rel"=>"shortcut icon", "href"=>"/assets/favicon.ico", "type"=>"image/png"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil})
(tag {:name=>"link", :attributes=>{"href"=>"/assets/application.css", "media"=>"screen", "rel"=>"stylesheet", "type"=>"text/css"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}))
(tag {:name=>"body", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(script {:text=>" partial \"layouts/header\"", :escape_html=>false, :preserve=>false})
(tag {:name=>"div", :attributes=>{"class"=>"content-container"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(script {:text=>" yield", :escape_html=>false, :preserve=>false})
(script {:text=>" partial \"layouts/footer\"", :escape_html=>false, :preserve=>false}))))
(haml_comment {:text=>""})), @haml_comment=false, @indentation=nil, @next_line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=24, compiler=#<Haml::Engine:0x000000026205a0 ...>, eod=true>, @line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=24, compiler=#<Haml::Engine:0x000000026205a0 ...>, eod=true>, @tab_up=nil, @node=nil, @dont_tab_up_next_text=false, @dont_indent_next_line=false, @output_line=24>>, [:haml, :"layouts/header", {:outvar=>"@_out_buf", :default_encoding=>"utf-8"}]=>#<Tilt::HamlTemplate:0x00000002c4acf0 @options={:outvar=>"@_out_buf"}, @line=1, @file="/app/app/views/layouts/header.haml", @compiled_method={[]=>#<UnboundMethod: BasicObject#__tilt_13377180>}, @default_encoding="utf-8", @reader=#<Proc:0x00000002c4a8b8@/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/template.rb:67 (lambda)>, @data=".header\n .right-menu\n .icons\n %span.icon-home\n %span.icon-caret-down{:style =>\"-webkit-font-smoothing: antialiased;\"}\n #dropdown{:style=>\"display: all;\"}\n %ul\n %li\n %a{:href => url('/')} Home\n %li\n %a{:href => url('https://www.authy.com')} Website\n %li\n %a{:href => url('http://twitter.com/authy')} @authy\n %li\n %a{:href => url('https://www.authy.com/help/contact')} Contact-us\n .center\n %a{:href => \"/\"}\n %img{:src => \"/assets/logo.png\"}\n %p Authy Blog\n\n .phones-menu\n %li\n %a{:href => url('https://www.authy.com')} www.authy.com\n %li\n %a{:href => url('http://twitter.com/authy')} @authy\n %li\n %a{:href => url('https://www.authy.com/help/contact')} contact\n %hr\n", @engine=#<Haml::Engine:0x00000002c4a660 @options={:suppress_eval=>false, :attr_wrapper=>"'", :autoclose=>["meta", "img", "link", "br", "hr", "input", "area", "param", "col", "base"], :preserve=>["textarea", "pre", "code"], :filename=>"/app/app/views/layouts/header.haml", :line=>1, :ugly=>false, :format=>:xhtml, :escape_html=>false, :escape_attrs=>true, :encoding=>"ASCII-8BIT", :outvar=>"@_out_buf"}, @index=29, @template=[], @template_index=30, @to_close_stack=[], @output_tabs=0, @template_tabs=0, @flat=false, @newlines=0, @precompiled="_hamlout.push_text(\"<div class='header'>\\n <div class='right-menu'>\\n <div class='icons'>\\n <span class='icon-home'></span>\\n <span class='icon-caret-down' style='-webkit-font-smoothing: antialiased;'></span>\\n </div>\\n <div id='dropdown' style='display: all;'>\\n <ul>\\n <li>\\n <a\#{_hamlout.adjust_tabs(5); \n\n\n\n\n\n\n\n_hamlout.attributes({}, nil, :href => url('/'))}>Home</a>\\n </li>\\n <li>\\n <a\#{\n\n_hamlout.attributes({}, nil, :href => url('https://www.authy.com'))}>Website</a>\\n </li>\\n <li>\\n <a\#{\n\n_hamlout.attributes({}, nil, :href => url('http://twitter.com/authy'))}>@authy</a>\\n </li>\\n <li>\\n <a\#{\n\n_hamlout.attributes({}, nil, :href => url('https://www.authy.com/help/contact'))}>Contact-us</a>\\n </li>\\n </ul>\\n </div>\\n </div>\\n <div class='center'>\\n <a href='/'>\\n <img src='/assets/logo.png' />\\n </a>\\n <p>Authy Blog</p>\\n </div>\\n <div class='phones-menu'>\\n <li>\\n <a\#{_hamlout.adjust_tabs(-2); \n\n\n\n\n\n\n\n_hamlout.attributes({}, nil, :href => url('https://www.authy.com'))}>www.authy.com</a>\\n </li>\\n <li>\\n <a\#{\n\n_hamlout.attributes({}, nil, :href => url('http://twitter.com/authy'))}>@authy</a>\\n </li>\\n <li>\\n <a\#{\n\n_hamlout.attributes({}, nil, :href => url('https://www.authy.com/help/contact'))}>contact</a>\\n </li>\\n </div>\\n <hr />\\n</div>\\n\", -3, false);", @to_merge=[], @tab_change=0, @parent=(root nil
(tag {:name=>"div", :attributes=>{"class"=>"header"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"right-menu"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"icons"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"span", :attributes=>{"class"=>"icon-home"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})
(tag {:name=>"span", :attributes=>{"class"=>"icon-caret-down", "style"=>"-webkit-font-smoothing: antialiased;"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""}))
(tag {:name=>"div", :attributes=>{"id"=>"dropdown", "style"=>"display: all;"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"ul", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('/')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Home"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('https://www.authy.com')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Website"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('http://twitter.com/authy')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"@authy"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('https://www.authy.com/help/contact')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Contact-us"})))))
(tag {:name=>"div", :attributes=>{"class"=>"center"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{"href"=>"/"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"img", :attributes=>{"src"=>"/assets/logo.png"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}))
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Authy Blog"}))
(tag {:name=>"div", :attributes=>{"class"=>"phones-menu"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('https://www.authy.com')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"www.authy.com"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('http://twitter.com/authy')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"@authy"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('https://www.authy.com/help/contact')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"contact"})))
(tag {:name=>"hr", :attributes=>{}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}))
(haml_comment {:text=>""})), @root=(root nil
(tag {:name=>"div", :attributes=>{"class"=>"header"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"right-menu"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"icons"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"span", :attributes=>{"class"=>"icon-home"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})
(tag {:name=>"span", :attributes=>{"class"=>"icon-caret-down", "style"=>"-webkit-font-smoothing: antialiased;"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""}))
(tag {:name=>"div", :attributes=>{"id"=>"dropdown", "style"=>"display: all;"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"ul", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('/')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Home"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('https://www.authy.com')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Website"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('http://twitter.com/authy')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"@authy"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('https://www.authy.com/help/contact')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Contact-us"})))))
(tag {:name=>"div", :attributes=>{"class"=>"center"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{"href"=>"/"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"img", :attributes=>{"src"=>"/assets/logo.png"}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}))
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Authy Blog"}))
(tag {:name=>"div", :attributes=>{"class"=>"phones-menu"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('https://www.authy.com')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"www.authy.com"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('http://twitter.com/authy')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"@authy"}))
(tag {:name=>"li", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => url('https://www.authy.com/help/contact')"], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"contact"})))
(tag {:name=>"hr", :attributes=>{}, :attributes_hashes=>[], :self_closing=>true, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}))
(haml_comment {:text=>""})), @haml_comment=false, @indentation=nil, @next_line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=29, compiler=#<Haml::Engine:0x00000002c4a660 ...>, eod=true>, @line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=29, compiler=#<Haml::Engine:0x00000002c4a660 ...>, eod=true>, @tab_up=nil, @node=nil, @dont_tab_up_next_text=false, @dont_indent_next_line=false, @output_line=27>>, [:haml, :"layouts/footer", {:outvar=>"@_out_buf", :default_encoding=>"utf-8"}]=>#<Tilt::HamlTemplate:0x00000002cc0bd0 @options={:outvar=>"@_out_buf"}, @line=1, @file="/app/app/views/layouts/footer.haml", @compiled_method={[]=>#<UnboundMethod: BasicObject#__tilt_13377180>}, @default_encoding="utf-8", @reader=#<Proc:0x00000002cc0a90@/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/template.rb:67 (lambda)>, @data=".footer\n .copyright\n %p Authy Inc. 2012\n %script{:src => \"/assets/application.js\", :type => \"text/javascript\"}\n :javascript\n hljs.initHighlightingOnLoad();\n", @engine=#<Haml::Engine:0x00000002cc0950 @options={:suppress_eval=>false, :attr_wrapper=>"'", :autoclose=>["meta", "img", "link", "br", "hr", "input", "area", "param", "col", "base"], :preserve=>["textarea", "pre", "code"], :filename=>"/app/app/views/layouts/footer.haml", :line=>1, :ugly=>false, :format=>:xhtml, :escape_html=>false, :escape_attrs=>true, :encoding=>"ASCII-8BIT", :outvar=>"@_out_buf"}, @index=7, @template=[], @template_index=8, @to_close_stack=[], @output_tabs=0, @template_tabs=0, @flat=false, @newlines=0, @precompiled="_hamlout.push_text(\"<div class='footer'>\\n <div class='copyright'>\\n <p>Authy Inc. 2012</p>\\n </div>\\n <script src='/assets/application.js' type='text/javascript'></script>\\n <script type='text/javascript'>\\n //<![CDATA[\\n hljs.initHighlightingOnLoad();\\n //]]>\\n </script>\\n</div>\\n\", 0, false);", @to_merge=[], @tab_change=0, @parent=(root nil
(tag {:name=>"div", :attributes=>{"class"=>"footer"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"copyright"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Authy Inc. 2012"}))
(tag {:name=>"script", :attributes=>{"src"=>"/assets/application.js", "type"=>"text/javascript"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})
(filter {:name=>"javascript", :text=>"hljs.initHighlightingOnLoad();\n"}))
(haml_comment {:text=>""})), @root=(root nil
(tag {:name=>"div", :attributes=>{"class"=>"footer"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"copyright"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"Authy Inc. 2012"}))
(tag {:name=>"script", :attributes=>{"src"=>"/assets/application.js", "type"=>"text/javascript"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})
(filter {:name=>"javascript", :text=>"hljs.initHighlightingOnLoad();\n"}))
(haml_comment {:text=>""})), @haml_comment=false, @indentation=nil, @next_line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=7, compiler=#<Haml::Engine:0x00000002cc0950 ...>, eod=true>, @line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=7, compiler=#<Haml::Engine:0x00000002cc0950 ...>, eod=true>, @tab_up=nil, @node=nil, @dont_tab_up_next_text=false, @dont_indent_next_line=false, @output_line=1, @filter_buffer=nil, @flat_spaces=nil>>, [:haml, :post, {:outvar=>"@_out_buf", :default_encoding=>"utf-8"}]=>#<Tilt::HamlTemplate:0x00000002c34d60 @options={:outvar=>"@_out_buf"}, @line=1, @file="/app/app/views/post.haml", @compiled_method={[]=>#<UnboundMethod: BasicObject#__tilt_13377180>}, @default_encoding="utf-8", @reader=#<Proc:0x00000002c34c20@/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/template.rb:67 (lambda)>, @data=".post\n .post-header\n %h1= @post.title\n %p= @post.date\n = @post.html_content\n .social-share\n %p SHARE\n %a{:href => \"http://www.facebook.com/sharer.php?u=\#{request.url}\"}\n %i.icon-facebook \n %a{:href => \" http://twitter.com/share?url=\#{request.url}&text=\#{@post.title}\"}\n %i.icon-twitter \n .separator\n", @engine=#<Haml::Engine:0x00000002c34b30 @options={:suppress_eval=>false, :attr_wrapper=>"'", :autoclose=>["meta", "img", "link", "br", "hr", "input", "area", "param", "col", "base"], :preserve=>["textarea", "pre", "code"], :filename=>"/app/app/views/post.haml", :line=>1, :ugly=>false, :format=>:xhtml, :escape_html=>false, :escape_attrs=>true, :encoding=>"ASCII-8BIT", :outvar=>"@_out_buf"}, @index=13, @template=[], @template_index=14, @to_close_stack=[], @output_tabs=0, @template_tabs=0, @flat=false, @newlines=0, @precompiled="_hamlout.push_text(\"<div class='post'>\\n <div class='post-header'>\\n <h1>\#{_hamlout.adjust_tabs(3); \n\n_hamlout.format_script_false_true_false_false_false_true_false((@post.title\n));}</h1>\\n <p>\#{_hamlout.adjust_tabs(1); _hamlout.format_script_false_true_false_false_false_true_false((@post.date\n));}</p>\\n </div>\\n \#{_hamlout.adjust_tabs(-1); _hamlout.format_script_false_false_false_false_false_true_false(( @post.html_content\n));}\\n <div class='social-share'>\\n <p>SHARE</p>\\n <a\#{_hamlout.adjust_tabs(1); \n\n_hamlout.attributes({}, nil, :href => \"http://www.facebook.com/sharer.php?u=\#{request.url}\")}>\\n <i class='icon-facebook'></i>\\n </a>\\n <a\#{\n\n_hamlout.attributes({}, nil, :href => \" http://twitter.com/share?url=\#{request.url}&text=\#{@post.title}\")}>\\n <i class='icon-twitter'></i>\\n </a>\\n </div>\\n <div class='separator'></div>\\n</div>\\n\", -2, false);", @to_merge=[], @tab_change=0, @parent=(root nil
(tag {:name=>"div", :attributes=>{"class"=>"post"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"post-header"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"h1", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"@post.title"})
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"@post.date"}))
(script {:text=>" @post.html_content", :escape_html=>false, :preserve=>false})
(tag {:name=>"div", :attributes=>{"class"=>"social-share"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"SHARE"})
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => \"http://www.facebook.com/sharer.php?u=\#{request.url}\""], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"i", :attributes=>{"class"=>"icon-facebook"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""}))
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => \" http://twitter.com/share?url=\#{request.url}&text=\#{@post.title}\""], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"i", :attributes=>{"class"=>"icon-twitter"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})))
(tag {:name=>"div", :attributes=>{"class"=>"separator"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""}))
(haml_comment {:text=>""})), @root=(root nil
(tag {:name=>"div", :attributes=>{"class"=>"post"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"div", :attributes=>{"class"=>"post-header"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"h1", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"@post.title"})
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>true, :value=>"@post.date"}))
(script {:text=>" @post.html_content", :escape_html=>false, :preserve=>false})
(tag {:name=>"div", :attributes=>{"class"=>"social-share"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"p", :attributes=>{}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>"SHARE"})
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => \"http://www.facebook.com/sharer.php?u=\#{request.url}\""], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"i", :attributes=>{"class"=>"icon-facebook"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""}))
(tag {:name=>"a", :attributes=>{}, :attributes_hashes=>[":href => \" http://twitter.com/share?url=\#{request.url}&text=\#{@post.title}\""], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>nil}
(tag {:name=>"i", :attributes=>{"class"=>"icon-twitter"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""})))
(tag {:name=>"div", :attributes=>{"class"=>"separator"}, :attributes_hashes=>[], :self_closing=>false, :nuke_inner_whitespace=>false, :nuke_outer_whitespace=>false, :object_ref=>"nil", :escape_html=>false, :preserve_tag=>false, :preserve_script=>nil, :parse=>nil, :value=>""}))
(haml_comment {:text=>""})), @haml_comment=false, @indentation=nil, @next_line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=13, compiler=#<Haml::Engine:0x00000002c34b30 ...>, eod=true>, @line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=13, compiler=#<Haml::Engine:0x00000002c34b30 ...>, eod=true>, @tab_up=nil, @node=nil, @dont_tab_up_next_text=false, @dont_indent_next_line=false, @output_line=10>>, [:builder, :feed, {:outvar=>"@_out_buf", :default_encoding=>"utf-8"}]=>#<Tilt::BuilderTemplate:0x00000002a51070 @options={:outvar=>"@_out_buf"}, @line=1, @file="/app/app/views/feed.builder", @compiled_method={[]=>#<UnboundMethod: BasicObject#__tilt_13377180>}, @default_encoding="utf-8", @reader=#<Proc:0x00000002a50d28@/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/template.rb:67 (lambda)>, @data="xml.instruct!\nxml.feed \"xmlns\" => \"http://www.w3.org/2005/Atom\" do\n xml.title @title\n xml.id \#{request.url}\n xml.updated @posts.first.time.iso8601 unless @posts.empty?\n xml.author { xml.name \"Authy\" }\n\n @posts.reverse[0...10].each do |post|\n xml.entry do\n xml.title post.title\n xml.link \"rel\" => \"alternate\", \"href\" => post.url\n xml.id post.url\n xml.published post.time.iso8601\n xml.updated post.time.iso8601\n xml.author { xml.name \"Authy\" }\n xml.summary post.html_content[0..820] + \"...\", \"type\" => \"html\"\n xml.content post.html_content, \"type\" => \"html\"\n end\n end\nend\n\n">}>>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :xss_mode=>:block, :except=>[:session_hijacking, :remote_token]}>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :except=>[:session_hijacking, :remote_token]}>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :except=>[:session_hijacking, :remote_token]}>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :except=>[:session_hijacking, :remote_token]}>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :xss_mode=>:block, :frame_options=>:sameorigin, :except=>[:session_hijacking, :remote_token]}>> |
| rack.multiprocess | false |
| rack.multithread | false |
| rack.request.cookie_hash | {} |
| rack.request.query_hash | {} |
| rack.request.query_string | |
| rack.run_once | false |
| rack.url_scheme | http |
| rack.version | [1, 0] |
| sinatra.error | #<Errno::ENOENT: No such file or directory - ./posts/faviconico.md> |
You're seeing this error because you have
enabled the show_exceptions setting.