Sha256: a33abbb57e1cb8bc57b25fdd1e27d68b65515387e9aad3a3a46f83b878b311ee

Contents?: true

Size: 777 Bytes

Versions: 12

Compression:

Stored size: 777 Bytes

Contents

require 'sinatra/base'

module Coprl
  module Presenters
    module Demo
      class Search < Sinatra::Base
        get('/_search_') do
          content_type :json
          JSON.dump(search(params[:search]))
        end
        
        def search(term)
          require 'yaml'
          return [] unless term
          @terms ||= YAML::load_file(File.join(__dir__, './search-terms.yml'))
          @terms.keys.reduce([]) do |matches, topic|
            @terms[topic].reduce(matches) do |matches, item|
              matches << [item, matches.length] if item.downcase.include?(term.downcase)
              matches
            end
          end
        end

        # start the server if ruby file executed directly
        run! if app_file == $0
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
coprl-3.0.0.beta.12 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.11 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.10 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.9 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.8 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.7 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.6 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.5 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.4 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.3 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.2 lib/coprl/presenters/demo/search.rb
coprl-3.0.0.beta.1 lib/coprl/presenters/demo/search.rb