Changeset 1069
- Timestamp:
- 12/08/07 10:11:07 (10 months ago)
- Files:
-
- branches/constants_rewrite (copied) (copied from trunk)
- branches/constants_rewrite/app_generators/merb/templates/Rakefile (modified) (3 diffs)
- branches/constants_rewrite/app_generators/merb/templates/config/boot.rb (modified) (1 diff)
- branches/constants_rewrite/lib/merb.rb (modified) (2 diffs)
- branches/constants_rewrite/lib/merb/mixins/render.rb (modified) (5 diffs)
- branches/constants_rewrite/lib/tasks/app.rake (added)
- branches/constants_rewrite/lib/tasks/framework.rake (added)
- branches/constants_rewrite/lib/tasks/merb.rake (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/constants_rewrite/app_generators/merb/templates/Rakefile
r1023 r1069 2 2 require 'rake/rdoctask' 3 3 require 'rake/testtask' 4 require 'spec/rake/spectask'5 4 require 'fileutils' 6 5 require 'rubygems' 7 8 MERB_ENV = ENV['MERB_ENV'] if ENV['MERB_ENV']9 10 require File.dirname(__FILE__)+'/config/boot.rb'11 require MERB_FRAMEWORK_ROOT+'/tasks'12 MERB_ROOT = File.dirname(__FILE__)13 6 include FileUtils 14 7 15 # Get Merb plugins and dependencies 16 require File.dirname(__FILE__)+'/config/dependencies.rb' 17 Merb::Plugins.rakefiles.each {|r| require r } 8 MERB_ENV = ENV['MERB_ENV'] if ENV['MERB_ENV'] 9 MERB_ROOT = File.dirname(__FILE__) 10 merb_framework_root = ENV['MERB_FRAMEWORK_ROOT'] 18 11 19 #desc "Packages up Merb." 20 #task :default => [:package] 12 require File.dirname(__FILE__) + '/config/boot.rb' 13 require MERB_FRAMEWORK_ROOT + '/tasks' 21 14 22 desc "load merb_init.rb" 23 task :merb_init do 24 require 'merb' 25 require File.dirname(__FILE__)+'/config/merb_init.rb' 26 end 15 # Load dependencies 16 require MERB_ROOT + '/config/dependencies.rb' 17 18 # Load plugin rakefiles 19 Merb::Plugins.rakefiles.each {|r| require r } 27 20 28 21 task :uninstall => [:clean] do 29 22 sh %{sudo gem uninstall #{NAME}} 30 end31 32 desc 'Run unit tests'33 Rake::TestTask.new('test_unit') do |t|34 t.libs << 'test'35 t.pattern = 'test/unit/*_test.rb'36 t.verbose = true37 end38 39 desc 'Run functional tests'40 Rake::TestTask.new('test_functional') do |t|41 t.libs << 'test'42 t.pattern = 'test/functional/*_test.rb'43 t.verbose = true44 23 end 45 24 … … 51 30 end 52 31 53 desc "Run all specs" 54 Spec::Rake::SpecTask.new('specs') do |t| 55 t.spec_opts = ["--format", "specdoc", "--colour"] 56 t.spec_files = Dir['spec/**/*_spec.rb'].sort 32 namespace :test do 33 desc 'Run unit tests' 34 Rake::TestTask.new('unit') do |t| 35 t.libs << 'test' 36 t.pattern = 'test/unit/*_test.rb' 37 t.verbose = true 38 end 39 40 desc 'Run functional tests' 41 Rake::TestTask.new('functional') do |t| 42 t.libs << 'test' 43 t.pattern = 'test/functional/*_test.rb' 44 t.verbose = true 45 end 57 46 end 58 47 59 desc "Run all model specs" 60 Spec::Rake::SpecTask.new('model_specs') do |t| 61 t.spec_opts = ["--format", "specdoc", "--colour"] 62 t.spec_files = Dir['spec/models/**/*_spec.rb'].sort 63 end 48 begin 49 require 'spec/rake/spectask' 64 50 65 desc "Run all controller specs" 66 Spec::Rake::SpecTask.new('controller_specs') do |t| 67 t.spec_opts = ["--format", "specdoc", "--colour"] 68 t.spec_files = Dir['spec/controllers/**/*_spec.rb'].sort 69 end 70 71 desc "Run a specific spec with TASK=xxxx" 72 Spec::Rake::SpecTask.new('spec') do |t| 73 t.spec_opts = ["--format", "specdoc", "--colour"] 74 t.libs = ['lib', 'server/lib' ] 75 t.spec_files = ["spec/merb/#{ENV['TASK']}_spec.rb"] 76 end 77 78 desc "Run all specs output html" 79 Spec::Rake::SpecTask.new('specs_html') do |t| 80 t.spec_opts = ["--format", "html"] 81 t.libs = ['lib', 'server/lib' ] 82 t.spec_files = Dir['spec/**/*_spec.rb'].sort 83 end 84 85 desc "RCov" 86 Spec::Rake::SpecTask.new('rcov') do |t| 87 t.spec_opts = ["--format", "specdoc", "--colour"] 88 t.spec_files = Dir['spec/**/*_spec.rb'].sort 89 t.libs = ['lib', 'server/lib' ] 90 t.rcov = true 91 end 92 93 desc 'Run all tests, specs and finish with rcov' 94 task :aok do 95 sh %{rake rcov} 96 sh %{rake spec} 51 desc "Run all specs" 52 Spec::Rake::SpecTask.new('specs') do |t| 53 t.spec_opts = ["--format", "specdoc", "--colour"] 54 if ENV['TASK'] 55 t.libs = ['lib', 'server/lib' ] 56 t.spec_files = ["spec/merb/#{ENV['TASK']}_spec.rb"] 57 else 58 t.spec_files = Dir['spec/**/*_spec.rb'].sort 59 end 60 end 61 62 namespace :specs do 63 64 desc "Run all model specs" 65 Spec::Rake::SpecTask.new('model') do |t| 66 t.spec_opts = ["--format", "specdoc", "--colour"] 67 t.spec_files = Dir['spec/models/**/*_spec.rb'].sort 68 end 69 70 desc "Run all controller specs" 71 Spec::Rake::SpecTask.new('controller') do |t| 72 t.spec_opts = ["--format", "specdoc", "--colour"] 73 t.spec_files = Dir['spec/controllers/**/*_spec.rb'].sort 74 end 75 76 desc "Run all specs and output html" 77 Spec::Rake::SpecTask.new('html') do |t| 78 t.spec_opts = ["--format", "html"] 79 t.libs = ['lib', 'server/lib' ] 80 t.spec_files = Dir['spec/**/*_spec.rb'].sort 81 end 82 83 desc "RCov" 84 Spec::Rake::SpecTask.new('rcov') do |t| 85 t.spec_opts = ["--format", "specdoc", "--colour"] 86 t.spec_files = Dir['spec/**/*_spec.rb'].sort 87 t.libs = ['lib', 'server/lib' ] 88 t.rcov = true 89 end 90 end 91 92 desc 'Run all tests, specs and finish with rcov' 93 task :aok do 94 sh %{rake rcov} 95 sh %{rake spec} 96 end 97 98 rescue LoadError 99 puts "RSpec not Installed" 97 100 end 98 101 … … 101 104 ############################################################################## 102 105 103 desc "Add new files to subversion" 104 task :svn_add do 105 system "svn status | grep '^\?' | sed -e 's/? *//' | sed -e 's/ /\ /g' | xargs svn add" 106 namespace :svn do 107 desc "Add new files to subversion" 108 task :add do 109 system "svn status | grep '^\?' | sed -e 's/? *//' | sed -e 's/ /\ /g' | xargs svn add" 110 end 106 111 end branches/constants_rewrite/app_generators/merb/templates/config/boot.rb
r861 r1069 1 frozen_framework_path = File.join(File.dirname(__FILE__), "..", "framework")1 frozen_framework_path ||= File.join(File.dirname(__FILE__), "..", "framework") 2 2 3 unless defined?(MERB_ FRAMEWORK_ROOT)3 unless defined?(MERB_LOADED) 4 4 if File.directory?(frozen_framework_path) 5 5 $:.unshift frozen_framework_path branches/constants_rewrite/lib/merb.rb
r1017 r1069 92 92 93 93 MERB_FRAMEWORK_ROOT = __DIR__ 94 MERB_ROOT = Merb::Server.config[:merb_root] || Dir.pwd 94 (MERB_ROOT = (Merb::Server.config[:merb_root] || Dir.pwd)) unless defined?('MERB_ROOT') 95 95 MERB_VIEW_ROOT = MERB_ROOT / "app/views" 96 96 MERB_SKELETON_DIR = File.join(MERB_FRAMEWORK_ROOT, '../app_generators/merb/templates') … … 115 115 ] 116 116 117 MERB_LOADED = true 118 117 119 if $TESTING 118 120 test_files = File.join(lib, 'test', '*.rb') branches/constants_rewrite/lib/merb/mixins/render.rb
r1014 r1069 6 6 7 7 def self.included(base) 8 base.class_eval { 8 base.class_eval { 9 9 class_inheritable_accessor :_template_root, 10 10 :_layout, … … 17 17 self._cached_partials = {} 18 18 19 attr_accessor :template 19 attr_accessor :template 20 20 } 21 21 end … … 132 132 # 133 133 def render(*args,&blk) 134 opts = Hash === args.last? args.pop : {}134 opts = (Hash === args.last) ? args.pop : {} 135 135 136 136 action = opts[:action] || params[:action] … … 299 299 300 300 if opts[:with] # Render a collection or an object 301 partial_for_collection(template, opts [:with], opts)301 partial_for_collection(template, opts.delete(:with), opts) 302 302 else # Just render a partial 303 303 engine = Template.engine_for(template) … … 316 316 317 317 def render_partial(template, engine, locals={}) 318 @_merb_partial_locals = locals319 options = {320 :file => template,321 :view_context => clean_view_context(engine),322 :opts => { :locals => locals }323 }324 engine.transform(options)318 @_merb_partial_locals = locals 319 options = { 320 :file => template, 321 :view_context => clean_view_context(engine), 322 :opts => { :locals => locals } 323 } 324 engine.transform(options) 325 325 end 326 326 327 327 def partial_for_collection(template, collection, opts={}) 328 # Delete the internal keys, so that everything else is considered 329 # a local declaration in the partial 330 local_name = opts.delete(:as) 331 opts.delete(:with) 332 333 engine = Template.engine_for(template) 334 335 ret = '' 336 [ collection ].flatten.each do |object| 337 opts.merge!({local_name.to_sym => object}) 338 ret << render_partial(template, engine, opts) 339 end 340 ret 328 # Delete the internal keys, so that everything else is considered 329 # a local declaration in the partial 330 local_name = opts.delete(:as) 331 332 engine = Template.engine_for(template) 333 334 buffer = [] 335 336 collection = [collection].flatten 337 collection.each_with_index do |object, count| 338 opts.merge!({ 339 local_name.to_sym => object, 340 :count => count 341 }) 342 buffer << render_partial(template, engine, opts) 343 end 344 345 buffer.join 341 346 end 342 347 branches/constants_rewrite/lib/tasks/merb.rake
r690 r1069 1 def install_merb_script2 script_filepath = MERB_ROOT / 'script/merb'3 FileUtils.rm script_filepath if File.exist? script_filepath4 tmpl = "#!/usr/bin/env ruby\nrequire File.expand_path(File.dirname(__FILE__)+'/../framework/merb/server')\nMerb::Server.run\n"5 File.open(script_filepath, 'wb') {|f|6 f.write tmpl7 f.chmod(0744)8 }9 end10 1 11 namespace :merb do12 desc "freeze the merb framework into merb for portability"13 task :freeze do14 FileUtils.rm_rf MERB_ROOT / 'framework'15 FileUtils.cp_r MERB_FRAMEWORK_ROOT, (MERB_ROOT / 'framework')16 install_merb_script17 18 puts " Freezing Merb Framework into framework"19 puts " Use script/merb to start instead of plain merb"20 end21 desc "unfreeze this app from the framework and use system gem."22 task :unfreeze do23 FileUtils.rm_rf MERB_ROOT / 'framework'24 FileUtils.rm MERB_ROOT / 'script/merb'25 26 puts " Removed: "27 puts " - #{MERB_ROOT / 'framework'} (recursive) "28 puts " - #{MERB_ROOT / 'script/merb'}"29 end30 31 desc "freeze the merb framework from svn, use REVISION=# to freeze a specific revision"32 task :freeze_from_svn do33 install_path = MERB_ROOT / 'framework'34 revision = ENV['REVISION'] || 'HEAD'35 puts " Removing old framework" if File.exist? install_path36 FileUtils.rm_rf install_path37 38 puts " Freezing Merb Framework from svn, revision #{revision}"39 system "svn co -r #{revision} http://svn.devjavu.com/merb/trunk/lib #{install_path}"40 install_merb_script41 42 puts " Use script/merb to start instead of plain merb"43 end44 45 end46 47 desc "Setup the Merb Environment by requiring merb and loading your merb_init.rb"48 task :merb_env do49 require 'rubygems'50 require 'merb'51 Merb::Server.config[:environment] = ENV['MERB_ENV'] if ENV['MERB_ENV']52 MERB_ENV = Merb::Server.config[:environment].nil? ? 'development' : Merb::Server.config[:environment]53 load MERB_ROOT+'/config/merb_init.rb'54 end
