trendi18n 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. data/LICENSE +22 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +19 -0
  4. data/Rakefile +54 -0
  5. data/VERSION +1 -0
  6. data/app/models/translation.rb +125 -0
  7. data/generators/trendi18n/templates/migrations/create_translations.rb +22 -0
  8. data/generators/trendi18n/trendi18n_generator.rb +8 -0
  9. data/lib/commands.rb +39 -0
  10. data/lib/file.rb +8 -0
  11. data/lib/trendi18n.rb +78 -0
  12. data/rails/init.rb +5 -0
  13. data/spec/test_application/README +243 -0
  14. data/spec/test_application/Rakefile +10 -0
  15. data/spec/test_application/app/controllers/application_controller.rb +10 -0
  16. data/spec/test_application/app/controllers/translations_controller.rb +41 -0
  17. data/spec/test_application/app/views/layouts/application.rhtml +15 -0
  18. data/spec/test_application/app/views/translations/_form.html.erb +11 -0
  19. data/spec/test_application/app/views/translations/edit.html.erb +6 -0
  20. data/spec/test_application/app/views/translations/index.html.erb +32 -0
  21. data/spec/test_application/app/views/translations/new.html.erb +7 -0
  22. data/spec/test_application/app/views/translations/show.html.erb +5 -0
  23. data/spec/test_application/config/boot.rb +110 -0
  24. data/spec/test_application/config/database.yml +25 -0
  25. data/spec/test_application/config/environment.rb +44 -0
  26. data/spec/test_application/config/environments/cucumber.rb +28 -0
  27. data/spec/test_application/config/environments/development.rb +17 -0
  28. data/spec/test_application/config/environments/production.rb +28 -0
  29. data/spec/test_application/config/environments/test.rb +34 -0
  30. data/spec/test_application/config/initializers/new_rails_defaults.rb +21 -0
  31. data/spec/test_application/config/initializers/session_store.rb +15 -0
  32. data/spec/test_application/config/locales/en.yml +5 -0
  33. data/spec/test_application/config/routes.rb +46 -0
  34. data/spec/test_application/db/migrate/20091208195455_create_translations.rb +22 -0
  35. data/spec/test_application/db/schema.rb +31 -0
  36. data/spec/test_application/db/seeds.rb +7 -0
  37. data/spec/test_application/features/dynamic_translation.feature +5 -0
  38. data/spec/test_application/features/managing_translations.feature +62 -0
  39. data/spec/test_application/features/static_translation.feature +13 -0
  40. data/spec/test_application/features/step_definitions/translations_steps.rb +12 -0
  41. data/spec/test_application/features/step_definitions/webrat_steps.rb +189 -0
  42. data/spec/test_application/features/support/env.rb +47 -0
  43. data/spec/test_application/features/support/paths.rb +42 -0
  44. data/spec/test_application/features/support/version_check.rb +31 -0
  45. data/spec/test_application/lib/tasks/cucumber.rake +46 -0
  46. data/spec/test_application/lib/tasks/rspec.rake +146 -0
  47. data/spec/test_application/public/404.html +30 -0
  48. data/spec/test_application/public/422.html +30 -0
  49. data/spec/test_application/public/500.html +30 -0
  50. data/spec/test_application/public/favicon.ico +0 -0
  51. data/spec/test_application/public/robots.txt +5 -0
  52. data/spec/test_application/script/about +4 -0
  53. data/spec/test_application/script/autospec +6 -0
  54. data/spec/test_application/script/console +3 -0
  55. data/spec/test_application/script/cucumber +17 -0
  56. data/spec/test_application/script/dbconsole +3 -0
  57. data/spec/test_application/script/destroy +3 -0
  58. data/spec/test_application/script/generate +3 -0
  59. data/spec/test_application/script/performance/benchmarker +3 -0
  60. data/spec/test_application/script/performance/profiler +3 -0
  61. data/spec/test_application/script/plugin +3 -0
  62. data/spec/test_application/script/runner +3 -0
  63. data/spec/test_application/script/server +3 -0
  64. data/spec/test_application/script/spec +10 -0
  65. data/spec/test_application/spec/backend_spec.rb +158 -0
  66. data/spec/test_application/spec/models/translation_spec.rb +109 -0
  67. data/spec/test_application/spec/rcov.opts +3 -0
  68. data/spec/test_application/spec/spec.opts +4 -0
  69. data/spec/test_application/spec/spec_helper.rb +54 -0
  70. metadata +156 -0
