<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>spec/lib/mailer_tags_spec.rb</filename>
    </added>
    <added>
      <filename>spec/scenarios/mailer_scenario.rb</filename>
    </added>
    <added>
      <filename>spec/spec.opts</filename>
    </added>
    <added>
      <filename>spec/spec_helper.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,15 +1,102 @@
+# I think this is the one that should be moved to the extension Rakefile template
+
+# In rails 1.2, plugins aren't available in the path until they're loaded.
+# Check to see if the rspec plugin is installed first and require
+# it if it is.  If not, use the gem version.
+
+# Determine where the RSpec plugin is by loading the boot
+unless defined? RADIANT_ROOT
+  ENV[&quot;RAILS_ENV&quot;] = &quot;test&quot;
+  case
+  when ENV[&quot;RADIANT_ENV_FILE&quot;]
+    require File.dirname(ENV[&quot;RADIANT_ENV_FILE&quot;]) + &quot;/boot&quot;
+  when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions}
+    require &quot;#{File.expand_path(File.dirname(__FILE__) + &quot;/../../../../../&quot;)}/config/boot&quot;
+  else
+    require &quot;#{File.expand_path(File.dirname(__FILE__) + &quot;/../../../&quot;)}/config/boot&quot;
+  end
+end
+
 require 'rake'
-require 'rake/testtask'
 require 'rake/rdoctask'
+require 'rake/testtask'
 
-desc 'Default: run unit tests.'
-task :default =&gt; :test
+rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib')
+$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base)
+require 'spec/rake/spectask'
+# require 'spec/translator'
 
