radiant 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of radiant might be problematic. Click here for more details.

@@ -1,5 +1,15 @@
1
1
  # Change Log
2
2
 
3
+ ## 1.1.4
4
+
5
+ * Remove autotest support [Jim Gay]
6
+ * Bump to Rails 2.3.18 [Jim Gay]
7
+ * Update versions for several extensions in the generated Gemfile [Benny Degezelle]
8
+ * Move snippet configuration into snippets extension [Benny Degezelle]
9
+ * Get default gravatar image locally when fire walled [Andrew Vonderluft, Benny Degezelle]
10
+ * Fix migration problems concerning allowed_children_cache [Andrew Vonderluft]
11
+ * Prevent spec errors on generated extensions [Andrew Vonderluft]
12
+
3
13
  ## 1.1.3
4
14
 
5
15
  * Move to Rails 2.3.17 [Jim Gay]
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source :rubygems
1
+
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # This is the minimum of dependency required to run
4
6
  # the radiant instance generator, which is (normally)
@@ -7,7 +9,7 @@ source :rubygems
7
9
  # requires radiant and therefore pulls in every
8
10
  # dependency mentioned in radiant.gemspec.
9
11
 
10
- gem "rails", "2.3.17"
12
+ gem "rails", "2.3.18"
11
13
  gem "sqlite3", "1.3.5", :group => [:development, :test], :platform => :ruby
12
14
 
13
15
  # When radiant is installed as a gem you can run all of
@@ -1,25 +1,25 @@
1
1
  GEM
2
- remote: http://rubygems.org/
2
+ remote: https://rubygems.org/
3
3
  specs:
4
- actionmailer (2.3.17)
5
- actionpack (= 2.3.17)
6
- actionpack (2.3.17)
7
- activesupport (= 2.3.17)
4
+ actionmailer (2.3.18)
5
+ actionpack (= 2.3.18)
6
+ actionpack (2.3.18)
7
+ activesupport (= 2.3.18)
8
8
  rack (~> 1.1.0)
9
- activerecord (2.3.17)
10
- activesupport (= 2.3.17)
11
- activeresource (2.3.17)
12
- activesupport (= 2.3.17)
13
- activesupport (2.3.17)
9
+ activerecord (2.3.18)
10
+ activesupport (= 2.3.18)
11
+ activeresource (2.3.18)
12
+ activesupport (= 2.3.18)
13
+ activesupport (2.3.18)
14
14
  rack (1.1.6)
15
- rails (2.3.17)
16
- actionmailer (= 2.3.17)
17
- actionpack (= 2.3.17)
18
- activerecord (= 2.3.17)
19
- activeresource (= 2.3.17)
20
- activesupport (= 2.3.17)
15
+ rails (2.3.18)
16
+ actionmailer (= 2.3.18)
17
+ actionpack (= 2.3.18)
18
+ activerecord (= 2.3.18)
19
+ activeresource (= 2.3.18)
20
+ activesupport (= 2.3.18)
21
21
  rake (>= 0.8.3)
22
- rake (10.0.3)
22
+ rake (10.1.0)
23
23
  sqlite3 (1.3.5)
24
24
 
25
25
  PLATFORMS
@@ -27,5 +27,5 @@ PLATFORMS
27
27
  ruby
28
28
 
29
29
  DEPENDENCIES
30
- rails (= 2.3.17)
30
+ rails (= 2.3.18)
31
31
  sqlite3 (= 1.3.5)
data/README.md CHANGED
@@ -4,8 +4,7 @@ Radiant is a no-fluff, open source content management system designed for
4
4
  small teams. It is similar to Textpattern or MovableType, but is a general
5
5
  purpose content management system (not just a blogging engine).
6
6
 
