class Camping::Generators
Public Class Methods
make_camp_file(app_name="Tent")
click to toggle source
# File lib/camping/commands.rb, line 154 def make_camp_file(app_name="Tent") write "camp.rb", <<-RUBY require 'camping' Camping.goes :#{app_name} module #{app_name} module Models end module Controllers class Index def get @title = "#{app_name}" render :index end end end module Helpers end module Views def layout html do head do title '#{app_name}' link :rel => 'stylesheet', :type => 'text/css', :href => '/styles.css', :media => 'screen' end body do h1 '#{app_name}' div.wrapper! do self << yield end end end end def index h2 "Let's go Camping" end end end RUBY end
make_configkdl()
click to toggle source
write a config.kdl
# File lib/camping/commands.rb, line 247 def make_configkdl write 'config.kdl', <<-KDL // config.kdl hostname "localhost" KDL end
make_gemfile()
click to toggle source
write a Gemfile
# File lib/camping/commands.rb, line 255 def make_gemfile write 'Gemfile', <<-GEM source 'https://rubygems.org' gem 'camping' gem 'falcon' gem 'rake' group :production do gem 'rack-ssl-enforcer' end group :development do end group :test do gem 'minitest', '~> 5.0' gem 'minitest-reporters' gem 'rack-test' gem 'minitest-hooks' end GEM end
make_gitignore()
click to toggle source
makes a gitignore.
# File lib/camping/commands.rb, line 207 def make_gitignore write '.gitignore', <<-GIT .DS_Store node_modules/ tmp/ db/camping.db db/camping.sqlite3 db/camping.sqlite GIT end
make_public_folder()
click to toggle source
# File lib/camping/commands.rb, line 294 def make_public_folder Dir.mkdir("public") unless Dir.exist?("public") end
make_rakefile()
click to toggle source
writes a rakefile
# File lib/camping/commands.rb, line 225 def make_rakefile write 'Rakefile', <<-TXT # Rakefile require 'rake' require 'rake/clean' require 'rake/testtask' require 'tempfile' require 'open3' task :default => :test task :test => 'test:all' namespace 'test' do Rake::TestTask.new('all') do |t| t.libs << 'test' t.test_files = FileList['test/test_*.rb'] end end TXT end
make_readme()
click to toggle source
write a README.md
# File lib/camping/commands.rb, line 282 def make_readme write 'README.md', <<-READ # Camping Camping is really fun and I hope you enjoy it. Start camping by running: `camping` in the root directory. To start Camping in development mode run: `camping -e development READ end
make_ruby_version()
click to toggle source
# File lib/camping/commands.rb, line 218 def make_ruby_version write '.ruby-version', <<-RUBY #{RUBY_VERSION} RUBY end
make_test_folder()
click to toggle source
# File lib/camping/commands.rb, line 298 def make_test_folder Dir.mkdir("test") unless Dir.exist?("test") write 'test/test_helper.rb', <<-RUBY $:.unshift File.dirname(__FILE__) + '/../' # shift to act like we're in the regular degular directory begin require 'rubygems' rescue LoadError end require 'camping' require 'minitest/autorun' require 'minitest' require 'rack/test' require "minitest/reporters" Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(:color => true)] class TestCase < Minitest::Test include Rack::Test::Methods def self.inherited(mod) mod.app = Object.const_get(mod.to_s[/\w+/]) super end class << self attr_accessor :app end def body() last_response.body end def app() self.class.app end def assert_reverse begin yield rescue Exception else assert false, "Block didn't fail" end end def assert_body(str) case str when Regexp assert_match(str, last_response.body.strip) else assert_equal(str.to_s, last_response.body.strip) end end def assert_status(code) assert_equal(code, last_response.status) end def test_silly; end end RUBY end
read(file)
click to toggle source
read a file
# File lib/camping/commands.rb, line 150 def read(file) File.read(file) end
write(file, content)
click to toggle source
write a file
# File lib/camping/commands.rb, line 142 def write(file, content) raise "Cannot write to nil file." unless file folder = File.dirname(file) `mkdir -p #{folder}` unless File.exist?(folder) File.open(file, 'w') { |f| f.write content } end