-desc 'Test the mailer extension.'
-Rake::TestTask.new(:test) do |t|
-  t.libs &lt;&lt; 'lib'
-  t.pattern = 'test/**/*_test.rb'
-  t.verbose = true
+# Cleanup the RADIANT_ROOT constant so specs will load the environment
+Object.send(:remove_const, :RADIANT_ROOT)
+
+extension_root = File.expand_path(File.dirname(__FILE__))
+
+task :default =&gt; :spec
+task :stats =&gt; &quot;spec:statsetup&quot;
+
+desc &quot;Run all specs in spec directory&quot;
+Spec::Rake::SpecTask.new(:spec) do |t|
+  t.spec_opts = ['--options', &quot;\&quot;#{extension_root}/spec/spec.opts\&quot;&quot;]
+  t.spec_files = FileList['spec/**/*_spec.rb']
+end
+
+namespace :spec do
+  desc &quot;Run all specs in spec directory with RCov&quot;
+  Spec::Rake::SpecTask.new(:rcov) do |t|
+    t.spec_opts = ['--options', &quot;\&quot;#{extension_root}/spec/spec.opts\&quot;&quot;]
+    t.spec_files = FileList['spec/**/*_spec.rb']
+    t.rcov = true
+    t.rcov_opts = ['--exclude', 'spec', '--rails']
+  end
+  
+  desc &quot;Print Specdoc for all specs&quot;
+  Spec::Rake::SpecTask.new(:doc) do |t|
+    t.spec_opts = [&quot;--format&quot;, &quot;specdoc&quot;, &quot;--dry-run&quot;]
+    t.spec_files = FileList['spec/**/*_spec.rb']
+  end
+
+  [:models, :controllers, :views, :helpers].each do |sub|
+    desc &quot;Run the specs under spec/#{sub}&quot;
+    Spec::Rake::SpecTask.new(sub) do |t|
+      t.spec_opts = ['--options', &quot;\&quot;#{extension_root}/spec/spec.opts\&quot;&quot;]
+      t.spec_files = FileList[&quot;spec/#{sub}/**/*_spec.rb&quot;]
+    end
+  end
+  
+  # Hopefully no one has written their extensions in pre-0.9 style
+  # desc &quot;Translate specs from pre-0.9 to 0.9 style&quot;
+  # task :translate do
+  #   translator = ::Spec::Translator.new
+  #   dir = RAILS_ROOT + '/spec'
+  #   translator.translate(dir, dir)
+  # end
+
+  # Setup specs for stats
+  task :statsetup do
+    require 'code_statistics'
+    ::STATS_DIRECTORIES &lt;&lt; %w(Model\ specs spec/models)
+    ::STATS_DIRECTORIES &lt;&lt; %w(View\ specs spec/views)
+    ::STATS_DIRECTORIES &lt;&lt; %w(Controller\ specs spec/controllers)
+    ::STATS_DIRECTORIES &lt;&lt; %w(Helper\ specs spec/views)
+    ::CodeStatistics::TEST_TYPES &lt;&lt; &quot;Model specs&quot;
+    ::CodeStatistics::TEST_TYPES &lt;&lt; &quot;View specs&quot;
+    ::CodeStatistics::TEST_TYPES &lt;&lt; &quot;Controller specs&quot;
+    ::CodeStatistics::TEST_TYPES &lt;&lt; &quot;Helper specs&quot;
+    ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/}
+  end
+
+  namespace :db do
+    namespace :fixtures do
+      desc &quot;Load fixtures (from spec/fixtures) into the current environment's database.  Load specific fixtures using FIXTURES=x,y&quot;
+      task :load =&gt; :environment do
+        require 'active_record/fixtures'
+        ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym)
+        (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file|
+          Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*'))
+        end
+      end
+    end
+  end
 end
 
 desc 'Generate documentation for the mailer extension.'
@@ -21,5 +108,13 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
   rdoc.rdoc_files.include('lib/**/*.rb')
 end
 
+# For extensions that are in transition
+desc 'Test the mailer extension.'
+Rake::TestTask.new(:test) do |t|
+  t.libs &lt;&lt; 'lib'
+  t.pattern = 'test/**/*_test.rb'
+  t.verbose = true
+end
+
 # Load any custom rakefiles for extension
 Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f }
\ No newline at end of file</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -74,8 +74,8 @@ module MailerTags
   tag &quot;mailer:form&quot; do |tag|
     tag.attr['id'] ||= 'mailer'
     results = []
-    action = Radiant::Config['mailer.post_to_page?'] ? tag.locals.page.url : &quot;/pages/#{tag.locals.page.id}/mail#{tag.attr['id']}&quot;
-    results &lt;&lt; %(&lt;form action=&quot;#{action}&quot; method=&quot;post&quot; #{mailer_attrs(tag)}&quot;&gt;)
+    action = Radiant::Config['mailer.post_to_page?'] ? tag.locals.page.url : &quot;/pages/#{tag.locals.page.id}/mail##{tag.attr['id']}&quot;
+    results &lt;&lt; %(&lt;form action=&quot;#{action}&quot; method=&quot;post&quot; #{mailer_attrs(tag)}&gt;)
     results &lt;&lt;   tag.expand
     results &lt;&lt; %(&lt;/form&gt;)
   end
@@ -135,8 +135,9 @@ module MailerTags
     @&lt;r:mailer:select&gt;...&lt;/r:mailer:select&gt;@ tag, an @&lt;input type=&quot;radio&quot;/&gt;@ tag if
     the parent is a @&lt;r:mailer:radiogroup&gt;...&lt;/r:mailer:radiogroup&gt;@ }
   tag 'mailer:option' do |tag|
-    tag.attr['name'] = tag.locals.parent_tag_name
-
+    if tag.locals.parent_tag_type == 'radiogroup'
+      tag.attr['name'] ||= tag.locals.parent_tag_name
+    end
     value = (tag.attr['value'] || tag.expand)
     prev_value = prior_value(tag, tag.locals.parent_tag_name)
     checked = tag.attr.delete('selected') || tag.attr.delete('checked')</diff>
      <filename>lib/mailer_tags.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4283ca6d2c5c19a64d2708133348caf9be9629db</id>
    </parent>
  </parents>
  <author>
    <name>Sean Cribbs</name>
    <email>seancribbs@gmail.com</email>
  </author>
  <url>http://github.com/radiant/radiant-mailer-extension/commit/a84985dae40276e8343e89139dfe34df4f52f6a9</url>
  <id>a84985dae40276e8343e89139dfe34df4f52f6a9</id>
  <committed-date>2008-10-03T07:07:22-07:00</committed-date>
  <authored-date>2008-10-03T07:07:22-07:00</authored-date>
  <message>Add specs for tags.</message>
  <tree>eb0b685c74674c4f153992c047f58c8a4fbf28da</tree>
  <committer>
    <name>Sean Cribbs</name>
    <email>seancribbs@gmail.com</email>
  </committer>
</commit>
