Changeset 1069

Show
Ignore:
Timestamp:
12/08/07 10:11:07 (10 months ago)
Author:
hcatl..@gmail.com
Message:

making a branch for reworking the constants, rake tasks, server.rb, and mongrel.rb

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/constants_rewrite/app_generators/merb/templates/Rakefile

    r1023 r1069  
    22require 'rake/rdoctask' 
    33require 'rake/testtask' 
    4 require 'spec/rake/spectask' 
    54require 'fileutils' 
    65require '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__) 
    136include FileUtils 
    147 
    15 # Get Merb plugins and dependencies 
    16 require File.dirname(__FILE__)+'/config/dependencies.rb' 
    17 Merb::Plugins.rakefiles.each {|r| require r }  
     8MERB_ENV            = ENV['MERB_ENV'] if ENV['MERB_ENV'] 
     9MERB_ROOT           = File.dirname(__FILE__) 
     10merb_framework_root = ENV['MERB_FRAMEWORK_ROOT'] 
    1811 
    19 #desc "Packages up Merb." 
    20 #task :default => [:package] 
     12require File.dirname(__FILE__) + '/config/boot.rb' 
     13require MERB_FRAMEWORK_ROOT + '/tasks' 
    2114 
    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 
     16require MERB_ROOT + '/config/dependencies.rb' 
     17 
     18# Load plugin rakefiles 
     19Merb::Plugins.rakefiles.each {|r| require r } 
    2720 
    2821task :uninstall => [:clean] do 
    2922  sh %{sudo gem uninstall #{NAME}} 
    30 end 
    31  
    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 = true 
    37 end 
    38  
    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 = true 
    4423end 
    4524 
     
    5130end 
    5231 
    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 
     32namespace :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 
    5746end 
    5847 
    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 
     48begin 
     49  require 'spec/rake/spectask' 
    6450 
    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   
     98rescue LoadError 
     99  puts "RSpec not Installed" 
    97100end 
    98101 
     
    101104############################################################################## 
    102105 
    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" 
     106namespace :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 
    106111end 
  • branches/constants_rewrite/app_generators/merb/templates/config/boot.rb

    r861 r1069  
    1 frozen_framework_path = File.join(File.dirname(__FILE__), "..", "framework") 
     1frozen_framework_path ||= File.join(File.dirname(__FILE__), "..", "framework") 
    22 
    3 unless defined?(MERB_FRAMEWORK_ROOT
     3unless defined?(MERB_LOADED
    44  if File.directory?(frozen_framework_path) 
    55    $:.unshift frozen_framework_path 
  • branches/constants_rewrite/lib/merb.rb

    r1017 r1069  
    9292 
    9393MERB_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') 
    9595MERB_VIEW_ROOT = MERB_ROOT / "app/views" 
    9696MERB_SKELETON_DIR = File.join(MERB_FRAMEWORK_ROOT, '../app_generators/merb/templates') 
     
    115115  ] 
    116116 
     117MERB_LOADED = true 
     118 
    117119if $TESTING 
    118120  test_files = File.join(lib, 'test', '*.rb') 
  • branches/constants_rewrite/lib/merb/mixins/render.rb

    r1014 r1069  
    66     
    77    def self.included(base) 
    8       base.class_eval {         
     8      base.class_eval { 
    99        class_inheritable_accessor :_template_root, 
    1010                                   :_layout, 
     
    1717        self._cached_partials = {} 
    1818         
    19         attr_accessor :template         
     19        attr_accessor :template 
    2020      } 
    2121    end 
     
    132132    # 
    133133    def render(*args,&blk) 
    134       opts = Hash === args.last ? args.pop : {} 
     134      opts = (Hash === args.last) ? args.pop : {} 
    135135     
    136136      action = opts[:action] || params[:action] 
     
    299299 
    300300      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) 
    302302      else # Just render a partial 
    303303       engine = Template.engine_for(template) 
     
    316316 
    317317      def render_partial(template, engine, locals={}) 
    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) 
     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) 
    325325      end 
    326326 
    327327      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 
    341346      end 
    342347     
  • branches/constants_rewrite/lib/tasks/merb.rake

    r690 r1069  
    1 def install_merb_script 
    2   script_filepath = MERB_ROOT / 'script/merb' 
    3   FileUtils.rm script_filepath if File.exist? script_filepath 
    4   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 tmpl  
    7     f.chmod(0744) 
    8   } 
    9 end 
    101 
    11 namespace :merb do 
    12   desc "freeze the merb framework into merb for portability" 
    13   task :freeze do 
    14     FileUtils.rm_rf MERB_ROOT / 'framework' 
    15     FileUtils.cp_r MERB_FRAMEWORK_ROOT, (MERB_ROOT / 'framework') 
    16     install_merb_script 
    17      
    18     puts "  Freezing Merb Framework into framework" 
    19     puts "  Use script/merb to start instead of plain merb" 
    20   end 
    21   desc "unfreeze this app from the framework and use system gem." 
    22   task :unfreeze do 
    23     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   end 
    30    
    31   desc "freeze the merb framework from svn, use REVISION=# to freeze a specific revision" 
    32   task :freeze_from_svn do 
    33     install_path = MERB_ROOT / 'framework' 
    34     revision = ENV['REVISION'] || 'HEAD' 
    35     puts "  Removing old framework" if File.exist? install_path 
    36     FileUtils.rm_rf install_path 
    37  
    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_script 
    41      
    42     puts "  Use script/merb to start instead of plain merb" 
    43   end 
    44    
    45 end 
    46  
    47 desc "Setup the Merb Environment by requiring merb and loading your merb_init.rb"  
    48 task :merb_env do  
    49   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