rails-observers 0.1.2 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +29 -13
- data/lib/rails/observers/action_controller/caching/sweeper.rb +61 -0
- data/lib/rails/observers/action_controller/caching/sweeping.rb +3 -59
- data/lib/rails/observers/action_controller/caching.rb +1 -1
- data/lib/rails/observers/active_resource/observing.rb +41 -0
- data/lib/rails/observers/activerecord/observer.rb +4 -0
- data/lib/rails/observers/railtie.rb +35 -5
- data/lib/rails/observers/version.rb +1 -1
- metadata +39 -62
- data/.gitignore +0 -18
- data/.travis.yml +0 -12
- data/Gemfile +0 -8
- data/Rakefile +0 -34
- data/rails-observers.gemspec +0 -26
- data/rails-observers.gemspec.erb +0 -26
- data/test/configuration_test.rb +0 -37
- data/test/console_test.rb +0 -38
- data/test/fixtures/developers.yml +0 -4
- data/test/fixtures/minimalistics.yml +0 -2
- data/test/fixtures/topics.yml +0 -41
- data/test/generators/generators_test_helper.rb +0 -16
- data/test/generators/namespaced_generators_test.rb +0 -34
- data/test/generators/observer_generator_test.rb +0 -33
- data/test/helper.rb +0 -74
- data/test/isolation/abstract_unit.rb +0 -119
- data/test/lifecycle_test.rb +0 -249
- data/test/models/observers.rb +0 -27
- data/test/observer_array_test.rb +0 -222
- data/test/observing_test.rb +0 -183
- data/test/rake_test.rb +0 -40
- data/test/sweeper_test.rb +0 -83
- data/test/transaction_callbacks_test.rb +0 -246
data/Rakefile
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
|
-
require "bundler/gem_tasks"
|
3
|
-
|
4
|
-
require 'rake/testtask'
|
5
|
-
|
6
|
-
Rake::TestTask.new("test:regular") do |t|
|
7
|
-
t.libs = ["test"]
|
8
|
-
t.pattern = "test/*_test.rb"
|
9
|
-
t.ruby_opts = ['-w']
|
10
|
-
end
|
11
|
-
|
12
|
-
Rake::TestTask.new("test:generators") do |t|
|
13
|
-
t.libs = ["test"]
|
14
|
-
t.pattern = "test/generators/*_test.rb"
|
15
|
-
t.ruby_opts = ['-w']
|
16
|
-
end
|
17
|
-
|
18
|
-
task :default => :test
|
19
|
-
task :test => ['test:regular', 'test:generators']
|
20
|
-
|
21
|
-
specname = "rails-observers.gemspec"
|
22
|
-
deps = `git ls-files`.split("\n") - [specname]
|
23
|
-
|
24
|
-
file specname => deps do
|
25
|
-
files = `git ls-files`.split("\n")
|
26
|
-
test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
27
|
-
executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
28
|
-
|
29
|
-
require 'erb'
|
30
|
-
|
31
|
-
File.open specname, 'w:utf-8' do |f|
|
32
|
-
f.write ERB.new(File.read("#{specname}.erb")).result(binding)
|
33
|
-
end
|
34
|
-
end
|
data/rails-observers.gemspec
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
require File.expand_path('../lib/rails/observers/version', __FILE__)
|
3
|
-
|
4
|
-
Gem::Specification.new do |s|
|
5
|
-
s.name = "rails-observers"
|
6
|
-
s.authors = ["Rafael Mendonça França", "Steve Klabnik"]
|
7
|
-
s.email = ["rafaelmfranca@gmail.com", "steve@steveklabnik.com"]
|
8
|
-
s.description = %q{Rails observer (removed from core in Rails 4.0)}
|
9
|
-
s.summary = %q{ActiveModel::Observer, ActiveRecord::Observer and ActionController::Caching::Sweeper extracted from Rails.}
|
10
|
-
s.homepage = "https://github.com/rails/rails-observers"
|
11
|
-
s.version = Rails::Observers::VERSION
|
12
|
-
|
13
|
-
s.files = [".gitignore",".travis.yml","Gemfile","LICENSE","README.md","Rakefile","lib/generators/active_record/observer/observer_generator.rb","lib/generators/active_record/observer/templates/observer.rb","lib/generators/rails/observer/USAGE","lib/generators/rails/observer/observer_generator.rb","lib/generators/test_unit/observer/observer_generator.rb","lib/generators/test_unit/observer/templates/unit_test.rb","lib/rails-observers.rb","lib/rails/observers/action_controller/caching.rb","lib/rails/observers/action_controller/caching/sweeping.rb","lib/rails/observers/active_model.rb","lib/rails/observers/active_model/active_model.rb","lib/rails/observers/active_model/observer_array.rb","lib/rails/observers/active_model/observing.rb","lib/rails/observers/activerecord/active_record.rb","lib/rails/observers/activerecord/base.rb","lib/rails/observers/activerecord/observer.rb","lib/rails/observers/railtie.rb","lib/rails/observers/version.rb","rails-observers.gemspec","rails-observers.gemspec.erb","test/configuration_test.rb","test/console_test.rb","test/fixtures/developers.yml","test/fixtures/minimalistics.yml","test/fixtures/topics.yml","test/generators/generators_test_helper.rb","test/generators/namespaced_generators_test.rb","test/generators/observer_generator_test.rb","test/helper.rb","test/isolation/abstract_unit.rb","test/lifecycle_test.rb","test/models/observers.rb","test/observer_array_test.rb","test/observing_test.rb","test/rake_test.rb","test/sweeper_test.rb","test/transaction_callbacks_test.rb"]
|
14
|
-
s.test_files = ["test/configuration_test.rb","test/console_test.rb","test/fixtures/developers.yml","test/fixtures/minimalistics.yml","test/fixtures/topics.yml","test/generators/generators_test_helper.rb","test/generators/namespaced_generators_test.rb","test/generators/observer_generator_test.rb","test/helper.rb","test/isolation/abstract_unit.rb","test/lifecycle_test.rb","test/models/observers.rb","test/observer_array_test.rb","test/observing_test.rb","test/rake_test.rb","test/sweeper_test.rb","test/transaction_callbacks_test.rb"]
|
15
|
-
s.executables = []
|
16
|
-
s.require_paths = ["lib"]
|
17
|
-
|
18
|
-
s.add_dependency 'activemodel', '~> 4.0'
|
19
|
-
|
20
|
-
s.add_development_dependency 'minitest', '>= 3'
|
21
|
-
s.add_development_dependency 'railties', '~> 4.0'
|
22
|
-
s.add_development_dependency 'activerecord', '~> 4.0'
|
23
|
-
s.add_development_dependency 'actionmailer', '~> 4.0'
|
24
|
-
s.add_development_dependency 'actionpack', '~> 4.0'
|
25
|
-
s.add_development_dependency 'sqlite3', '~> 1.3'
|
26
|
-
end
|
data/rails-observers.gemspec.erb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
require File.expand_path('../lib/rails/observers/version', __FILE__)
|
3
|
-
|
4
|
-
Gem::Specification.new do |s|
|
5
|
-
s.name = "rails-observers"
|
6
|
-
s.authors = ["Rafael Mendonça França", "Steve Klabnik"]
|
7
|
-
s.email = ["rafaelmfranca@gmail.com", "steve@steveklabnik.com"]
|
8
|
-
s.description = %q{Rails observer (removed from core in Rails 4.0)}
|
9
|
-
s.summary = %q{ActiveModel::Observer, ActiveRecord::Observer and ActionController::Caching::Sweeper extracted from Rails.}
|
10
|
-
s.homepage = "https://github.com/rails/rails-observers"
|
11
|
-
s.version = Rails::Observers::VERSION
|
12
|
-
|
13
|
-
s.files = [<%= files.map(&:inspect).join ',' %>]
|
14
|
-
s.test_files = [<%= test_files.map(&:inspect).join ',' %>]
|
15
|
-
s.executables = [<%= executables.map(&:inspect).join ',' %>]
|
16
|
-
s.require_paths = ["lib"]
|
17
|
-
|
18
|
-
s.add_dependency 'activemodel', '~> 4.0'
|
19
|
-
|
20
|
-
s.add_development_dependency 'minitest', '>= 3'
|
21
|
-
s.add_development_dependency 'railties', '~> 4.0'
|
22
|
-
s.add_development_dependency 'activerecord', '~> 4.0'
|
23
|
-
s.add_development_dependency 'actionmailer', '~> 4.0'
|
24
|
-
s.add_development_dependency 'actionpack', '~> 4.0'
|
25
|
-
s.add_development_dependency 'sqlite3', '~> 1.3'
|
26
|
-
end
|
data/test/configuration_test.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'isolation/abstract_unit'
|
2
|
-
require 'rails-observers'
|
3
|
-
|
4
|
-
class ConfigurationTest < ActiveSupport::TestCase
|
5
|
-
include ActiveSupport::Testing::Isolation
|
6
|
-
|
7
|
-
def setup
|
8
|
-
build_app
|
9
|
-
boot_rails
|
10
|
-
FileUtils.rm_rf("#{app_path}/config/environments")
|
11
|
-
end
|
12
|
-
|
13
|
-
def teardown
|
14
|
-
teardown_app
|
15
|
-
end
|
16
|
-
|
17
|
-
test "config.active_record.observers" do
|
18
|
-
add_to_config <<-RUBY
|
19
|
-
config.active_record.observers = :foo_observer
|
20
|
-
RUBY
|
21
|
-
|
22
|
-
app_file 'app/models/foo.rb', <<-RUBY
|
23
|
-
class Foo < ActiveRecord::Base
|
24
|
-
end
|
25
|
-
RUBY
|
26
|
-
|
27
|
-
app_file 'app/models/foo_observer.rb', <<-RUBY
|
28
|
-
class FooObserver < ActiveRecord::Observer
|
29
|
-
end
|
30
|
-
RUBY
|
31
|
-
|
32
|
-
require "#{app_path}/config/environment"
|
33
|
-
|
34
|
-
_ = ActiveRecord::Base
|
35
|
-
assert defined?(FooObserver)
|
36
|
-
end
|
37
|
-
end
|
data/test/console_test.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'isolation/abstract_unit'
|
2
|
-
require 'rails-observers'
|
3
|
-
|
4
|
-
class ConsoleTest < ActiveSupport::TestCase
|
5
|
-
include ActiveSupport::Testing::Isolation
|
6
|
-
|
7
|
-
def setup
|
8
|
-
build_app
|
9
|
-
boot_rails
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_app
|
14
|
-
end
|
15
|
-
|
16
|
-
def load_environment
|
17
|
-
require "#{rails_root}/config/environment"
|
18
|
-
Rails.application.sandbox = false
|
19
|
-
Rails.application.load_console
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_active_record_does_not_panic_when_referencing_an_observed_constant
|
23
|
-
add_to_config "config.active_record.observers = :user_observer"
|
24
|
-
|
25
|
-
app_file "app/models/user.rb", <<-MODEL
|
26
|
-
class User < ActiveRecord::Base
|
27
|
-
end
|
28
|
-
MODEL
|
29
|
-
|
30
|
-
app_file "app/models/user_observer.rb", <<-MODEL
|
31
|
-
class UserObserver < ActiveRecord::Observer
|
32
|
-
end
|
33
|
-
MODEL
|
34
|
-
|
35
|
-
load_environment
|
36
|
-
assert_nothing_raised { User }
|
37
|
-
end
|
38
|
-
end
|
data/test/fixtures/topics.yml
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
first:
|
2
|
-
id: 1
|
3
|
-
title: The First Topic
|
4
|
-
author_name: David
|
5
|
-
author_email_address: david@loudthinking.com
|
6
|
-
written_on: 2003-07-16t15:28:11.2233+01:00
|
7
|
-
last_read: 2004-04-15
|
8
|
-
bonus_time: 2005-01-30t15:28:00.00+01:00
|
9
|
-
content: Have a nice day
|
10
|
-
approved: false
|
11
|
-
replies_count: 1
|
12
|
-
|
13
|
-
second:
|
14
|
-
id: 2
|
15
|
-
title: The Second Topic of the day
|
16
|
-
author_name: Mary
|
17
|
-
written_on: 2004-07-15t15:28:00.0099+01:00
|
18
|
-
content: Have a nice day
|
19
|
-
approved: true
|
20
|
-
replies_count: 0
|
21
|
-
parent_id: 1
|
22
|
-
type: Reply
|
23
|
-
|
24
|
-
third:
|
25
|
-
id: 3
|
26
|
-
title: The Third Topic of the day
|
27
|
-
author_name: Carl
|
28
|
-
written_on: 2012-08-12t20:24:22.129346+00:00
|
29
|
-
content: I'm a troll
|
30
|
-
approved: true
|
31
|
-
replies_count: 1
|
32
|
-
|
33
|
-
fourth:
|
34
|
-
id: 4
|
35
|
-
title: The Fourth Topic of the day
|
36
|
-
author_name: Carl
|
37
|
-
written_on: 2006-07-15t15:28:00.0099+01:00
|
38
|
-
content: Why not?
|
39
|
-
approved: true
|
40
|
-
type: Reply
|
41
|
-
parent_id: 3
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
|
-
|
3
|
-
require 'fileutils'
|
4
|
-
|
5
|
-
require 'rails/all'
|
6
|
-
require 'rails/generators'
|
7
|
-
require 'rails/generators/test_case'
|
8
|
-
|
9
|
-
module TestApp
|
10
|
-
class Application < Rails::Application
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
# Call configure to load the settings from
|
15
|
-
# Rails.application.config.generators to Rails::Generators
|
16
|
-
Rails.application.load_generators
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'generators/generators_test_helper'
|
2
|
-
require 'generators/rails/observer/observer_generator'
|
3
|
-
|
4
|
-
class NamespacedObserverGeneratorTest < Rails::Generators::TestCase
|
5
|
-
tests Rails::Generators::ObserverGenerator
|
6
|
-
arguments %w(account)
|
7
|
-
destination File.expand_path("../../tmp", __FILE__)
|
8
|
-
|
9
|
-
def setup
|
10
|
-
super
|
11
|
-
prepare_destination
|
12
|
-
Rails::Generators.namespace = TestApp
|
13
|
-
end
|
14
|
-
|
15
|
-
def teardown
|
16
|
-
super
|
17
|
-
Rails::Generators.namespace = nil
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_invokes_default_orm
|
21
|
-
run_generator
|
22
|
-
assert_file "app/models/test_app/account_observer.rb", /module TestApp/, / class AccountObserver < ActiveRecord::Observer/
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_invokes_default_orm_with_class_path
|
26
|
-
run_generator ["admin/account"]
|
27
|
-
assert_file "app/models/test_app/admin/account_observer.rb", /module TestApp/, / class Admin::AccountObserver < ActiveRecord::Observer/
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_invokes_default_test_framework
|
31
|
-
run_generator
|
32
|
-
assert_file "test/unit/test_app/account_observer_test.rb", /module TestApp/, / class AccountObserverTest < ActiveSupport::TestCase/
|
33
|
-
end
|
34
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'generators/generators_test_helper'
|
2
|
-
require 'generators/rails/observer/observer_generator'
|
3
|
-
|
4
|
-
class ObserverGeneratorTest < Rails::Generators::TestCase
|
5
|
-
tests Rails::Generators::ObserverGenerator
|
6
|
-
destination File.expand_path("../../tmp", __FILE__)
|
7
|
-
arguments %w(account)
|
8
|
-
|
9
|
-
def setup
|
10
|
-
super
|
11
|
-
prepare_destination
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_invokes_default_orm
|
15
|
-
run_generator
|
16
|
-
assert_file "app/models/account_observer.rb", /class AccountObserver < ActiveRecord::Observer/
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_invokes_default_orm_with_class_path
|
20
|
-
run_generator ["admin/account"]
|
21
|
-
assert_file "app/models/admin/account_observer.rb", /class Admin::AccountObserver < ActiveRecord::Observer/
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_invokes_default_test_framework
|
25
|
-
run_generator
|
26
|
-
assert_file "test/unit/account_observer_test.rb", /class AccountObserverTest < ActiveSupport::TestCase/
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_logs_if_the_test_framework_cannot_be_found
|
30
|
-
content = run_generator ["account", "--test-framework=rspec"]
|
31
|
-
assert_match(/rspec \[not found\]/, content)
|
32
|
-
end
|
33
|
-
end
|
data/test/helper.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
|
-
require 'active_record'
|
3
|
-
|
4
|
-
require 'rails/observers/activerecord/active_record'
|
5
|
-
|
6
|
-
FIXTURES_ROOT = File.expand_path(File.dirname(__FILE__)) + "/fixtures"
|
7
|
-
|
8
|
-
class ActiveSupport::TestCase
|
9
|
-
include ActiveRecord::TestFixtures
|
10
|
-
|
11
|
-
self.fixture_path = FIXTURES_ROOT
|
12
|
-
self.use_instantiated_fixtures = false
|
13
|
-
self.use_transactional_fixtures = true
|
14
|
-
end
|
15
|
-
|
16
|
-
ActiveRecord::Base.configurations = { "test" => { adapter: 'sqlite3', database: ':memory:' } }
|
17
|
-
ActiveRecord::Base.establish_connection(:test)
|
18
|
-
|
19
|
-
ActiveRecord::Schema.verbose = false
|
20
|
-
ActiveRecord::Schema.define do
|
21
|
-
create_table :topics do |t|
|
22
|
-
t.string :title
|
23
|
-
t.string :author_name
|
24
|
-
t.string :author_email_address
|
25
|
-
t.datetime :written_on
|
26
|
-
t.time :bonus_time
|
27
|
-
t.date :last_read
|
28
|
-
t.text :content
|
29
|
-
t.text :important
|
30
|
-
t.boolean :approved, :default => true
|
31
|
-
t.integer :replies_count, :default => 0
|
32
|
-
t.integer :parent_id
|
33
|
-
t.string :parent_title
|
34
|
-
t.string :type
|
35
|
-
t.string :group
|
36
|
-
t.timestamps
|
37
|
-
end
|
38
|
-
|
39
|
-
create_table :comments do |t|
|
40
|
-
t.string :title
|
41
|
-
end
|
42
|
-
|
43
|
-
create_table :minimalistics do |t|
|
44
|
-
end
|
45
|
-
|
46
|
-
create_table :developers do |t|
|
47
|
-
t.string :name
|
48
|
-
t.integer :salary
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
class Topic < ActiveRecord::Base
|
53
|
-
has_many :replies, dependent: :destroy, foreign_key: "parent_id"
|
54
|
-
end
|
55
|
-
|
56
|
-
class Reply < Topic
|
57
|
-
belongs_to :topic, :foreign_key => "parent_id", :counter_cache => true
|
58
|
-
end
|
59
|
-
|
60
|
-
class Comment < ActiveRecord::Base
|
61
|
-
def self.lol
|
62
|
-
"lol"
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
class Developer < ActiveRecord::Base
|
67
|
-
end
|
68
|
-
|
69
|
-
class Minimalistic < ActiveRecord::Base
|
70
|
-
end
|
71
|
-
|
72
|
-
ActiveSupport::Deprecation.silence do
|
73
|
-
require 'active_record/test_case'
|
74
|
-
end
|
@@ -1,119 +0,0 @@
|
|
1
|
-
# Note:
|
2
|
-
# It is important to keep this file as light as possible
|
3
|
-
# the goal for tests that require this is to test booting up
|
4
|
-
# rails from an empty state, so anything added here could
|
5
|
-
# hide potential failures
|
6
|
-
#
|
7
|
-
# It is also good to know what is the bare minimum to get
|
8
|
-
# Rails booted up.
|
9
|
-
require 'fileutils'
|
10
|
-
|
11
|
-
require 'bundler/setup'
|
12
|
-
require 'minitest/autorun'
|
13
|
-
require 'active_support/test_case'
|
14
|
-
|
15
|
-
# These files do not require any others and are needed
|
16
|
-
# to run the tests
|
17
|
-
require "active_support/testing/isolation"
|
18
|
-
require "active_support/core_ext/kernel/reporting"
|
19
|
-
require 'tmpdir'
|
20
|
-
|
21
|
-
module TestHelpers
|
22
|
-
module Paths
|
23
|
-
def app_template_path
|
24
|
-
File.join Dir.tmpdir, 'app_template'
|
25
|
-
end
|
26
|
-
|
27
|
-
def tmp_path(*args)
|
28
|
-
@tmp_path ||= File.realpath(Dir.mktmpdir)
|
29
|
-
File.join(@tmp_path, *args)
|
30
|
-
end
|
31
|
-
|
32
|
-
def app_path(*args)
|
33
|
-
tmp_path(*%w[app] + args)
|
34
|
-
end
|
35
|
-
|
36
|
-
def rails_root
|
37
|
-
app_path
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
module Generation
|
42
|
-
# Build an application by invoking the generator and going through the whole stack.
|
43
|
-
def build_app(options = {})
|
44
|
-
@prev_rails_env = ENV['RAILS_ENV']
|
45
|
-
ENV['RAILS_ENV'] = 'development'
|
46
|
-
|
47
|
-
FileUtils.rm_rf(app_path)
|
48
|
-
FileUtils.cp_r(app_template_path, app_path)
|
49
|
-
|
50
|
-
# Delete the initializers unless requested
|
51
|
-
unless options[:initializers]
|
52
|
-
Dir["#{app_path}/config/initializers/*.rb"].each do |initializer|
|
53
|
-
File.delete(initializer)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
gemfile_path = "#{app_path}/Gemfile"
|
58
|
-
if options[:gemfile].blank? && File.exist?(gemfile_path)
|
59
|
-
File.delete gemfile_path
|
60
|
-
end
|
61
|
-
|
62
|
-
routes = File.read("#{app_path}/config/routes.rb")
|
63
|
-
if routes =~ /(\n\s*end\s*)\Z/
|
64
|
-
File.open("#{app_path}/config/routes.rb", 'w') do |f|
|
65
|
-
f.puts $` + "\nmatch ':controller(/:action(/:id))(.:format)', :via => :all\n" + $1
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
add_to_config <<-RUBY
|
70
|
-
config.secret_token = "3b7cd727ee24e8444053437c36cc66c4"
|
71
|
-
config.session_store :cookie_store, :key => "_myapp_session"
|
72
|
-
config.active_support.deprecation = :log
|
73
|
-
config.action_controller.allow_forgery_protection = false
|
74
|
-
config.eager_load = false
|
75
|
-
RUBY
|
76
|
-
end
|
77
|
-
|
78
|
-
def teardown_app
|
79
|
-
ENV['RAILS_ENV'] = @prev_rails_env if @prev_rails_env
|
80
|
-
end
|
81
|
-
|
82
|
-
def add_to_config(str)
|
83
|
-
environment = File.read("#{app_path}/config/application.rb")
|
84
|
-
if environment =~ /(\n\s*end\s*end\s*)\Z/
|
85
|
-
File.open("#{app_path}/config/application.rb", 'w') do |f|
|
86
|
-
f.puts $` + "\n#{str}\n" + $1
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
def app_file(path, contents)
|
92
|
-
FileUtils.mkdir_p File.dirname("#{app_path}/#{path}")
|
93
|
-
File.open("#{app_path}/#{path}", 'w') do |f|
|
94
|
-
f.puts contents
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
def boot_rails
|
99
|
-
require 'rubygems' unless defined? Gem
|
100
|
-
require 'bundler'
|
101
|
-
Bundler.setup
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
class ActiveSupport::TestCase
|
107
|
-
include TestHelpers::Paths
|
108
|
-
include TestHelpers::Generation
|
109
|
-
end
|
110
|
-
|
111
|
-
Module.new do
|
112
|
-
extend TestHelpers::Paths
|
113
|
-
|
114
|
-
# Build a rails app
|
115
|
-
FileUtils.rm_rf(app_template_path)
|
116
|
-
FileUtils.mkdir(app_template_path)
|
117
|
-
|
118
|
-
`rails new #{app_template_path} --skip-gemfile`
|
119
|
-
end
|