Tag Archive for 'ruby'

Get HTTP Headers in Ruby

Ein kleiner Schnipsel, um nur den Header eines HTTP Aufrufes zu erhalten.

url = URI.parse('http://manuel.funkensturm.de/')
req = Net::HTTP::Get.new(url.path)
res = Net::HTTP.start(url.host, url.port) { |http| http.request_head('/feed/') }
res.to_yaml

Interessant sind in meinen Augen folgende Werte:

>> res['last-modified']
=> "Tue, 11 Aug 2009 16:09:01 GMT"
>> res['content-type']
=> "application/rss+xml; charset=\"UTF-8\""
>> res['etag']
=> "\"ca39ca8e3c9d3b858ef0d711956e00ad\""

über last-modified oder den etag kann man dann schauen, ob man den Feed abholt oder die Aktion durchführt…

Passenger für Ruby on Rails aus TextMate “automatisch” neu starten

Manchmal möchte man seine Ruby-on-Rails-Applikation im Passenger manuell neu starten. Sprich eine Datei my_app/tmp/restart.txt anlegen. Ich habe ein kleines Command-Skript für TextMate dafür geschrieben. Wenn man es ausführt (in diesem Beispiel mit APFEL+R), wird beim nächsten Browseraufruf alles neu geladen. Praktisch wenn man Plugins entwickelt :)

Hier der Command in TextMate:

restart_passenger

Und hier der Code dafür

18
19
20
21
22
23
24
#!/usr/bin/env ruby
 
require "#{ENV['TM_BUNDLE_SUPPORT']}/lib/rails_bundle_tools.rb"
f = File.open File.join(RailsPath.new.rails_root, "tmp", "restart.txt"), "w"
f.close
 
puts "Rails Application will be reloaded!"

gem1.8 install mysql (MySql Ruby C bindings) in debian

Hier habe ich endlich gefunden, wieso genau die C Bindings für mysql nicht geklappt haben. Es fehlte noch ein apt Paket vorher (bzw. ich benutze aptitude).

Hier lag des Rätsels Lösung:

aptitude install libmysqlclient15-dev

Und erst dann hat man die mysql_config wie folgt zur Hand:

gem1.8 install mysql — –with-mysql-config=/usr/bin/mysql_config

Wie gesagt, “aptitude” muss für den ein oder anderen “apt get” sein und wenn man nicht als root eingeloggt ist, kommt noch ein “sudo” vor jeden Befehl.

Hinweis: Welches Paket man sich mit apt installieren muss (dieser Post muss ja nicht der aktuellste sein ;), kann man mit diesem Befehl herausfinden. Dann nimmt man einfach die neuste Version von dem oben genannten.

aptitude show libmysql