BootStraps: now with less crapyness
I’ve been getting rid of my TODO’s in my mini bootstrapping library whilst focusing on my Sinatra app and the config file looks a lot less crappy now. It even looks a tiny bit awesome. Its doesn’t do everything (still need to put my app/* directories in here) but it serves my purposes and remains flexible:
BootStraps::Initializer.configure do |config| #Use the vendor directory config.vendored = true config.default_env = 'production' #require each gem config.gem 'activerecord' config.gem 'sinatra' config.gem 'json' config.gem 'haml' config.gem 'twitter' config.gem 'nakajima-rack-flash' #action taken when config.db.connect is called config.db.connect_action do ActiveRecord::Base.establish_connection( :adapter => 'sqlite3', :dbfile => File.join(config.root, 'db', "#{config.env}.sqlite3" )) end #Sinatra settings config.framework.set :environment, config.env config.framework.set :views, File.join('app','views') config.framework.set :server, 'mongrel' config.framework.use Rack::Session::Cookie, :domain => 'localhost' config.framework.use Rack::Flash, :sweep => true end
No more string literal library names (holy cow that was bad), a nice flexible block for defining the db connection code, and little method missing spice to run whatever methods on whatever framework I’m using.
Using the config has been simplified as well:
require 'config/bootstraps' module MyMod class MyApp < Sinatra::Base configure do Straps.db.connect Straps.framework.apply_settings!(self) end end end
Thinking about rolling it into a gem just to save myself time down the road.
No Comments Yet