Skip to content

Commit

Permalink
Add puma, rubocop, Procfile
Browse files Browse the repository at this point in the history
  • Loading branch information
felipeelias committed Apr 2, 2019
1 parent 165a05c commit 3cd4983
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 32 deletions.
13 changes: 11 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
source "https://rubygems.org"
# frozen_string_literal: true

source 'https://rubygems.org'

ruby '2.6.2'

gem 'sinatra'
gem 'oauth2'
gem 'pry'
gem 'puma'
gem 'redcarpet'
gem 'sinatra'

group :development do
gem 'rubocop'
end
25 changes: 24 additions & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,44 @@ GEM
remote: https://rubygems.org/
specs:
addressable (2.2.6)
ast (2.4.0)
coderay (0.9.8)
faraday (0.7.5)
addressable (~> 2.2.6)
multipart-post (~> 1.1.3)
rack (>= 1.1.0, < 2)
jaro_winkler (1.5.2)
method_source (0.6.7)
ruby_parser (>= 2.3.1)
multi_json (1.0.4)
multipart-post (1.1.4)
oauth2 (0.5.1)
faraday (~> 0.7.4)
multi_json (~> 1.0.3)
parallel (1.17.0)
parser (2.6.2.0)
ast (~> 2.4.0)
pry (0.9.7.4)
coderay (~> 0.9.8)
method_source (~> 0.6.7)
ruby_parser (>= 2.3.1)
slop (~> 2.1.0)
psych (3.1.0)
puma (3.12.1)
rack (1.6.11)
rack-protection (1.5.5)
rack
rainbow (3.0.0)
redcarpet (3.4.0)
rubocop (0.66.0)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
parser (>= 2.5, != 2.5.1.1)
psych (>= 3.1.0)
rainbow (>= 2.2.2, < 4.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 1.6)
ruby-progressbar (1.10.0)
ruby_parser (3.12.0)
sexp_processor (~> 4.9)
sexp_processor (4.11.0)
Expand All @@ -32,15 +49,21 @@ GEM
tilt (~> 1.3, >= 1.3.3)
slop (2.1.0)
tilt (1.3.3)
unicode-display_width (1.5.0)

PLATFORMS
ruby

DEPENDENCIES
oauth2
pry
puma
redcarpet
rubocop
sinatra

RUBY VERSION
ruby 2.6.2p47

BUNDLED WITH
1.17.1
1.17.2
1 change: 1 addition & 0 deletions Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}
4 changes: 2 additions & 2 deletions config.ru
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'rubygems'
require 'bundler'
# frozen_string_literal: true

require 'bundler/setup'
Bundler.require

require './doorkeeper_client'
Expand Down
53 changes: 27 additions & 26 deletions doorkeeper_client.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
require "sinatra/base"
require "./lib/html_renderer"
# frozen_string_literal: true

require 'sinatra/base'
require './lib/html_renderer'

# Load custom environment variables
load 'env.rb' if File.exists?('env.rb')
load 'env.rb' if File.exist?('env.rb')

class DoorkeeperClient < Sinatra::Base
enable :sessions
Expand All @@ -20,13 +22,13 @@ def signed_in?
end

def markdown(text)
options = { :autolink => true, :space_after_headers => true, :fenced_code_blocks => true }
options = { autolink: true, space_after_headers: true, fenced_code_blocks: true }
markdown = Redcarpet::Markdown.new(HTMLRenderer, options)
markdown.render(text)
end

def markdown_readme
markdown(File.read(File.join(File.dirname(__FILE__), "README.md")))
markdown(File.read(File.join(File.dirname(__FILE__), 'README.md')))
end

def site_host
Expand All @@ -38,13 +40,13 @@ def client(token_method = :post)
OAuth2::Client.new(
ENV['OAUTH2_CLIENT_ID'],
ENV['OAUTH2_CLIENT_SECRET'],
:site => ENV['SITE'] || "http://doorkeeper-provider.herokuapp.com",
:token_method => token_method,
site: ENV['SITE'] || 'http://doorkeeper-provider.herokuapp.com',
token_method: token_method
)
end

def access_token
OAuth2::AccessToken.new(client, session[:access_token], :refresh_token => session[:refresh_token])
OAuth2::AccessToken.new(client, session[:access_token], refresh_token: session[:refresh_token])
end

def redirect_uri
Expand All @@ -56,8 +58,8 @@ def redirect_uri
end

get '/sign_in' do
scope = params[:scope] || "read"
redirect client.auth_code.authorize_url(:redirect_uri => redirect_uri, :scope => scope)
scope = params[:scope] || 'read'
redirect client.auth_code.authorize_url(redirect_uri: redirect_uri, scope: scope)
end

get '/sign_out' do
Expand All @@ -67,36 +69,35 @@ def redirect_uri

get '/callback' do
if params[:error]
erb :callback_error, :layout => !request.xhr?
erb :callback_error, layout: !request.xhr?
else
new_token = client.auth_code.get_token(params[:code], :redirect_uri => redirect_uri)
new_token = client.auth_code.get_token(params[:code], redirect_uri: redirect_uri)
session[:access_token] = new_token.token
session[:refresh_token] = new_token.refresh_token
redirect '/'
end
end

get '/refresh' do
begin
new_token = access_token.refresh!
session[:access_token] = new_token.token
session[:refresh_token] = new_token.refresh_token
redirect '/'
rescue OAuth2::Error => @error
erb :error, :layout => !request.xhr?
rescue StandardError => @error
erb :error, :layout => !request.xhr?
end
end
new_token = access_token.refresh!
session[:access_token] = new_token.token
session[:refresh_token] = new_token.refresh_token
redirect '/'
rescue OAuth2::Error => @error
erb :error, layout: !request.xhr?
rescue StandardError => @error
erb :error, layout: !request.xhr?
end

get '/explore/:api' do
raise "Please call a valid endpoint" unless params[:api]
raise 'Please call a valid endpoint' unless params[:api]

begin
response = access_token.get("/api/v1/#{params[:api]}")
@json = JSON.parse(response.body)
erb :explore, :layout => !request.xhr?
erb :explore, layout: !request.xhr?
rescue OAuth2::Error => @error
erb :error, :layout => !request.xhr?
erb :error, layout: !request.xhr?
end
end
end
4 changes: 3 additions & 1 deletion lib/html_renderer.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# frozen_string_literal: true

class HTMLRenderer < Redcarpet::Render::HTML
def header(text, header_level)
tag = "h#{header_level}"
text_as_id = text.downcase.gsub(/[^a-z0-9\-_]+/i, '-')
%Q{<#{tag} id="#{text_as_id}">#{text}</#{tag}>}
%(<#{tag} id="#{text_as_id}">#{text}</#{tag}>)
end
end

0 comments on commit 3cd4983

Please sign in to comment.