Skip to content

Commit

Permalink
reading the git part (chapter 5)
Browse files Browse the repository at this point in the history
  • Loading branch information
crguezl committed Oct 27, 2013
1 parent 20714e2 commit 53df03a
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 0 deletions.
18 changes: 18 additions & 0 deletions chapter5/Sinatra-Up-And-Running-Practice/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,22 @@ source 'https://rubygems.org'

gem 'rack-cache'
gem 'sinatra'

# Note for Mac OSX Maverick users
# I had problems when installing gems making use of native Xcode.
#
# gem install redcarpet
#
# You have not agreed to the Xcode license agreements, please run
#
# 'xcodebuild -license' (for user-level acceptance)
# or
# 'sudo xcodebuild-license' (for system-wide acceptance)
#
# from within a Terminal window
# to review and agree to the Xcode license agreements.
#
#
# Fixed following the indication above.
gem 'redcarpet'
gem 'rdiscount' # the one mentioned in the book, page 93
13 changes: 13 additions & 0 deletions chapter5/Sinatra-Up-And-Running-Practice/articles/maduro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
title: Viceministerio para la Suprema Felicidad del Pueblo
date: 2013-10-27

Maduro crea un Viceministerio para la Suprema Felicidad del Pueblo
===================

Maduro había creado en agosto el Sistema Nacional de Misiones con el nombre de Hugo Chávez.

El gobierno venezolano parece estar tomándose muy en serio la
felicidad. El presidente Nicolás Maduro anunció la creación del
"Viceministerio para la Suprema Felicidad Social del Pueblo".

El nuevo organismo, dijo, tendrá como tarea coordinar distintos programas del gobierno, fundamentalmente enfocados en el área social.
32 changes: 32 additions & 0 deletions chapter5/Sinatra-Up-And-Running-Practice/articles/ohio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
title: Javier Marias. Suerte que no hay simios en Ohio
date: 2013-10-27

...
Pues bien, admitiendo la posibilidad de que yo sea un cretino –nunca
se sabe a quién se lo puede uno parecer, aunque me reconforta que
me tengan por tal algunos escritores, columnistas y políticos, su
aprobación me preocuparía–, soy incapaz de juzgar con ecuanimidad
la decisión del Estado de Ohio, que además se aprestaban a imitar,
en cuanto entrara en vigor, varios Estados más de los llamados
Unidos, a saber: se ha sancionado como “discriminatorio” hacia los
ciegos que, como sucedía hasta ahora, no se les permita tener
licencia de armas, ni portarlas ni hacer uso de ellas, de modo que
a partir de la nueva ley estarán autorizados a poseer arsenales y
a pasearlos por las calles, ya que, como ustedes sabrán, los fanáticos
de la NRA o Asociación Nacional del Rifle no se suelen contentar
con guardar un Colt o una Glock en sus hogares, sino que se proveen
con frecuencia de metralletas, granadas, fusiles de asalto y hasta
bazookas o sus equivalentes más modernos. A partir de cierta edad
los conductores de coches son sometidos a pruebas médicas periódicas
para comprobar cómo andan de reflejos y de la vista, y el carnet
no se renueva a los que no las pasan, por el peligro que suponen.
Varios Estados americanos, en cambio, con el de Ohio a la cabeza,
han dictaminado que privar del derecho a la tenencia y uso de armas
a quienes no ven ni torta y podrían disparar “al bulto” y a voleo,
no es una medida sensata y prudente, sino “discriminatoria” con los
pobres e indefensos invidentes. Por si acaso, no pondré pie en Ohio,
temeroso de encontrarme con tipos fieros que en una mano lleven
bastón blanco y en la otra un Kalashnikov de gatillo paranoico y
fácil, que apretarán “de oído”.

Javier Marías
5 changes: 5 additions & 0 deletions chapter5/Sinatra-Up-And-Running-Practice/lib/blog.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,23 @@

class Blog < Sinatra::Base
use GithubHook

set :root, File.expand_path('../../', __FILE__)
set :articles, []
set :app_file, __FILE__

Dir.glob "#{root}/articles/*.md" do |file|
meta, content = File.read(file).split("\n\n", 2)

article = OpenStruct.new YAML.load(meta)
article.date = Time.parse article.date.to_s
article.content = content
article.slug = File.basename(file, '.md')

get "/#{article.slug}" do
erb :post, :locals => { :article => article }
end

articles << article
end
articles.sort_by! { |article| article.date }
Expand Down
6 changes: 6 additions & 0 deletions chapter5/Sinatra-Up-And-Running-Practice/lib/github_hook.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,24 @@
require 'time'

class GithubHook < Sinatra::Base

def self.parse_git
# Parse hash and date from the git log command.
sha1, date = `git log HEAD~1..HEAD --pretty=format:%h^%ci`.strip.split('^')
set :commit_hash, sha1
set :commit_date, Time.parse(date)
end

set(:autopull) { production? }

parse_git

before do
cache_control :public, :must_revalidate
etag settings.commit_hash
last_modified settings.commit_date
end

post '/update' do
settings.parse_git
app.settings.reset!
Expand All @@ -26,4 +31,5 @@ def self.parse_git
"ok"
end
end

end

0 comments on commit 53df03a

Please sign in to comment.