7
- [![Build Status](https://secure.travis-ci.org/radiant/radiant.png?branch=master)](http://travis-ci.org/radiant/radiant)
8
- [![Dependency Status](https://gemnasium.com/radiant/radiant.png)](https://gemnasium.com/radiant/radiant)
7
+ [![Build Status](https://secure.travis-ci.org/radiant/radiant.png?branch=1.x)](http://travis-ci.org/radiant/radiant)
9
8
 
10
9
  Radiant features:
11
10
 
@@ -180,25 +180,31 @@ module ApplicationHelper
180
180
  def gravatar_url(email, options={})
181
181
  # Default to highest rating. Rating can be one of G, PG, R X.
182
182
  options[:rating] ||= "G"
183
-
183
+
184
184
  # Default size of the image.
185
185
  options[:size] ||= "32px"
186
-
186
+
187
187
  # Default image url to be used when no gravatar is found
188
188
  # or when an image exceeds the rating parameter.
189
- default_avatar_url = "#{request.protocol}#{request.host_with_port}#{ActionController::Base.relative_url_root}/images/admin/avatar_#{([options[:size].to_i] * 2).join('x')}.png"
189
+ local_avatar_url = "/images/admin/avatar_#{([options[:size].to_i] * 2).join('x')}.png"
190
+ default_avatar_url = "#{request.protocol}#{request.host_with_port}#{ActionController::Base.relative_url_root}#{local_avatar_url}"
190
191
  options[:default] ||= default_avatar_url
191
-
192
+
192
193
  unless email.blank?
193
- # Build the Gravatar url.
194
- url = '//gravatar.com/avatar/'
194
+ # Build the Gravatar url.
195
+ url = '//gravatar.com/avatar/'
195
196
  url << "#{Digest::MD5.new.update(email)}?"
196
197
  url << "rating=#{options[:rating]}" if options[:rating]
197
198
  url << "&size=#{options[:size]}" if options[:size]
198
199
  url << "&default=#{options[:default]}" if options[:default]
199
- url
200
+ # Test the Gravatar url
201
+ require 'open-uri'
202
+ begin; open "http:#{url}", :proxy => true
203
+ rescue; local_avatar_url
204
+ else; url
205
+ end
200
206
  else
201
- default_avatar_url
207
+ local_avatar_url
202
208
  end
203
209
  end
204
210
 
@@ -731,17 +731,25 @@ module StandardTags
731
731
  name = (tag.attr['name'] || page.created_by.name)
732
732
  rating = (tag.attr['rating'] || 'G')
733
733
  size = (tag.attr['size'] || '32px')
734
- email = User.find_by_name(name).email
735
- default = "#{request.protocol}#{request.host_with_port}/images/admin/avatar_#{([size.to_i] * 2).join('x')}.png"
734
+ user = User.find_by_name(name)
735
+ email = user ? user.email : nil
736
+ local_avatar_url = "/images/admin/avatar_#{([size.to_i] * 2).join('x')}.png"
737
+ default_avatar_url = "#{request.protocol}#{request.host_with_port}#{local_avatar_url}"
738
+
736
739
  unless email.blank?
737
740
  url = '//gravatar.com/avatar/'
738
741
  url << "#{Digest::MD5.new.update(email)}?"
739
742
  url << "rating=#{rating}"
740
743
  url << "&size=#{size.to_i}"
741
- url << "&default=#{default}"
742
- url
744
+ url << "&default=#{default_avatar_url}" unless request.host_with_port == 'testhost.tld'
745
+ # Test the Gravatar url
746
+ require 'open-uri'
747
+ begin; open "http:#{url}", :proxy => true
748
+ rescue; local_avatar_url
749
+ else; url
750
+ end
743
751
  else
744
- default
752
+ local_avatar_url
745
753
  end
746
754
  end
747
755
 
@@ -7,6 +7,8 @@ case $DB in
7
7
  "postgres" )
8
8
  psql -c 'create database radiant_test;' -U postgres
9
9
  cp spec/ci/database.postgresql.yml config/database.yml;;
10
+ "sqlite" )
11
+ cp spec/ci/database.sqlite.yml config/database.yml;;
10
12
  esac
11
13
 
12
14
  bundle exec rake db:migrate
@@ -1,7 +1,7 @@
1
1
  <%
2
2
  rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
3
  rerun_opts = rerun.to_s.strip.empty? ? "--format progress features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
- std_opts = "#{rerun_opts} --format rerun --out rerun.txt --strict --require features --tags ~@wip"
4
+ std_opts = "#{rerun_opts} -b --format rerun --out rerun.txt --strict --require features --tags ~@wip"
5
5
  %>
6
6
  default: <%= std_opts %>
7
7
  wip: --tags @wip:3 --wip features
@@ -7,7 +7,6 @@ Radiant.config do |config|
7
7
  config.define 'defaults.page.status', :select_from => lambda { Status.selectable_values }, :allow_blank => false, :default => "Draft"
8
8
  config.define 'defaults.page.filter', :select_from => lambda { TextFilter.descendants.map { |s| s.filter_name }.sort }, :allow_blank => true
9
9
  config.define 'defaults.page.fields'
10
- config.define 'defaults.snippet.filter', :select_from => lambda { TextFilter.descendants.map { |s| s.filter_name }.sort }, :allow_blank => true
11
10
  config.define 'pagination.param_name', :default => 'page'
12
11
  config.define 'pagination.per_page_param_name', :default => 'per_page'
13
12
  config.define 'admin.pagination.per_page', :type => :integer, :default => 50
@@ -1,11 +1,15 @@
1
1
  class ConvertPageMetas < ActiveRecord::Migration
2
2
  def self.up
3
+ # following add and remove column enables running this migration
4
+ # when upgrading radiant with allowed_children_cache added to Page model
5
+ add_column :pages, :allowed_children_cache, :text
3
6
  Page.all.each do |page|
4
7
  page.fields.create(:name => 'Keywords', :content => page.keywords)
5
8
  page.fields.create(:name => 'Description', :content => page.description)
6
9
  end
7
10
  remove_column :pages, :keywords
8
11
  remove_column :pages, :description
12
+ remove_column :pages, :allowed_children_cache
9
13
  end
10
14
 
11
15
  def self.down
@@ -1,6 +1,6 @@
1
1
  class AddAllowedChildrenCacheToPages < ActiveRecord::Migration
2
2
  def self.up
3
- add_column :pages, :allowed_children_cache, :text, :default => ''
3
+ add_column :pages, :allowed_children_cache, :text
4
4
  Page.reset_column_information
5
5
  Page.find_each do |page|
6
6
  page.save # update the allowed_children_cache
@@ -1,6 +1,8 @@
1
1
  class ChangePagesAllowedChildrenCacheToText < ActiveRecord::Migration
2
2
  def self.up
3
- change_column :pages, :allowed_children_cache, :text
3
+ unless Page.columns_hash['allowed_children_cache'].type == :text
4
+ change_column :pages, :allowed_children_cache, :text
5
+ end
4
6
  end
5
7
 
6
8
  def self.down
@@ -12,6 +12,12 @@ end
12
12
  require "#{RADIANT_ROOT}/spec/spec_helper"
13
13
 
14
14
  Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets")
15
+ # Include any datasets from loaded extensions
16
+ Radiant::Extension.descendants.each do |extension|
17
+ if File.directory?(extension.root + "/spec/datasets")
18
+ Dataset::Resolver.default << (extension.root + "/spec/datasets")
19
+ end
20
+ end
15
21
 
16
22
  if File.directory?(File.dirname(__FILE__) + "/matchers")
17
23
  Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file }
@@ -1,4 +1,4 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # If you make any changes in this file, please run `bundle install`.
4
4
  # If new versions of your installed gems are available, run `bundle update`
@@ -41,17 +41,17 @@ gem "radiant-clipped-extension", "~> 1.1.0"
41
41
  gem "radiant-debug-extension", "~> 1.0.2"
42
42
  gem "radiant-exporter-extension", "~> 1.1.0"
43
43
  gem "radiant-markdown_filter-extension", "~> 1.0.2"
44
- gem "radiant-sheets-extension", "~> 1.1.0.alpha"
45
- gem "radiant-snippets-extension", "~> 1.1.0.alpha"
46
- gem "radiant-site_templates-extension", "~> 1.0.4"
44
+ gem "radiant-sheets-extension", "~> 1.1.0"
45
+ gem "radiant-snippets-extension", "~> 1.1.2"
46
+ gem "radiant-site_templates-extension", "~> 1.0.6"
47
47
  gem "radiant-smarty_pants_filter-extension", "~> 1.0.2"
48
48
  gem "radiant-textile_filter-extension", "~> 1.0.4"
49
49
 
50
50
 
51
51
  # Language packs
52
- # gem "radiant-dutch_language_pack-extension", "~> 1.0.0"
52
+ # gem "radiant-dutch_language_pack-extension", "~> 1.0.1"
53
53
  # gem "radiant-french_language_pack-extension", "~> 1.0.0"
54
- # gem "radiant-german_language_pack-extension", "~> 1.0.0"
54
+ # gem "radiant-german_language_pack-extension", "~> 1.0.1"
55
55
  # gem "radiant-italian_language_pack-extension", "~> 1.0.0"
56
56
  # gem "radiant-japanese_language_pack-extension", "~> 1.0.0"
57
57
  # gem "radiant-russian_language_pack-extension", "~> 1.0.0"
@@ -77,5 +77,5 @@ gem "radiant-textile_filter-extension", "~> 1.0.4"
77
77
  # gem "webrat", "~> 0.7.3"
78
78
  # gem "rspec-rails", "~> 1.3.3"
79
79
  # gem "sqlite3", "~> 1.3.4"
80
- # gem "ZenTest", "4.6.0"
80
+ # gem "ZenTest", "4.6.2"
81
81
  # end
@@ -5,7 +5,7 @@ unless defined? Radiant::Version
5
5
  module Version
6
6
  Major = '1'
7
7
  Minor = '1'
8
- Tiny = '3'
8
+ Tiny = '4'
9
9
  Patch = nil # set to nil for normal release
10
10
 
11
11
  class << self
@@ -67,7 +67,7 @@ module Radiant
67
67
  env = ENV["RAILS_ENV"] || RAILS_ENV
68
68
  paths = [Rails.root + 'vendor/extensions']
69
69
  paths.unshift(Radiant.root + "vendor/extensions") unless Rails.root == Radiant.root
70
- paths.unshift(Radiant.root + "test/fixtures/extensions") if env == "test"
70
+ paths.unshift(Radiant.root + "test/fixtures/extensions") if env =~ /test|cucumber/
71
71
  paths
72
72
  end
73
73
 
@@ -25,7 +25,7 @@ a general purpose content managment system--not merely a blogging engine.}
25
25
  s.license = %q{MIT}
26
26
 
27
27
  s.add_dependency "tzinfo", "~> 0.3.31"
28
- s.add_dependency "rails", "~> 2.3.17"
28
+ s.add_dependency "rails", "~> 2.3.18"
29
29
  s.add_dependency "rdoc", ">= 3.9.2"
30
30
  s.add_dependency "acts_as_tree", "~> 0.1.1"
31
31
  s.add_dependency "bundler", ">= 1.0.0"
@@ -45,8 +45,8 @@ a general purpose content managment system--not merely a blogging engine.}
45
45
  s.add_development_dependency "cucumber-rails", "~> 0.3.2"
46
46
  s.add_development_dependency "database_cleaner", "~> 0.6.5"
47
47
  s.add_development_dependency "webrat", "~> 0.7.3"
48
+ s.add_development_dependency "nokogiri", "~> 1.5.10"
48
49
  s.add_development_dependency "rspec", "~> 1.3.1"
49
50
  s.add_development_dependency "rspec-rails", "~> 1.3.3"
50
51
  s.add_development_dependency "test-unit", "1.2.3"
51
- s.add_development_dependency "ZenTest", "4.6.2"
52
52
  end
@@ -9,63 +9,63 @@ shared_examples_for "all instance generators" do
9
9
  ''.should have_generated_directory(dir)
10
10
  end
11
11
  end
12
-
12
+
13
13
  # Check for files
14
14
  %w(CHANGELOG.md CONTRIBUTORS.md LICENSE.md INSTALL.md README.md Rakefile).each do |file|
15
15
  it "should have a #{file}" do
16
16
  ''.should have_generated_file(file)
17
17
  end
18
18
  end
19
-
19
+
20
20
  # Check for configs
21
21
  %w(boot.rb routes.rb environments/production.rb environments/development.rb environments/test.rb).each do |file|
22
22
  it "should have a #{file} config file" do
23
23
  'config'.should have_generated_file(file)
24
24
  end
25
25
  end
26
-
26
+
27
27
  # Check for public files
28
28
  %w(.htaccess robots.txt 404.html 500.html favicon.ico dispatch.cgi dispatch.fcgi dispatch.rb).each do |file|
29
29
  it "should have a #{file} in public/" do
30
30
  'public'.should have_generated_file(file)
31
31
  end
32
32
  end
33
-
33
+
34
34
  # Check for scripts
35
- %w(about breakpointer cucumber extension runner spec version autospec console dbconsole generate server
36
- spec_server performance/benchmarker performance/profiler performance/request process/inspector
35
+ %w(about breakpointer cucumber extension runner spec version console dbconsole generate server
36
+ spec_server performance/benchmarker performance/profiler performance/request process/inspector
37
37
  process/reaper process/spawner process/spinner).each do |file|
38
38
  it "should have a #{file} script" do
39
39
  'script'.should have_generated_file(file)
40
40
  end
41
41
  end
42
-
42
+
43
43
  # Check for admin sass
44
- %w(modules/_links.sass
45
- partials/_avatars.sass partials/_footer.sass partials/_layout.sass main.sass
46
- _base.sass partials/_forms.sass partials/_messages.sass partials/_content.sass
47
- partials/_header.sass partials/_popup.sass partials/_tabcontrol.sass partials/_dateinput.sass
44
+ %w(modules/_links.sass
45
+ partials/_avatars.sass partials/_footer.sass partials/_layout.sass main.sass
46
+ _base.sass partials/_forms.sass partials/_messages.sass partials/_content.sass
47
+ partials/_header.sass partials/_popup.sass partials/_tabcontrol.sass partials/_dateinput.sass
48
48
  partials/_toolbar.sass).each do |file|
49
- it "should have a #{file} sass file" do
49
+ it "should have a #{file} sass file" do
50
50
  'public/stylesheets/sass/admin'.should have_generated_file(file)
51
51
  end
52
52
  end
53
-
53
+
54
54
  # Check for admin images
55
55
  %w(navigation_secondary_separator.gif add_tab.png minus_disabled.png
56
56
  snippet.png brown_bottom_line.gif single_form_shadow.png
57
- spinner.gif collapse.png
58
- status_background.png draft_page.png status_bottom_left.png expand.png page.png
59
- status_bottom_right.png layout.png plus.png status_spinner.gif plus_grey.png
60
- status_top_left.png metadata_toggle.png popup_border_background.png status_top_right.png minus.png
61
- popup_border_bottom_left.png tab_close.png minus_grey.png popup_border_bottom_right.png
62
- popup_border_top_left.png
57
+ spinner.gif collapse.png
58
+ status_background.png draft_page.png status_bottom_left.png expand.png page.png
59
+ status_bottom_right.png layout.png plus.png status_spinner.gif plus_grey.png
60
+ status_top_left.png metadata_toggle.png popup_border_background.png status_top_right.png minus.png
61
+ popup_border_bottom_left.png tab_close.png minus_grey.png popup_border_bottom_right.png
62
+ popup_border_top_left.png
63
63
  popup_border_top_right.png virtual_page.png).each do |file|
64
64
  it "should have a #{file} admin image" do
65
65
  'public/images/admin'.should have_generated_file(file)
66
66
  end
67
67
  end
68
-
68
+
69
69
  # Check for admin javascripts
70
70
  %w(application.js controls.js dragdrop.js lowpro.js popup.js pagefield.js ruledtable.js sitemap.js
71
71
  tabcontrol.js codearea.js cookie.js effects.js prototype.js shortcuts.js status.js utility.js).each do |file|
@@ -75,7 +75,7 @@ shared_examples_for "all instance generators" do
75
75
  end
76
76
 
77
77
  # Check for initializers
78
- # initializers are now run from RADIANT_ROOT before the instance,
78
+ # initializers are now run from RADIANT_ROOT before the instance,
79
79
  # so most of those are should no longer be copied across
80
80
  %w(radiant_config.rb).each do |file|
81
81
  it "should have a #{file} initializer" do
@@ -86,15 +86,15 @@ shared_examples_for "all instance generators" do
86
86
  it "should not have a #{file} initializer" do
87
87
  'config/initializers'.should_not have_generated_file(file)
88
88
  end
89
- end
90
-
89
+ end
90
+
91
91
  end
92
92
 
93
93
  describe "IntanceGenerator" do
94
94
  include FileUtils
95
95
  include GeneratorSpecHelperMethods
96
96
  Rails::Generator::Base.prepend_sources(Rails::Generator::PathSource.new(:radiant, File.join(BASE_ROOT, 'lib', 'generators')))
97
-
97
+
98
98
  describe('with no options') do
99
99
  it_should_behave_like "all instance generators"
100
100
 
@@ -105,13 +105,13 @@ describe "IntanceGenerator" do
105
105
  after(:all) do
106
106
  FileUtils.rm_rf Dir["#{RADIANT_ROOT}"]
107
107
  end
108
-
108
+
109
109
  it "should have run bundle install" do
110
110
  @generator_output.should =~ /Fetching (source index for|gem metadata from)/
111
111
  end
112
112
  end
113
113
 
114
- { 'db2'=>'ibm_db', 'mysql'=>'mysql', 'postgresql'=>'postgresql',
114
+ { 'db2'=>'ibm_db', 'mysql'=>'mysql', 'postgresql'=>'postgresql',
115
115
  'sqlite3'=>'sqlite3', 'sqlserver'=>'sqlserver' }.each do |db, adapter|
116
116
  describe("with #{db} database option") do
117
117
  it_should_behave_like "all instance generators"
@@ -125,13 +125,13 @@ describe "IntanceGenerator" do
125
125
  %w(production development test).each {|env| yaml[env]['adapter'].should == adapter}
126
126
  end
127
127
  end
128
-
128
+
129
129
  after(:all) do
130
130
  FileUtils.rm_rf Dir["#{RADIANT_ROOT}"]
131
131
  end
132
132
  end
133
133
  end
134
-
134
+
135
135
  describe('with shebang option') do
136
136
  it_should_behave_like "all instance generators"
137
137
 
@@ -141,7 +141,7 @@ describe "IntanceGenerator" do
141
141
  @files = Dir.glob("#{RADIANT_ROOT}/script/**/*") + Dir.glob("#{RADIANT_ROOT}/public/dispatch*")
142
142
  @files.collect! {|i| [i, i.gsub(/\A#{Regexp.escape(RADIANT_ROOT)}\//, '')] }
143
143
  end
144
-
144
+
145
145
  it 'should set shebang for scripts & dispatchers' do
146
146
  @files.each do |fn, f|
147
147
  next if File.directory?(fn)
@@ -150,7 +150,7 @@ describe "IntanceGenerator" do
150
150
  end
151
151
  end
152
152
  end
153
-
153
+
154
154
  after(:all) do
155
155
  FileUtils.rm_rf Dir["#{RADIANT_ROOT}"]
156
156
  end
@@ -580,23 +580,23 @@ describe "Standard Tags" do
580
580
 
581
581
  describe "<r:gravatar>" do
582
582
  it "should render the Gravatar URL of author of the current page" do
583
- page.should render('<r:gravatar />').as('//gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?rating=G&size=32&default=http://testhost.tld/images/admin/avatar_32x32.png')
583
+ page.should render('<r:gravatar />').as('//gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?rating=G&size=32')
584
584
  end
585
585
 
586
586
  it "should render the Gravatar URL of the name user" do
587
- page.should render('<r:gravatar name="Admin" />').as('//gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?rating=G&size=32&default=http://testhost.tld/images/admin/avatar_32x32.png')
587
+ page.should render('<r:gravatar name="Admin" />').as('//gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?rating=G&size=32')
588
588
  end
589
589
 
590
590
  it "should render the default avatar when the user has not set an email address" do
591
- page.should render('<r:gravatar name="Designer" />').as('http://testhost.tld/images/admin/avatar_32x32.png')
591
+ page.should render('<r:gravatar name="Designer" />').as('/images/admin/avatar_32x32.png')
592
592
  end
593
593
 
594
594
  it "should render the specified size" do
595
- page.should render('<r:gravatar name="Designer" size="96px" />').as('http://testhost.tld/images/admin/avatar_96x96.png')
595
+ page.should render('<r:gravatar name="Designer" size="96px" />').as('/images/admin/avatar_96x96.png')
596
596
  end
597
597
 
598
598
  it "should render the specified rating" do
599
- page.should render('<r:gravatar rating="X" />').as('//gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?rating=X&size=32&default=http://testhost.tld/images/admin/avatar_32x32.png')
599
+ page.should render('<r:gravatar rating="X" />').as('//gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?rating=X&size=32')
600
600
  end
601
601
  end
602
602
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radiant
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-11 00:00:00.000000000 Z
12
+ date: 2013-09-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: tzinfo
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 2.3.17
37
+ version: 2.3.18
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,13 +42,13 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 2.3.17
45
+ version: 2.3.18
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rdoc
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - ! '>='
51
+ - - '>='
52
52
  - !ruby/object:Gem::Version
53
53
  version: 3.9.2
54
54
  type: :runtime
@@ -56,7 +56,7 @@ dependencies:
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - ! '>='
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 3.9.2
62
62
  - !ruby/object:Gem::Dependency
@@ -80,7 +80,7 @@ dependencies:
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
- - - ! '>='
83
+ - - '>='
84
84
  - !ruby/object:Gem::Version
85
85
  version: 1.0.0
86
86
  type: :runtime
@@ -88,7 +88,7 @@ dependencies:
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
- - - ! '>='
91
+ - - '>='
92
92
  - !ruby/object:Gem::Version
93
93
  version: 1.0.0
94
94
  - !ruby/object:Gem::Dependency
@@ -208,7 +208,7 @@ dependencies:
208
208
  requirement: !ruby/object:Gem::Requirement
209
209
  none: false
210
210
  requirements:
211
- - - ! '>='
211
+ - - '>='
212
212
  - !ruby/object:Gem::Version
213
213
  version: 0.8.7
214
214
  type: :runtime
@@ -216,7 +216,7 @@ dependencies:
216
216
  version_requirements: !ruby/object:Gem::Requirement
217
217
  none: false
218
218
  requirements:
219
- - - ! '>='
219
+ - - '>='
220
220
  - !ruby/object:Gem::Version
221
221
  version: 0.8.7
222
222
  - !ruby/object:Gem::Dependency
@@ -332,13 +332,13 @@ dependencies:
332
332
  - !ruby/object:Gem::Version
333
333
  version: 0.7.3
334
334
  - !ruby/object:Gem::Dependency
335
- name: rspec
335
+ name: nokogiri
336
336
  requirement: !ruby/object:Gem::Requirement
337
337
  none: false
338
338
  requirements:
339
339
  - - ~>
340
340
  - !ruby/object:Gem::Version
341
- version: 1.3.1
341
+ version: 1.5.10
342
342
  type: :development
343
343
  prerelease: false
344
344
  version_requirements: !ruby/object:Gem::Requirement
@@ -346,15 +346,15 @@ dependencies:
346
346
  requirements:
347
347
  - - ~>
348
348
  - !ruby/object:Gem::Version
349
- version: 1.3.1
349
+ version: 1.5.10
350
350
  - !ruby/object:Gem::Dependency
351
- name: rspec-rails
351
+ name: rspec
352
352
  requirement: !ruby/object:Gem::Requirement
353
353
  none: false
354
354
  requirements:
355
355
  - - ~>
356
356
  - !ruby/object:Gem::Version
357
- version: 1.3.3
357
+ version: 1.3.1
358
358
  type: :development
359
359
  prerelease: false
360
360
  version_requirements: !ruby/object:Gem::Requirement
@@ -362,31 +362,31 @@ dependencies:
362
362
  requirements:
363
363
  - - ~>
364
364
  - !ruby/object:Gem::Version
365
- version: 1.3.3
365
+ version: 1.3.1
366
366
  - !ruby/object:Gem::Dependency
367
- name: test-unit
367
+ name: rspec-rails
368
368
  requirement: !ruby/object:Gem::Requirement
369
369
  none: false
370
370
  requirements:
371
- - - '='
371
+ - - ~>
372
372
  - !ruby/object:Gem::Version
373
- version: 1.2.3
373
+ version: 1.3.3
374
374
  type: :development
375
375
  prerelease: false
376
376
  version_requirements: !ruby/object:Gem::Requirement
377
377
  none: false
378
378
  requirements:
379
- - - '='
379
+ - - ~>
380
380
  - !ruby/object:Gem::Version
381
- version: 1.2.3
381
+ version: 1.3.3
382
382
  - !ruby/object:Gem::Dependency
383
- name: ZenTest
383
+ name: test-unit
384
384
  requirement: !ruby/object:Gem::Requirement
385
385
  none: false
386
386
  requirements:
387
387
  - - '='
388
388
  - !ruby/object:Gem::Version
389
- version: 4.6.2
389
+ version: 1.2.3
390
390
  type: :development
391
391
  prerelease: false
392
392
  version_requirements: !ruby/object:Gem::Requirement
@@ -394,13 +394,11 @@ dependencies:
394
394
  requirements:
395
395
  - - '='
396
396
  - !ruby/object:Gem::Version
397
- version: 4.6.2
398
- description: ! 'Radiant is a simple and powerful publishing system designed for small
399
- teams.
400
-
397
+ version: 1.2.3
398
+ description: |-
399
+ Radiant is a simple and powerful publishing system designed for small teams.
401
400
  It is built with Rails and is similar to Textpattern or MovableType, but is
402
-
403
- a general purpose content managment system--not merely a blogging engine.'
401
+ a general purpose content managment system--not merely a blogging engine.
404
402
  email: radiant@radiantcms.org
405
403
  executables:
406
404
  - radiant
@@ -570,8 +568,6 @@ files:
570
568
  - GemfileRails3
571
569
  - INSTALL.md
572
570
  - lib/annotatable.rb
573
- - lib/autotest/discover.rb
574
- - lib/autotest/radiant_rails_rspec.rb
575
571
  - lib/generators/extension/extension_generator.rb
576
572
  - lib/generators/extension/templates/cucumber.yml
577
573
  - lib/generators/extension/templates/cucumber_env.rb
@@ -772,9 +768,6 @@ files:
772
768
  - public/javascripts/admin/validationerror.js
773
769
  - public/loading-iframe.html
774
770
  - public/robots.txt
775
- - public/stylesheets/admin/assets.css
776
- - public/stylesheets/admin/main.css
777
- - public/stylesheets/admin/overrides.css
778
771
  - public/stylesheets/sass/admin/_base.sass
779
772
  - public/stylesheets/sass/admin/main.sass
780
773
  - public/stylesheets/sass/admin/modules/_boxes.sass
@@ -803,7 +796,6 @@ files:
803
796
  - Rakefile
804
797
  - README.md
805
798
  - script/about
806
- - script/autospec
807
799
  - script/breakpointer
808
800
  - script/console
809
801
  - script/cucumber
@@ -913,7 +905,6 @@ files:
913
905
  - spec/helpers/application_helper_spec.rb
914
906
  - spec/helpers/site_helper_spec.rb
915
907
  - spec/lib/annotatable_spec.rb
916
- - spec/lib/autotest_spec.rb
917
908
  - spec/lib/core_ext/string_ext_spec.rb
918
909
  - spec/lib/inheritable_class_attributes_spec.rb
919
910
  - spec/lib/login_system_spec.rb
@@ -936,7 +927,6 @@ files:
936
927
  - spec/lib/simpleton_spec.rb
937
928
  - spec/lib/task_support_spec.rb
938
929
  - spec/lib/translation_support_spec.rb
939
- - spec/matchers/autotest_matchers.rb
940
930
  - spec/matchers/generator_matchers.rb
941
931
  - spec/matchers/login_system_matcher.rb
942
932
  - spec/matchers/render_form_errors_matcher.rb
@@ -1010,91 +1000,6 @@ files:
1010
1000
  - test/helpers/user_test_helper.rb
1011
1001
  - test/helpers/validation_test_helper.rb
1012
1002
  - test/test_helper.rb
1013
- - tmp/cache_files_test/a.txt
1014
- - tmp/cache_files_test/all.txt
1015
- - tmp/cache_files_test/b.txt
1016
- - tmp/config/radiant_config.yml
1017
- - tmp/sass-cache/0b2c41dd475d0b959138b0510f2bf1d22b0abcb0/_hover-link.scssc
1018
- - tmp/sass-cache/0b2c41dd475d0b959138b0510f2bf1d22b0abcb0/_link-colors.scssc
1019
- - tmp/sass-cache/0b2c41dd475d0b959138b0510f2bf1d22b0abcb0/_unstyled-link.scssc
1020
- - tmp/sass-cache/254839e93900d503c222f940ac5a2fb100a8c64c/_ellipsis.scssc
1021
- - tmp/sass-cache/254839e93900d503c222f940ac5a2fb100a8c64c/_force-wrap.scssc
1022
- - tmp/sass-cache/254839e93900d503c222f940ac5a2fb100a8c64c/_nowrap.scssc
1023
- - tmp/sass-cache/254839e93900d503c222f940ac5a2fb100a8c64c/_replacement.scssc
1024
- - tmp/sass-cache/26c8abc39e42e1257ad9e93ddc62df6cd6da27f3/_links.scssc
1025
- - tmp/sass-cache/26c8abc39e42e1257ad9e93ddc62df6cd6da27f3/_lists.scssc
1026
- - tmp/sass-cache/26c8abc39e42e1257ad9e93ddc62df6cd6da27f3/_text.scssc
1027
- - tmp/sass-cache/26c8abc39e42e1257ad9e93ddc62df6cd6da27f3/_vertical_rhythm.scssc
1028
- - tmp/sass-cache/39f7397f9c437bc5a7941343d972dc34e92dbf1e/_css3.scssc
1029
- - tmp/sass-cache/39f7397f9c437bc5a7941343d972dc34e92dbf1e/_support.scssc
1030
- - tmp/sass-cache/39f7397f9c437bc5a7941343d972dc34e92dbf1e/_typography.scssc
1031
- - tmp/sass-cache/39f7397f9c437bc5a7941343d972dc34e92dbf1e/_utilities.scssc
1032
- - tmp/sass-cache/5879649cd0b175860e6dac9eeefbad1e556b1132/_utilities.scssc
1033
- - tmp/sass-cache/5c04132c0a986f20481acadf71a9af37b84e481e/_alternating-rows-and-columns.scssc
1034
- - tmp/sass-cache/5c04132c0a986f20481acadf71a9af37b84e481e/_borders.scssc
1035
- - tmp/sass-cache/5c04132c0a986f20481acadf71a9af37b84e481e/_scaffolding.scssc
1036
- - tmp/sass-cache/92c1d5bcd1ce65635f62ba3d3a8ffd07845a58bf/_boxes.sassc
1037
- - tmp/sass-cache/92c1d5bcd1ce65635f62ba3d3a8ffd07845a58bf/_gradients.sassc
1038
- - tmp/sass-cache/92c1d5bcd1ce65635f62ba3d3a8ffd07845a58bf/_links.sassc
1039
- - tmp/sass-cache/995d7caa6648510447e11384ef762c226db7f403/_bullets.scssc
1040
- - tmp/sass-cache/995d7caa6648510447e11384ef762c226db7f403/_horizontal-list.scssc
1041
- - tmp/sass-cache/995d7caa6648510447e11384ef762c226db7f403/_inline-block-list.scssc
1042
- - tmp/sass-cache/995d7caa6648510447e11384ef762c226db7f403/_inline-list.scssc
1043
- - tmp/sass-cache/a3a0d1ef393f162899105b056524f6f6282a02ec/_color.scssc
1044
- - tmp/sass-cache/a3a0d1ef393f162899105b056524f6f6282a02ec/_general.scssc
1045
- - tmp/sass-cache/a3a0d1ef393f162899105b056524f6f6282a02ec/_sprites.scssc
1046
- - tmp/sass-cache/a3a0d1ef393f162899105b056524f6f6282a02ec/_tables.scssc
1047
- - tmp/sass-cache/b5ac720d39606afafebf17001ffc6bf58202e0ca/_contrast.scssc
1048
- - tmp/sass-cache/bf937c58e8a66e7b4fec6f35a8981ba7cfcb0652/_base.scssc
1049
- - tmp/sass-cache/bf937c58e8a66e7b4fec6f35a8981ba7cfcb0652/_sprite-img.scssc
1050
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_appearance.scssc
1051
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_background-clip.scssc
1052
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_background-origin.scssc
1053
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_background-size.scssc
1054
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_border-radius.scssc
1055
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_box-shadow.scssc
1056
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_box-sizing.scssc
1057
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_box.scssc
1058
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_columns.scssc
1059
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_filter.scssc
1060
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_font-face.scssc
1061
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_hyphenation.scssc
1062
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_images.scssc
1063
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_inline-block.scssc
1064
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_opacity.scssc
1065
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_regions.scssc
1066
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_shared.scssc
1067
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_text-shadow.scssc
1068
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_transform.scssc
1069
- - tmp/sass-cache/c815c62650b1524d4d2f92581c5c1712cc25440f/_transition.scssc
1070
- - tmp/sass-cache/d070e00ab17d4c5a92bb411bab483fa63017c523/_grid-background.scssc
1071
- - tmp/sass-cache/d5e053bc7eda17e42e4af2545c689fe1e1827ebb/_compass.scssc
1072
- - tmp/sass-cache/e08f7babd3eefa30ecaedb285b6f03aeb1567de0/_base.sassc
1073
- - tmp/sass-cache/e08f7babd3eefa30ecaedb285b6f03aeb1567de0/main.sassc
1074
- - tmp/sass-cache/e08f7babd3eefa30ecaedb285b6f03aeb1567de0/overrides.sassc
1075
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_actions.sassc
1076
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_avatars.sassc
1077
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_content.sassc
1078
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_dateinput.sassc
1079
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_deprecated.sassc
1080
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_dropdown.sassc
1081
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_footer.sassc
1082
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_forms.sassc
1083
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_header.sassc
1084
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_index.sassc
1085
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_layout.sassc
1086
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_messages.sassc
1087
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_popup.sassc
1088
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_tabcontrol.sassc
1089
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_toolbar.sassc
1090
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_typography.sassc
1091
- - tmp/sass-cache/f027b5a9f77da841b8b2e807a06c14f16aaf8c9f/_validations.sassc
1092
- - tmp/sass-cache/f70e5df716076570f6b1e421f918e7330651c50b/_clearfix.scssc
1093
- - tmp/sass-cache/f70e5df716076570f6b1e421f918e7330651c50b/_float.scssc
1094
- - tmp/sass-cache/f70e5df716076570f6b1e421f918e7330651c50b/_hacks.scssc
1095
- - tmp/sass-cache/f70e5df716076570f6b1e421f918e7330651c50b/_min.scssc
1096
- - tmp/sass-cache/f70e5df716076570f6b1e421f918e7330651c50b/_reset.scssc
1097
- - tmp/sass-cache/f70e5df716076570f6b1e421f918e7330651c50b/_tag-cloud.scssc
1098
1003
  - vendor/plugins/dataset/CHANGELOG
1099
1004
  - vendor/plugins/dataset/dataset.gemspec
1100
1005
  - vendor/plugins/dataset/lib/dataset/base.rb
@@ -1188,18 +1093,18 @@ require_paths:
1188
1093
  required_ruby_version: !ruby/object:Gem::Requirement
1189
1094
  none: false
1190
1095
  requirements:
1191
- - - ! '>='
1096
+ - - '>='
1192
1097
  - !ruby/object:Gem::Version
1193
1098
  version: '0'
1194
1099
  required_rubygems_version: !ruby/object:Gem::Requirement
1195
1100
  none: false
1196
1101
  requirements:
1197
- - - ! '>'
1102
+ - - '>'
1198
1103
  - !ruby/object:Gem::Version
1199
1104
  version: 1.3.1
1200
1105
  requirements: []
1201
1106
  rubyforge_project: radiant
1202
- rubygems_version: 1.8.25
1107
+ rubygems_version: 1.8.26
1203
1108
  signing_key:
1204
1109
  specification_version: 3
1205
1110
  summary: A no-fluff content management system designed for small teams.
@@ -1,3 +0,0 @@
1
- Autotest.add_discovery do
2
- "radiant" if File.exists?(File.join('bin', 'radiant'))
3
- end
@@ -1,111 +0,0 @@
1
- # (c) Copyright 2006 Nick Sieger <nicksieger@gmail.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person
4
- # obtaining a copy of this software and associated documentation files
5
- # (the "Software"), to deal in the Software without restriction,
6
- # including without limitation the rights to use, copy, modify, merge,
7
- # publish, distribute, sublicense, and/or sell copies of the Software,
8
- # and to permit persons to whom the Software is furnished to do so,
9
- # subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be
12
- # included in all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
18
- # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19
- # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
22
-
23
- $:.push(*Dir["vendor/rails/*/lib"])
24
-
25
- require 'active_support'
26
- require 'autotest/rspec'
27
-
28
- Autotest.add_hook :initialize do |at|
29
-
30
- %w{^config/ ^coverage/ ^db/ ^doc/ ^log/ ^public/ ^script ^vendor/rails ^vendor/plugins previous_failures.txt}.each do |exception|
31
- at.add_exception(exception)
32
- end
33
-
34
- at.clear_mappings
35
-
36
- at.add_mapping(%r%^(test|spec)/fixtures/(.*).yml$%) { |_, m|
37
- ["spec/models/#{m[2].singularize}_spec.rb"] + at.files_matching(%r%^spec\/views\/#{m[2]}/.*_spec\.rb$%)
38
- }
39
- at.add_mapping(%r%^spec/(models|controllers|views|helpers|lib)/.*rb$%) { |filename, _|
40
- filename
41
- }
42
- at.add_mapping(%r%^app/models/(.*)\.rb$%) { |_, m|
43
- ["spec/models/#{m[1]}_spec.rb"]
44
- }
45
- at.add_mapping(%r%^app/views/(.*)$%) { |_, m|
46
- at.files_matching %r%^spec/views/#{m[1]}_spec.rb$%
47
- }
48
- at.add_mapping(%r%^app/controllers/(.*)\.rb$%) { |_, m|
49
- if m[1] == "application"
50
- at.files_matching %r%^spec/controllers/.*_spec\.rb$%
51
- else
52
- ["spec/controllers/#{m[1]}_spec.rb"]
53
- end
54
- }
55
- at.add_mapping(%r%^app/helpers/(.*)_helper\.rb$%) { |_, m|
56
- if m[1] == "application" then
57
- at.files_matching(%r%^spec/(views|helpers)/.*_spec\.rb$%)
58
- else
59
- ["spec/helpers/#{m[1]}_helper_spec.rb"] + at.files_matching(%r%^spec\/views\/#{m[1]}/.*_spec\.rb$%)
60
- end
61
- }
62
- at.add_mapping(%r%^config/routes\.rb$%) {
63
- at.files_matching %r%^spec/(controllers|views|helpers)/.*_spec\.rb$%
64
- }
65
- at.add_mapping(%r%^config/database\.yml$%) { |_, m|
66
- at.files_matching %r%^spec/models/.*_spec\.rb$%
67
- }
68
- at.add_mapping(%r%^(spec/(spec_helper|shared/.*)|config/(boot|environment(s/test)?))\.rb$%) {
69
- at.files_matching %r%^spec/(models|controllers|views|helpers)/.*_spec\.rb$%
70
- }
71
- at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m|
72
- ["spec/lib/#{m[1]}_spec.rb"]
73
- }
74
- at.add_mapping(%r%^vendor/extensions/(.*)/app/models/(.*)\.rb$%) { |_, m|
75
- ["vendor/extensions/#{m[1]}/spec/models/#{m[2]}_spec.rb"]
76
- }
77
- at.add_mapping(%r%^vendor/extensions/.*/spec/(models|controllers|views|helpers|lib)/.*rb$%) { |filename, _|
78
- filename
79
- }
80
- at.add_mapping(%r%^vendor/extensions/(.*)/app/views/(.*)$%) { |_, m|
81
- at.files_matching %r%^vendor/extensions/#{m[1]}/spec/views/#{m[2]}_spec.rb$%
82
- }
83
- at.add_mapping(%r%^vendor/extensions/(.*)/app/controllers/(.*)\.rb%) { |_, m|
84
- if m[2] == "#{m[1]}_controller"
85
- at.files_matching %r%^vendor/extensions/#{m[1]}/spec/controllers/.*_spec\.rb$%
86
- else
87
- ["vendor/extensions/#{m[1]}/spec/controllers/#{m[2]}_spec.rb"]
88
- end
89
- }
90
- at.add_mapping(%r%^vendor/extensions/(.*)/app/helpers/(.*)_helper\.rb$%) { |_, m|
91
- if m[2] == m[1] then
92
- at.files_matching(%r%^vendor/extensions/#{m[1]}/spec/(views|helpers)/.*_spec\.rb$%)
93
- else
94
- ["vendor/extensions/#{m[1]}/spec/helpers/#{m[2]}_helper_spec.rb"] + at.files_matching(%r%^vendor/extensions/#{m[1]}/spec\/views\/#{m[2]}/.*_spec\.rb$%)
95
- end
96
- }
97
- at.add_mapping(%r%^vendor/extensions/(.*)/lib/(.*)\.rb$%) { |_, m|
98
- ["vendor/extensions/#{m[1]}/spec/lib/#{m[2]}_spec.rb"]
99
- }
100
- at.add_mapping(%r%^vendor/extensions/(.*)/(.*)_extension\.rb%) { |_, m|
101
- at.files_matching(%r%^vendor/extensions/#{m[1]}/spec/.*_spec\.rb$%) if m[1] == m[2]
102
- }
103
- end
104
-
105
- class Autotest::RadiantRailsRspec < Autotest::Rspec
106
-
107
- def spec_command
108
- "script/spec"
109
- end
110
-
111
- end
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
- ENV['RSPEC'] = 'true' # allows autotest to discover rspec
3
- ENV['AUTOTEST'] = 'true' # allows autotest to run w/ color on linux
4
- system((RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'), *ARGV) ||
5
- $stderr.puts("Unable to find autotest. Please install ZenTest or fix your PATH")
@@ -1,81 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
- require File.join(File.dirname(__FILE__), *%w[.. .. lib autotest radiant_rails_rspec])
3
- require File.join(File.dirname(__FILE__), *%w[.. matchers autotest_matchers])
4
-
5
- describe Autotest::RadiantRailsRspec, "file mapping" do
6
- before(:each) do
7
- @autotest = Autotest::RadiantRailsRspec.new
8
- @autotest.hook :initialize
9
- end
10
-
11
- it "should map model example to model" do
12
- @autotest.should map_specs(['spec/models/thing_spec.rb']).
13
- to('app/models/thing.rb')
14
- end
15
-
16
- it "should map controller example to controller" do
17
- @autotest.should map_specs(['spec/controllers/things_controller_spec.rb']).
18
- to('app/controllers/things_controller.rb')
19
- end
20
-
21
- it "should map view.rhtml" do
22
- @autotest.should map_specs(['spec/views/things/index.rhtml_spec.rb']).
23
- to('app/views/things/index.rhtml')
24
- end
25
-
26
- it "should map view.rhtml with underscores in example filename" do
27
- @autotest.should map_specs(['spec/views/things/index_rhtml_spec.rb']).
28
- to('app/views/things/index.rhtml')
29
- end
30
-
31
- it "should map view.html.erb" do
32
- @autotest.should map_specs(['spec/views/things/index.html.erb_spec.rb']).
33
- to('app/views/things/index.html.erb')
34
- end
35
-
36
- describe "with extensions" do
37
- it "should map model example to model" do
38
- @autotest.should map_specs(["#{ext_path}spec/models/thing_spec.rb"]).
39
- to("#{ext_path}app/models/thing.rb")
40
- end
41
-
42
- it "should map controller example to controller" do
43
- @autotest.should map_specs(["#{ext_path}spec/controllers/things_controller_spec.rb"]).
44
- to("#{ext_path}app/controllers/things_controller.rb")
45
- end
46
-
47
- it "should map nested controller example to nested controller" do
48
- @autotest.should map_specs(["#{ext_path}spec/controllers/nest/things_controller_spec.rb"]).
49
- to("#{ext_path}app/controllers/nest/things_controller.rb")
50
- end
51
-
52
- it "should map view example to view" do
53
- @autotest.should map_specs(["#{ext_path}spec/views/things/index.html.erb_spec.rb"]).
54
- to("#{ext_path}app/views/things/index.html.erb")
55
- end
56
-
57
- it "should map nested view example to nested view" do
58
- @autotest.should map_specs(["#{ext_path}spec/views/nest/things/index.html.erb_spec.rb"]).
59
- to("#{ext_path}app/views/nest/things/index.html.erb")
60
- end
61
-
62
- it "should map helper example to helper" do
63
- @autotest.should map_specs(["#{ext_path}spec/helpers/thing_helper_spec.rb"]).
64
- to("#{ext_path}app/helpers/thing_helper.rb")
65
- end
66
-
67
- it "should map nested helper example to nested helper" do
68
- @autotest.should map_specs(["#{ext_path}spec/helpers/nest/thing_helper_spec.rb"]).
69
- to("#{ext_path}app/helpers/nest/thing_helper.rb")
70
- end
71
-
72
- it "should map lib example to lib" do
73
- @autotest.should map_specs(["#{ext_path}spec/lib/thing_spec.rb"]).
74
- to("#{ext_path}lib/thing.rb")
75
- end
76
- end
77
-
78
- def ext_path
79
- 'vendor/extensions/extension/'
80
- end
81
- end
@@ -1,47 +0,0 @@
1
- module Spec
2
- module Matchers
3
- class AutotestMappingMatcher
4
- def initialize(specs)
5
- @specs = specs
6
- end
7
-
8
- def to(file)
9
- @file = file
10
- self
11
- end
12
-
13
- def matches?(autotest)
14
- @autotest = prepare autotest
15
- @actual = autotest.test_files_for(@file)
16
- @actual == @specs
17
- end
18
-
19
- def failure_message
20
- "expected #{@autotest.class} to map #{@specs.inspect} to #{@file.inspect}\ngot #{@actual.inspect}"
21
- end
22
-
23
- private
24
- def prepare autotest
25
- stub_found_files autotest
26
- stub_find_order autotest
27
- autotest
28
- end
29
-
30
- def stub_found_files autotest
31
- found_files = @specs.inject({}){|h,f| h[f] = Time.at(0)}
32
- autotest.stub!(:find_files).and_return(found_files)
33
- end
34
-
35
- def stub_find_order autotest
36
- find_order = @specs.dup << @file
37
- autotest.instance_eval { @find_order = find_order }
38
- end
39
-
40
- end
41
-
42
- def map_specs(specs)
43
- AutotestMappingMatcher.new(specs)
44
- end
45
-
46
- end
47
- end