Sha256: b49bf9ab579fc85d8a62630dfcb91ba6055f1a39850d7bef0ff282a6e699c51f

Contents?: true

Size: 1.53 KB

Versions: 47

Compression:

Stored size: 1.53 KB

Contents

require 'rubygems'
require 'bundler'
Bundler.require

# Sinatra settings.
#
set :static, true
set :public, File.dirname(__FILE__)
set :views,  File.expand_path('../views', __FILE__)
set :haml,   :format => :html5

# Load the simplified "model".
#
require File.expand_path '../book', __FILE__

# Sets up a search instance to the server.
#
BookSearch = Picky::Client.new :host => 'localhost', :port => 8080, :path => '/books'

# Root, the search page.
#
get '/' do
  @query = params[:q]

  haml :'/search'
end

# Renders the results into the json.
#
# You get the results from the picky server and then
# populate the result hash with rendered models.
#
get '/search/full' do
  results = BookSearch.search params[:query], :ids => params[:ids], :offset => params[:offset]
  results.extend Picky::Convenience
  results.populate_with Book do |book|
    book.render
  end

  #
  # Or, to populate with the model instances, use:
  #   results.populate_with Book
  #
  # Then to render:
  #   rendered_entries = results.entries.map do |book| (render each book here) end
  #

  ActiveSupport::JSON.encode results
end

# Updates the search count while the user is typing.
#
# We don't parse/reencode the returned json string using search_unparsed.
#
get '/search/live' do
  BookSearch.search_unparsed params[:query], :ids => params[:ids], :offset => params[:offset]
end

# Configure. The configuration info page.
#
get '/configure' do
  haml :'/configure'
end

helpers do

  def js path
    "<script src='javascripts/#{path}.js' type='text/javascript'></script>"
  end

end

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
picky-generators-4.0.0pre1 prototypes/client/sinatra/app.rb
picky-generators-3.6.16 prototypes/client/sinatra/app.rb
picky-generators-3.6.15 prototypes/client/sinatra/app.rb
picky-generators-3.6.14 prototypes/client/sinatra/app.rb
picky-generators-3.6.13 prototypes/client/sinatra/app.rb
picky-generators-3.6.12 prototypes/client/sinatra/app.rb
picky-generators-3.6.11 prototypes/client/sinatra/app.rb
picky-generators-3.6.10 prototypes/client/sinatra/app.rb
picky-generators-3.6.9 prototypes/client/sinatra/app.rb
picky-generators-3.6.8 prototypes/client/sinatra/app.rb
picky-generators-3.6.7 prototypes/client/sinatra/app.rb
picky-generators-3.6.6 prototypes/client/sinatra/app.rb
picky-generators-3.6.4 prototypes/client/sinatra/app.rb
picky-generators-3.6.3 prototypes/client/sinatra/app.rb
picky-generators-3.6.2 prototypes/client/sinatra/app.rb
picky-generators-3.6.1 prototypes/client/sinatra/app.rb
picky-generators-3.6.0 prototypes/client/sinatra/app.rb
picky-generators-3.5.4 prototypes/client/sinatra/app.rb
picky-generators-3.5.3 prototypes/client/sinatra/app.rb
picky-generators-3.5.2 prototypes/client/sinatra/app.rb