Module: Frank
- Extended by:
- Upgrades
- Defined in:
- lib/frank.rb,
lib/frank.rb,
lib/frank/cli.rb,
lib/frank/base.rb,
lib/frank/lorem.rb,
lib/frank/rescue.rb,
lib/frank/compile.rb,
lib/frank/publish.rb,
lib/frank/version.rb,
lib/frank/settings.rb,
lib/frank/upgrades.rb,
lib/frank/tilt_setup.rb,
lib/frank/publish/ftp.rb,
lib/frank/publish/scp.rb,
lib/frank/publish/base.rb,
lib/frank/publish/sftp.rb,
lib/frank/publish/ftptls.rb,
lib/frank/template_helpers.rb,
lib/frank/middleware/imager.rb,
lib/frank/middleware/statik.rb,
lib/frank/publish/shell_scp.rb,
lib/frank/middleware/refresh.rb
Overview
relay
Defined Under Namespace
Modules: Middleware, Publish, Render, Rescue, TemplateHelpers, Upgrades Classes: Base, CLI, Compile, ConfigError, HamlTemplate, Lorem, RadiusTemplate, SassTemplate, ScssTemplate, Settings, TemplateError
Constant Summary collapse
- VERSION =
'1.0.12'
Class Method Summary collapse
-
.bootstrap(new_root = nil) ⇒ Object
Bootstrap will set up Frank up at a root path, and read in the setup.rb.
- .configure ⇒ Object
-
.new(&block) ⇒ Object
starts the server.
-
.stub(project) ⇒ Object
copies over the generic project template.
Methods included from Upgrades
Class Method Details
.bootstrap(new_root = nil) ⇒ Object
Bootstrap will set up Frank up at a root path, and read in the setup.rb
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 |
# File 'lib/frank/base.rb', line 222 def self.bootstrap(new_root = nil) Frank.reset Frank.root = new_root if new_root # setup compass begin require 'compass' Compass.configuration do |config| # project_path should be the directory to which the sass directory is relative. # I think maybe this should be one more directory up from the configuration file. # Please update this if it is or remove this message if it can stay the way it is. config.project_path = Frank.root config.sass_dir = File.join('dynamic', 'stylesheets') end # sass_engine_options returns a hash, you can merge it with other options. Frank. = Compass. rescue LoadError # ignore if compass is not there end # try to pull in setup setup = File.join(Frank.root, 'setup.rb') if File.exists?(setup) load setup elsif File.exist? File.join(Dir.pwd, 'settings.yml') puts "\033[31mFrank could not find setup.rb, perhaps you need to upgrade with the `frank upgrade\' command \033[0m" exit! end end |
.configure ⇒ Object
43 44 45 46 |
# File 'lib/frank.rb', line 43 def configure settings = Frank::Settings.instance block_given? ? yield(settings) : settings end |
.new(&block) ⇒ Object
starts the server
258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 |
# File 'lib/frank/base.rb', line 258 def self.new(&block) base = Base.new(&block) builder = Rack::Builder.new do use Frank::Middleware::Statik, :root => Frank.static_folder use Frank::Middleware::Refresh, :watch => [ Frank.dynamic_folder, Frank.static_folder, Frank.layouts_folder ] run base end unless Frank.environment == :test = ['got it under control', 'got your back', 'holdin\' it down', 'takin\' care of business', 'workin\' some magic'].sort_by{rand}.first.strip puts "\n-----------------------" if Frank.serving_static? puts " This doesn't look like a frank project. Frank's serving this folder up his way..." else puts " Frank's #{ }..." end puts " #{Frank.server.hostname}:#{Frank.server.port} \n\n" begin server = Rack::Handler.get(Frank.server.handler) rescue LoadError puts "\n\nUnable to find handler for: #{Frank.server.handler}" puts "\nUse `gem install #{Frank.server.handler}' to install it" puts "\nDefaulting to using webrick" server = Rack::Handler.get("webrick") end server.run(builder, :Port => Frank.server.port, :Host => Frank.server.hostname) do trap(:INT) { puts "\n\n-----------------------\n Show's over, fellas.\n\n"; exit } end end base rescue Errno::EADDRINUSE puts " Hold on a second... Frank works alone.\n \033[31mSomething's already using port #{Frank.server.port}\033[0m\n\n" end |
.stub(project) ⇒ Object
copies over the generic project template
299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 |
# File 'lib/frank/base.rb', line 299 def self.stub(project) templates_dir = File.join(ENV['HOME'], '.frank_templates') choice = nil puts "\nFrank is...\n - \033[32mCreating\033[0m your project '#{project}'" # if user has a ~/.frank_templates folder # provide an interface for choosing template if File.exist? templates_dir templates = %w[default] + Dir[File.join(templates_dir, '**')].map { |d| d.split('/').last } puts "\nWhich template would you like to use? " templates.each_with_index { |t, i| puts " #{i + 1}. #{t}" } print '> ' # get input and wait for a valid response trap(:INT) { puts "\nbye"; exit } choice = STDIN.gets.chomp until ( choice.match(/^\d+$/) && templates[choice.to_i - 1] ) || choice == '1' print " `#{choice}' \033[31mis not a valid template choice\033[0m\n> " choice = STDIN.gets.chomp end end Dir.mkdir project template = choice.nil? ? 'default' : templates[choice.to_i - 1] puts " - \033[32mCopying\033[0m #{template} Frank template" if template == 'default' FileUtils.cp_r( Dir.glob(File.join(LIBDIR, 'template/*')), project ) else FileUtils.cp_r( Dir.glob(File.join(templates_dir, "#{template}/*")), project ) end puts "\n \033[32mCongratulations, '#{project}' is ready to go!\033[0m" rescue Errno::EEXIST puts "\n \033[31muh oh, directory '#{project}' already exists...\033[0m" exit end |