@@ -0,0 +1,12 @@
1
+ Given /^I have translated "([^\"]*)" to "([^\"]*)" in "([^\"]*)" locale$/ do |key, translation, locale|
2
+ Translation.create!(:key => key, :translation => translation, :locale => locale)
3
+ end
4
+
5
+ Given /^I have tranlated "([^\"]*)" to "([^\"]*)" with scope "([^\"]*)" in "([^\"]*)" locale$/ do |key, translation, scope, locale|
6
+ Translation.create!(:key => key, :translation => translation, :locale => locale, :scope => scope)
7
+ end
8
+
9
+
10
+
11
+
12
+
@@ -0,0 +1,189 @@
1
+ # IMPORTANT: This file was generated by Cucumber 0.4.4
2
+ # Edit at your own peril - it's recommended to regenerate this file
3
+ # in the future when you upgrade to a newer version of Cucumber.
4
+ # Consider adding your own code to a new file instead of editing this one.
5
+
6
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
7
+
8
+ # Commonly used webrat steps
9
+ # http://github.com/brynary/webrat
10
+
11
+ Given /^(?:|I )am on (.+)$/ do |page_name|
12
+ visit path_to(page_name)
13
+ end
14
+
15
+ When /^(?:|I )go to (.+)$/ do |page_name|
16
+ visit path_to(page_name)
17
+ end
18
+
19
+ When /^(?:|I )press "([^\"]*)"$/ do |button|
20
+ click_button(button)
21
+ end
22
+
23
+ When /^(?:|I )follow "([^\"]*)"$/ do |link|
24
+ click_link(link)
25
+ end
26
+
27
+ When /^(?:|I )follow "([^\"]*)" within "([^\"]*)"$/ do |link, parent|
28
+ click_link_within(parent, link)
29
+ end
30
+
31
+ When /^(?:|I )fill in "([^\"]*)" with "([^\"]*)"$/ do |field, value|
32
+ fill_in(field, :with => value)
33
+ end
34
+
35
+ When /^(?:|I )fill in "([^\"]*)" for "([^\"]*)"$/ do |value, field|
36
+ fill_in(field, :with => value)
37
+ end
38
+
39
+ # Use this to fill in an entire form with data from a table. Example:
40
+ #
41
+ # When I fill in the following:
42
+ # | Account Number | 5002 |
43
+ # | Expiry date | 2009-11-01 |
44
+ # | Note | Nice guy |
45
+ # | Wants Email? | |
46
+ #
47
+ # TODO: Add support for checkbox, select og option
48
+ # based on naming conventions.
49
+ #
50
+ When /^(?:|I )fill in the following:$/ do |fields|
51
+ fields.rows_hash.each do |name, value|
52
+ When %{I fill in "#{name}" with "#{value}"}
53
+ end
54
+ end
55
+
56
+ When /^(?:|I )select "([^\"]*)" from "([^\"]*)"$/ do |value, field|
57
+ select(value, :from => field)
58
+ end
59
+
60
+ # Use this step in conjunction with Rail's datetime_select helper. For example:
61
+ # When I select "December 25, 2008 10:00" as the date and time
62
+ When /^(?:|I )select "([^\"]*)" as the date and time$/ do |time|
63
+ select_datetime(time)
64
+ end
65
+
66
+ # Use this step when using multiple datetime_select helpers on a page or
67
+ # you want to specify which datetime to select. Given the following view:
68
+ # <%= f.label :preferred %><br />
69
+ # <%= f.datetime_select :preferred %>
70
+ # <%= f.label :alternative %><br />
71
+ # <%= f.datetime_select :alternative %>
72
+ # The following steps would fill out the form:
73
+ # When I select "November 23, 2004 11:20" as the "Preferred" date and time
74
+ # And I select "November 25, 2004 10:30" as the "Alternative" date and time
75
+ When /^(?:|I )select "([^\"]*)" as the "([^\"]*)" date and time$/ do |datetime, datetime_label|
76
+ select_datetime(datetime, :from => datetime_label)
77
+ end
78
+
79
+ # Use this step in conjunction with Rail's time_select helper. For example:
80
+ # When I select "2:20PM" as the time
81
+ # Note: Rail's default time helper provides 24-hour time-- not 12 hour time. Webrat
82
+ # will convert the 2:20PM to 14:20 and then select it.
83
+ When /^(?:|I )select "([^\"]*)" as the time$/ do |time|
84
+ select_time(time)
85
+ end
86
+
87
+ # Use this step when using multiple time_select helpers on a page or you want to
88
+ # specify the name of the time on the form. For example:
89
+ # When I select "7:30AM" as the "Gym" time
90
+ When /^(?:|I )select "([^\"]*)" as the "([^\"]*)" time$/ do |time, time_label|
91
+ select_time(time, :from => time_label)
92
+ end
93
+
94
+ # Use this step in conjunction with Rail's date_select helper. For example:
95
+ # When I select "February 20, 1981" as the date
96
+ When /^(?:|I )select "([^\"]*)" as the date$/ do |date|
97
+ select_date(date)
98
+ end
99
+
100
+ # Use this step when using multiple date_select helpers on one page or
101
+ # you want to specify the name of the date on the form. For example:
102
+ # When I select "April 26, 1982" as the "Date of Birth" date
103
+ When /^(?:|I )select "([^\"]*)" as the "([^\"]*)" date$/ do |date, date_label|
104
+ select_date(date, :from => date_label)
105
+ end
106
+
107
+ When /^(?:|I )check "([^\"]*)"$/ do |field|
108
+ check(field)
109
+ end
110
+
111
+ When /^(?:|I )uncheck "([^\"]*)"$/ do |field|
112
+ uncheck(field)
113
+ end
114
+
115
+ When /^(?:|I )choose "([^\"]*)"$/ do |field|
116
+ choose(field)
117
+ end
118
+
119
+ When /^(?:|I )attach the file at "([^\"]*)" to "([^\"]*)"$/ do |path, field|
120
+ attach_file(field, path)
121
+ end
122
+
123
+ Then /^(?:|I )should see "([^\"]*)"$/ do |text|
124
+ response.should contain(text)
125
+ end
126
+
127
+ Then /^(?:|I )should see "([^\"]*)" within "([^\"]*)"$/ do |text, selector|
128
+ within(selector) do |content|
129
+ content.should contain(text)
130
+ end
131
+ end
132
+
133
+ Then /^(?:|I )should see \/([^\/]*)\/$/ do |regexp|
134
+ regexp = Regexp.new(regexp)
135
+ response.should contain(regexp)
136
+ end
137
+
138
+ Then /^(?:|I )should see \/([^\/]*)\/ within "([^\"]*)"$/ do |regexp, selector|
139
+ within(selector) do |content|
140
+ regexp = Regexp.new(regexp)
141
+ content.should contain(regexp)
142
+ end
143
+ end
144
+
145
+ Then /^(?:|I )should not see "([^\"]*)"$/ do |text|
146
+ response.should_not contain(text)
147
+ end
148
+
149
+ Then /^(?:|I )should not see "([^\"]*)" within "([^\"]*)"$/ do |text, selector|
150
+ within(selector) do |content|
151
+ content.should_not contain(text)
152
+ end
153
+ end
154
+
155
+ Then /^(?:|I )should not see \/([^\/]*)\/$/ do |regexp|
156
+ regexp = Regexp.new(regexp)
157
+ response.should_not contain(regexp)
158
+ end
159
+
160
+ Then /^(?:|I )should not see \/([^\/]*)\/ within "([^\"]*)"$/ do |regexp, selector|
161
+ within(selector) do |content|
162
+ regexp = Regexp.new(regexp)
163
+ content.should_not contain(regexp)
164
+ end
165
+ end
166
+
167
+ Then /^the "([^\"]*)" field should contain "([^\"]*)"$/ do |field, value|
168
+ field_labeled(field).value.should =~ /#{value}/
169
+ end
170
+
171
+ Then /^the "([^\"]*)" field should not contain "([^\"]*)"$/ do |field, value|
172
+ field_labeled(field).value.should_not =~ /#{value}/
173
+ end
174
+
175
+ Then /^the "([^\"]*)" checkbox should be checked$/ do |label|
176
+ field_labeled(label).should be_checked
177
+ end
178
+
179
+ Then /^the "([^\"]*)" checkbox should not be checked$/ do |label|
180
+ field_labeled(label).should_not be_checked
181
+ end
182
+
183
+ Then /^(?:|I )should be on (.+)$/ do |page_name|
184
+ URI.parse(current_url).path.should == path_to(page_name)
185
+ end
186
+
187
+ Then /^show me the page$/ do
188
+ save_and_open_page
189
+ end
@@ -0,0 +1,47 @@
1
+ # IMPORTANT: This file was generated by Cucumber 0.4.4
2
+ # Edit at your own peril - it's recommended to regenerate this file
3
+ # in the future when you upgrade to a newer version of Cucumber.
4
+ # Consider adding your own code to a new file instead of editing this one.
5
+
6
+ # Sets up the Rails environment for Cucumber
7
+ ENV["RAILS_ENV"] ||= "cucumber"
8
+ require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
9
+ require 'cucumber/rails/world'
10
+
11
+ # If you set this to true, each scenario will run in a database transaction.
12
+ # You can still turn off transactions on a per-scenario basis, simply tagging
13
+ # a feature or scenario with the @no-txn tag.
14
+ #
15
+ # If you set this to false, transactions will be off for all scenarios,
16
+ # regardless of whether you use @no-txn or not.
17
+ #
18
+ # Beware that turning transactions off will leave data in your database
19
+ # after each scenario, which can lead to hard-to-debug failures in
20
+ # subsequent scenarios. If you do this, we recommend you create a Before
21
+ # block that will explicitly put your database in a known state.
22
+ Cucumber::Rails::World.use_transactional_fixtures = true
23
+
24
+ # If you set this to false, any error raised from within your app will bubble
25
+ # up to your step definition and out to cucumber unless you catch it somewhere
26
+ # on the way. You can make Rails rescue errors and render error pages on a
27
+ # per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
28
+ #
29
+ # If you set this to true, Rails will rescue all errors and render error
30
+ # pages, more or less in the same way your application would behave in the
31
+ # default production environment. It's not recommended to do this for all
32
+ # of your scenarios, as this makes it hard to discover errors in your application.
33
+ ActionController::Base.allow_rescue = false
34
+
35
+ require 'cucumber'
36
+ # Comment out the next line if you don't want Cucumber Unicode support
37
+ require 'cucumber/formatter/unicode'
38
+ require 'cucumber/webrat/element_locator' # Lets you do table.diff!(element_at('#my_table_or_dl_or_ul_or_ol').to_table)
39
+ require 'cucumber/rails/rspec'
40
+
41
+ require 'webrat'
42
+ require 'webrat/core/matchers'
43
+ Webrat.configure do |config|
44
+ config.mode = :rails
45
+ config.open_error_files = false # Set to true if you want error pages to pop up in the browser
46
+ end
47
+
@@ -0,0 +1,42 @@
1
+ module NavigationHelpers
2
+ # Maps a name to a path. Used by the
3
+ #
4
+ # When /^I go to (.+)$/ do |page_name|
5
+ #
6
+ # step definition in webrat_steps.rb
7
+ #
8
+ def path_to(page_name)
9
+ case page_name
10
+
11
+ when /the home\s?page/
12
+ '/'
13
+ when /the list of translations/
14
+ translations_path
15
+
16
+ when /the list of unfinished translations/
17
+ translations_path :condition => "untranslated"
18
+ when /the list of finished translations/
19
+ translations_path :condition => "translated"
20
+ when /the list of polish translations/
21
+ translations_path :localization => "pl"
22
+ when /the new translation form/
23
+ new_translation_path
24
+ when /the edit translation form/
25
+ edit_translation_path
26
+ when /the translations test page/
27
+ translation_path :id => 1
28
+
29
+ # Add more mappings here.
30
+ # Here is a more fancy example:
31
+ #
32
+ # when /^(.*)'s profile page$/i
33
+ # user_profile_path(User.find_by_login($1))
34
+
35
+ else
36
+ raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
37
+ "Now, go and add a mapping in #{__FILE__}"
38
+ end
39
+ end
40
+ end
41
+
42
+ World(NavigationHelpers)
@@ -0,0 +1,31 @@
1
+ require 'cucumber/formatter/ansicolor'
2
+ extend Cucumber::Formatter::ANSIColor
3
+ if Cucumber::VERSION != '0.4.4'
4
+ warning = <<-WARNING
5
+ #{red_cukes(15)}
6
+
7
+ #{red_cukes(1)} R O T T E N C U C U M B E R A L E R T #{red_cukes(1)}
8
+
9
+ Your #{__FILE__.gsub(/version_check.rb$/, 'env.rb')} file was generated with Cucumber 0.4.4,
10
+ but you seem to be running Cucumber #{Cucumber::VERSION}. If you're running an older
11
+ version than #{Cucumber::VERSION}, just upgrade your gem. If you're running a newer
12
+ version than #{Cucumber::VERSION} you should:
13
+
14
+ 1) Read http://wiki.github.com/aslakhellesoy/cucumber/upgrading
15
+
16
+ 2) Regenerate your cucumber environment with the following command:
17
+
18
+ ruby script/generate cucumber
19
+
20
+ If you get prompted to replace a file, hit 'd' to see the difference.
21
+ When you're sure you have captured any personal edits, confirm that you
22
+ want to overwrite #{__FILE__.gsub(/version_check.rb$/, 'env.rb')} by pressing 'y'. Then reapply any
23
+ personal changes that may have been overwritten, preferably in separate files.
24
+
25
+ This message will then self destruct.
26
+
27
+ #{red_cukes(15)}
28
+ WARNING
29
+ warn(warning)
30
+ at_exit {warn(warning)}
31
+ end
@@ -0,0 +1,46 @@
1
+ # This file was generated by
2
+ # Find vendored gem or plugin of cucumber
3
+ vendored_cucumber_dir = Dir["#{RAILS_ROOT}/vendor/{gems,plugins}/cucumber*"].first
4
+ $LOAD_PATH.unshift("#{vendored_cucumber_dir}/lib") unless vendored_cucumber_dir.nil?
5
+
6
+ unless ARGV.any? {|a| a =~ /^gems/}
7
+
8
+ begin
9
+ require 'cucumber/rake/task'
10
+
11
+ # Use vendored cucumber binary if possible. If it's not vendored,
12
+ # Cucumber::Rake::Task will automatically use installed gem's cucumber binary
13
+ vendored_cucumber_binary = "#{vendored_cucumber_dir}/bin/cucumber" unless vendored_cucumber_dir.nil?
14
+ ENV['FEATURE'] = "#{RAILS_ROOT}/features"
15
+ namespace :cucumber do
16
+ Cucumber::Rake::Task.new({:ok => 'db:test:prepare'}, 'Run features that should pass') do |t|
17
+ t.binary = vendored_cucumber_binary
18
+ t.fork = true # You may get faster startup if you set this to false
19
+ t.cucumber_opts = "--color --tags ~@wip --strict --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'}"
20
+ end
21
+
22
+ Cucumber::Rake::Task.new({:wip => 'db:test:prepare'}, 'Run features that are being worked on') do |t|
23
+ t.binary = vendored_cucumber_binary
24
+ t.fork = true # You may get faster startup if you set this to false
25
+ t.cucumber_opts = "--color --tags @wip:2 --wip --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'}"
26
+ end
27
+
28
+ desc 'Run all features'
29
+ task :all => [:ok, :wip]
30
+ end
31
+ desc 'Alias for cucumber:ok'
32
+ task :cucumber => 'cucumber:ok'
33
+
34
+ task :default => :cucumber
35
+
36
+ task :features => :cucumber do
37
+ STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
38
+ end
39
+ rescue LoadError
40
+ desc 'cucumber rake task not available (cucumber not installed)'
41
+ task :cucumber do
42
+ abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
43
+ end
44
+ end
45
+
46
+ end
@@ -0,0 +1,146 @@
1
+ gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9
2
+ rspec_gem_dir = nil
3
+ Dir["#{RAILS_ROOT}/vendor/gems/*"].each do |subdir|
4
+ rspec_gem_dir = subdir if subdir.gsub("#{RAILS_ROOT}/vendor/gems/","") =~ /^(\w+-)?rspec-(\d+)/ && File.exist?("#{subdir}/lib/spec/rake/spectask.rb")
5
+ end
6
+ rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec')
7
+
8
+ if rspec_gem_dir && (test ?d, rspec_plugin_dir)
9
+ raise "\n#{'*'*50}\nYou have rspec installed in both vendor/gems and vendor/plugins\nPlease pick one and dispose of the other.\n#{'*'*50}\n\n"
10
+ end
11
+
12
+ if rspec_gem_dir
13
+ $LOAD_PATH.unshift("#{rspec_gem_dir}/lib")
14
+ elsif File.exist?(rspec_plugin_dir)
15
+ $LOAD_PATH.unshift("#{rspec_plugin_dir}/lib")
16
+ end
17
+
18
+ # Don't load rspec if running "rake gems:*"
19
+ unless ARGV.any? {|a| a =~ /^gems/}
20
+
21
+ begin
22
+ require 'spec/rake/spectask'
23
+ rescue MissingSourceFile
24
+ module Spec
25
+ module Rake
26
+ class SpecTask
27
+ def initialize(name)
28
+ task name do
29
+ # if rspec-rails is a configured gem, this will output helpful material and exit ...
30
+ require File.expand_path(File.join(File.dirname(__FILE__),"..","..","config","environment"))
31
+
32
+ # ... otherwise, do this:
33
+ raise <<-MSG
34
+
35
+ #{"*" * 80}
36
+ * You are trying to run an rspec rake task defined in
37
+ * #{__FILE__},
38
+ * but rspec can not be found in vendor/gems, vendor/plugins or system gems.
39
+ #{"*" * 80}
40
+ MSG
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ Rake.application.instance_variable_get('@tasks').delete('default')
49
+
50
+ spec_prereq = File.exist?(File.join(RAILS_ROOT, 'config', 'database.yml')) ? "db:test:prepare" : :noop
51
+ task :noop do
52
+ end
53
+
54
+ task :default => :spec
55
+ task :stats => "spec:statsetup"
56
+
57
+ desc "Run all specs in spec directory (excluding plugin specs)"
58
+ Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t|
59
+ t.libs << "#{RAILS_ROOT}/spec" << "#{RAILS_ROOT}/lib"
60
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
61
+ t.spec_files = FileList['spec/**/*_spec.rb']
62
+ end
63
+
64
+ namespace :spec do
65
+ desc "Run all specs in spec directory with RCov (excluding plugin specs)"
66
+ Spec::Rake::SpecTask.new(:rcov) do |t|
67
+ t.libs << "#{RAILS_ROOT}/spec" << "#{RAILS_ROOT}/lib"
68
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
69
+ t.spec_files = FileList['spec/**/*_spec.rb']
70
+ t.rcov = true
71
+ t.rcov_opts = lambda do
72
+ IO.readlines("#{RAILS_ROOT}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
73
+ end
74
+ end
75
+
76
+ desc "Print Specdoc for all specs (excluding plugin specs)"
77
+ Spec::Rake::SpecTask.new(:doc) do |t|
78
+ t.spec_opts = ["--format", "specdoc", "--dry-run"]
79
+ t.spec_files = FileList['spec/**/*_spec.rb']
80
+ end
81
+
82
+ desc "Print Specdoc for all plugin examples"
83
+ Spec::Rake::SpecTask.new(:plugin_doc) do |t|
84
+ t.spec_opts = ["--format", "specdoc", "--dry-run"]
85
+ t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*')
86
+ end
87
+
88
+ [:models, :controllers, :views, :helpers, :lib, :integration].each do |sub|
89
+ desc "Run the code examples in spec/#{sub}"
90
+ Spec::Rake::SpecTask.new(sub => spec_prereq) do |t|
91
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
92
+ t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"]
93
+ end
94
+ end
95
+
96
+ desc "Run the code examples in vendor/plugins (except RSpec's own)"
97
+ Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t|
98
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
99
+ t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*")
100
+ end
101
+
102
+ namespace :plugins do
103
+ desc "Runs the examples for rspec_on_rails"
104
+ Spec::Rake::SpecTask.new(:rspec_on_rails) do |t|
105
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
106
+ t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*_spec.rb']
107
+ end
108
+ end
109
+
110
+ # Setup specs for stats
111
+ task :statsetup do
112
+ require 'code_statistics'
113
+ ::STATS_DIRECTORIES << %w(Model\ specs spec/models) if File.exist?('spec/models')
114
+ ::STATS_DIRECTORIES << %w(View\ specs spec/views) if File.exist?('spec/views')
115
+ ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) if File.exist?('spec/controllers')
116
+ ::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers')
117
+ ::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib')
118
+ ::STATS_DIRECTORIES << %w(Routing\ specs spec/routing) if File.exist?('spec/routing')
119
+ ::STATS_DIRECTORIES << %w(Integration\ specs spec/integration) if File.exist?('spec/integration')
120
+ ::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models')
121
+ ::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views')
122
+ ::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers')
123
+ ::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers')
124
+ ::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib')
125
+ ::CodeStatistics::TEST_TYPES << "Routing specs" if File.exist?('spec/routing')
126
+ ::CodeStatistics::TEST_TYPES << "Integration specs" if File.exist?('spec/integration')
127
+ end
128
+
129
+ namespace :db do
130
+ namespace :fixtures do
131
+ desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z."
132
+ task :load => :environment do
133
+ ActiveRecord::Base.establish_connection(Rails.env)
134
+ base_dir = File.join(Rails.root, 'spec', 'fixtures')
135
+ fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir
136
+
137
+ require 'active_record/fixtures'
138
+ (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/).map {|f| File.join(fixtures_dir, f) } : Dir.glob(File.join(fixtures_dir, '*.{yml,csv}'))).each do |fixture_file|
139
+ Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*'))
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end
145
+
146
+ end
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+
6
+ <head>
7
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
+ <title>The page you were looking for doesn't exist (404)</title>
9
+ <style type="text/css">
10
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
+ div.dialog {
12
+ width: 25em;
13
+ padding: 0 4em;
14
+ margin: 4em auto 0 auto;
15
+ border: 1px solid #ccc;
16
+ border-right-color: #999;
17
+ border-bottom-color: #999;
18
+ }
19
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
+ </style>
21
+ </head>
22
+
23
+ <body>
24
+ <!-- This file lives in public/404.html -->
25
+ <div class="dialog">
26
+ <h1>The page you were looking for doesn't exist.</h1>
27
+ <p>You may have mistyped the address or the page may have moved.</p>
28
+ </div>
29
+ </body>
30
+ </html>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+
6
+ <head>
7
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
+ <title>The change you wanted was rejected (422)</title>
9
+ <style type="text/css">
10
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
+ div.dialog {
12
+ width: 25em;
13
+ padding: 0 4em;
14
+ margin: 4em auto 0 auto;
15
+ border: 1px solid #ccc;
16
+ border-right-color: #999;
17
+ border-bottom-color: #999;
18
+ }
19
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
+ </style>
21
+ </head>
22
+
23
+ <body>
24
+ <!-- This file lives in public/422.html -->
25
+ <div class="dialog">
26
+ <h1>The change you wanted was rejected.</h1>
27
+ <p>Maybe you tried to change something you didn't have access to.</p>
28
+ </div>
29
+ </body>
30
+ </html>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+
6
+ <head>
7
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
+ <title>We're sorry, but something went wrong (500)</title>
9
+ <style type="text/css">
10
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
+ div.dialog {
12
+ width: 25em;
13
+ padding: 0 4em;
14
+ margin: 4em auto 0 auto;
15
+ border: 1px solid #ccc;
16
+ border-right-color: #999;
17
+ border-bottom-color: #999;
18
+ }
19
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
+ </style>
21
+ </head>
22
+
23
+ <body>
24
+ <!-- This file lives in public/500.html -->
25
+ <div class="dialog">
26
+ <h1>We're sorry, but something went wrong.</h1>
27
+ <p>We've been notified about this issue and we'll take a look at it shortly.</p>
28
+ </div>
29
+ </body>
30
+ </html>
File without changes
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-Agent: *
5
+ # Disallow: /
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ $LOAD_PATH.unshift "#{RAILTIES_PATH}/builtin/rails_info"
4
+ require 'commands/about'
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9
3
+ ENV['RSPEC'] = 'true' # allows autotest to discover rspec
4
+ ENV['AUTOTEST'] = 'true' # allows autotest to run w/ color on linux
5
+ system((RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'), *ARGV) ||
6
+ $stderr.puts("Unable to find autotest. Please install ZenTest or fix your PATH")
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/console'
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ vendored_cucumber_binary = Dir[File.join(File.dirname(__FILE__),
4
+ '..',
5
+ 'vendor',
6
+ '{gems,plugins}',
7
+ 'cucumber*',
8
+ 'bin',
9
+ 'cucumber')].first
10
+
11
+ if vendored_cucumber_binary
12
+ load File.expand_path(vendored_cucumber_binary)
13
+ else
14
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
15
+ require 'cucumber'
16
+ load Cucumber::BINARY
17
+ end
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/dbconsole'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/destroy'