ar-octopus 0.0.26 → 0.0.27
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +9 -2
- data/ar-octopus.gemspec +70 -5
- data/lib/octopus/has_and_belongs_to_many_association.rb +1 -5
- data/lib/octopus/model.rb +6 -16
- data/lib/octopus/proxy.rb +1 -6
- data/lib/octopus/scope_proxy.rb +7 -10
- data/sample_app/.gitignore +4 -0
- data/sample_app/.rspec +1 -0
- data/sample_app/Gemfile +22 -0
- data/sample_app/Gemfile.lock +149 -0
- data/sample_app/README +3 -0
- data/sample_app/Rakefile +7 -0
- data/sample_app/app/controllers/application_controller.rb +4 -0
- data/sample_app/app/helpers/application_helper.rb +2 -0
- data/sample_app/app/models/item.rb +2 -0
- data/sample_app/app/models/user.rb +2 -0
- data/sample_app/app/views/layouts/application.html.erb +14 -0
- data/sample_app/autotest/discover.rb +2 -0
- data/sample_app/config.ru +4 -0
- data/sample_app/config/application.rb +46 -0
- data/sample_app/config/boot.rb +13 -0
- data/sample_app/config/cucumber.yml +8 -0
- data/sample_app/config/database.yml +25 -0
- data/sample_app/config/environment.rb +5 -0
- data/sample_app/config/environments/development.rb +19 -0
- data/sample_app/config/environments/production.rb +46 -0
- data/sample_app/config/environments/test.rb +32 -0
- data/sample_app/config/initializers/backtrace_silencers.rb +7 -0
- data/sample_app/config/initializers/inflections.rb +10 -0
- data/sample_app/config/initializers/mime_types.rb +5 -0
- data/sample_app/config/initializers/secret_token.rb +7 -0
- data/sample_app/config/initializers/session_store.rb +8 -0
- data/sample_app/config/locales/en.yml +5 -0
- data/sample_app/config/routes.rb +58 -0
- data/sample_app/config/shards.yml +28 -0
- data/sample_app/db/migrate/20100720172715_create_users.rb +15 -0
- data/sample_app/db/migrate/20100720172730_create_items.rb +16 -0
- data/sample_app/db/migrate/20100720210335_create_sample_users.rb +11 -0
- data/sample_app/db/schema.rb +29 -0
- data/sample_app/db/seeds.rb +16 -0
- data/sample_app/doc/README_FOR_APP +2 -0
- data/sample_app/features/migrate.feature +44 -0
- data/sample_app/features/seed.feature +15 -0
- data/sample_app/features/step_definitions/seeds_steps.rb +15 -0
- data/sample_app/features/step_definitions/web_steps.rb +219 -0
- data/sample_app/features/support/env.rb +65 -0
- data/sample_app/features/support/paths.rb +33 -0
- data/sample_app/lib/tasks/.gitkeep +0 -0
- data/sample_app/lib/tasks/cucumber.rake +53 -0
- data/sample_app/public/404.html +26 -0
- data/sample_app/public/422.html +26 -0
- data/sample_app/public/500.html +26 -0
- data/sample_app/public/favicon.ico +0 -0
- data/sample_app/public/images/rails.png +0 -0
- data/sample_app/public/index.html +279 -0
- data/sample_app/public/javascripts/application.js +2 -0
- data/sample_app/public/javascripts/controls.js +965 -0
- data/sample_app/public/javascripts/dragdrop.js +974 -0
- data/sample_app/public/javascripts/effects.js +1123 -0
- data/sample_app/public/javascripts/prototype.js +4874 -0
- data/sample_app/public/javascripts/rails.js +118 -0
- data/sample_app/public/robots.txt +5 -0
- data/sample_app/public/stylesheets/.gitkeep +0 -0
- data/sample_app/script/cucumber +10 -0
- data/sample_app/script/rails +6 -0
- data/sample_app/spec/models/item_spec.rb +5 -0
- data/sample_app/spec/models/user_spec.rb +5 -0
- data/sample_app/spec/spec_helper.rb +27 -0
- data/sample_app/test/performance/browsing_test.rb +9 -0
- data/sample_app/test/test_helper.rb +13 -0
- data/sample_app/vendor/plugins/.gitkeep +0 -0
- data/spec/config/shards.yml +16 -18
- data/spec/database_models.rb +5 -0
- data/spec/octopus/model_spec.rb +77 -14
- data/spec/octopus/proxy_spec.rb +2 -0
- data/spec/octopus/replication_specs.rb +5 -0
- metadata +72 -8
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
2
|
+
$LOAD_PATH << (File.dirname(__FILE__) + '/spec')
|
2
3
|
require 'rubygems'
|
3
4
|
require 'rake'
|
4
5
|
require "yaml"
|
@@ -30,8 +31,8 @@ begin
|
|
30
31
|
gem.add_development_dependency "mysql", ">= 2.8.1"
|
31
32
|
gem.add_development_dependency "pg", ">= 0.9.0"
|
32
33
|
gem.add_development_dependency "sqlite3-ruby", ">= 1.3.1"
|
33
|
-
gem.add_dependency('activerecord', '>= 3
|
34
|
-
gem.version = "0.0.
|
34
|
+
gem.add_dependency('activerecord', '>= 2.3')
|
35
|
+
gem.version = "0.0.27"
|
35
36
|
end
|
36
37
|
Jeweler::GemcutterTasks.new
|
37
38
|
rescue LoadError
|
@@ -85,6 +86,7 @@ namespace :db do
|
|
85
86
|
end
|
86
87
|
|
87
88
|
%x( dropdb -U #{postgres_user} octopus_shard1 )
|
89
|
+
%x(rm /tmp/database.sqlite3)
|
88
90
|
end
|
89
91
|
|
90
92
|
desc 'Create tables on tests databases'
|
@@ -155,6 +157,11 @@ namespace :db do
|
|
155
157
|
u.string :commentable_type
|
156
158
|
u.integer :commentable_id
|
157
159
|
end
|
160
|
+
|
161
|
+
ActiveRecord::Base.using(shard_symbol).connection.create_table(:parts) do |u|
|
162
|
+
u.string :name
|
163
|
+
u.integer :item_id
|
164
|
+
end
|
158
165
|
end
|
159
166
|
end
|
160
167
|
|
data/ar-octopus.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ar-octopus}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.27"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Thiago Pradi", "Mike Perham"]
|
12
|
-
s.date = %q{2010-07-
|
12
|
+
s.date = %q{2010-07-23}
|
13
13
|
s.description = %q{This gem allows you to use sharded databases with ActiveRecord. this also provides a interface for replication and for running migrations with multiples shards.}
|
14
14
|
s.email = %q{tchandy@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -39,6 +39,71 @@ Gem::Specification.new do |s|
|
|
39
39
|
"lib/octopus/rails3/persistence.rb",
|
40
40
|
"lib/octopus/scope_proxy.rb",
|
41
41
|
"rails/init.rb",
|
42
|
+
"sample_app/.gitignore",
|
43
|
+
"sample_app/.rspec",
|
44
|
+
"sample_app/Gemfile",
|
45
|
+
"sample_app/Gemfile.lock",
|
46
|
+
"sample_app/README",
|
47
|
+
"sample_app/Rakefile",
|
48
|
+
"sample_app/app/controllers/application_controller.rb",
|
49
|
+
"sample_app/app/helpers/application_helper.rb",
|
50
|
+
"sample_app/app/models/item.rb",
|
51
|
+
"sample_app/app/models/user.rb",
|
52
|
+
"sample_app/app/views/layouts/application.html.erb",
|
53
|
+
"sample_app/autotest/discover.rb",
|
54
|
+
"sample_app/config.ru",
|
55
|
+
"sample_app/config/application.rb",
|
56
|
+
"sample_app/config/boot.rb",
|
57
|
+
"sample_app/config/cucumber.yml",
|
58
|
+
"sample_app/config/database.yml",
|
59
|
+
"sample_app/config/environment.rb",
|
60
|
+
"sample_app/config/environments/development.rb",
|
61
|
+
"sample_app/config/environments/production.rb",
|
62
|
+
"sample_app/config/environments/test.rb",
|
63
|
+
"sample_app/config/initializers/backtrace_silencers.rb",
|
64
|
+
"sample_app/config/initializers/inflections.rb",
|
65
|
+
"sample_app/config/initializers/mime_types.rb",
|
66
|
+
"sample_app/config/initializers/secret_token.rb",
|
67
|
+
"sample_app/config/initializers/session_store.rb",
|
68
|
+
"sample_app/config/locales/en.yml",
|
69
|
+
"sample_app/config/routes.rb",
|
70
|
+
"sample_app/config/shards.yml",
|
71
|
+
"sample_app/db/migrate/20100720172715_create_users.rb",
|
72
|
+
"sample_app/db/migrate/20100720172730_create_items.rb",
|
73
|
+
"sample_app/db/migrate/20100720210335_create_sample_users.rb",
|
74
|
+
"sample_app/db/schema.rb",
|
75
|
+
"sample_app/db/seeds.rb",
|
76
|
+
"sample_app/doc/README_FOR_APP",
|
77
|
+
"sample_app/features/migrate.feature",
|
78
|
+
"sample_app/features/seed.feature",
|
79
|
+
"sample_app/features/step_definitions/seeds_steps.rb",
|
80
|
+
"sample_app/features/step_definitions/web_steps.rb",
|
81
|
+
"sample_app/features/support/env.rb",
|
82
|
+
"sample_app/features/support/paths.rb",
|
83
|
+
"sample_app/lib/tasks/.gitkeep",
|
84
|
+
"sample_app/lib/tasks/cucumber.rake",
|
85
|
+
"sample_app/public/404.html",
|
86
|
+
"sample_app/public/422.html",
|
87
|
+
"sample_app/public/500.html",
|
88
|
+
"sample_app/public/favicon.ico",
|
89
|
+
"sample_app/public/images/rails.png",
|
90
|
+
"sample_app/public/index.html",
|
91
|
+
"sample_app/public/javascripts/application.js",
|
92
|
+
"sample_app/public/javascripts/controls.js",
|
93
|
+
"sample_app/public/javascripts/dragdrop.js",
|
94
|
+
"sample_app/public/javascripts/effects.js",
|
95
|
+
"sample_app/public/javascripts/prototype.js",
|
96
|
+
"sample_app/public/javascripts/rails.js",
|
97
|
+
"sample_app/public/robots.txt",
|
98
|
+
"sample_app/public/stylesheets/.gitkeep",
|
99
|
+
"sample_app/script/cucumber",
|
100
|
+
"sample_app/script/rails",
|
101
|
+
"sample_app/spec/models/item_spec.rb",
|
102
|
+
"sample_app/spec/models/user_spec.rb",
|
103
|
+
"sample_app/spec/spec_helper.rb",
|
104
|
+
"sample_app/test/performance/browsing_test.rb",
|
105
|
+
"sample_app/test/test_helper.rb",
|
106
|
+
"sample_app/vendor/plugins/.gitkeep",
|
42
107
|
"spec/config/shards.yml",
|
43
108
|
"spec/database_connection.rb",
|
44
109
|
"spec/database_models.rb",
|
@@ -109,20 +174,20 @@ Gem::Specification.new do |s|
|
|
109
174
|
s.add_development_dependency(%q<mysql>, [">= 2.8.1"])
|
110
175
|
s.add_development_dependency(%q<pg>, [">= 0.9.0"])
|
111
176
|
s.add_development_dependency(%q<sqlite3-ruby>, [">= 1.3.1"])
|
112
|
-
s.add_runtime_dependency(%q<activerecord>, [">= 3
|
177
|
+
s.add_runtime_dependency(%q<activerecord>, [">= 2.3"])
|
113
178
|
else
|
114
179
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
115
180
|
s.add_dependency(%q<mysql>, [">= 2.8.1"])
|
116
181
|
s.add_dependency(%q<pg>, [">= 0.9.0"])
|
117
182
|
s.add_dependency(%q<sqlite3-ruby>, [">= 1.3.1"])
|
118
|
-
s.add_dependency(%q<activerecord>, [">= 3
|
183
|
+
s.add_dependency(%q<activerecord>, [">= 2.3"])
|
119
184
|
end
|
120
185
|
else
|
121
186
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
122
187
|
s.add_dependency(%q<mysql>, [">= 2.8.1"])
|
123
188
|
s.add_dependency(%q<pg>, [">= 0.9.0"])
|
124
189
|
s.add_dependency(%q<sqlite3-ruby>, [">= 1.3.1"])
|
125
|
-
s.add_dependency(%q<activerecord>, [">= 3
|
190
|
+
s.add_dependency(%q<activerecord>, [">= 2.3"])
|
126
191
|
end
|
127
192
|
end
|
128
193
|
|
@@ -4,11 +4,7 @@ module Octopus::HasAndBelongsToManyAssociation
|
|
4
4
|
alias_method_chain :insert_record, :octopus
|
5
5
|
end
|
6
6
|
end
|
7
|
-
|
8
|
-
def should_wrap_the_connection?
|
9
|
-
@owner.respond_to?(:current_shard) && @owner.current_shard != nil
|
10
|
-
end
|
11
|
-
|
7
|
+
|
12
8
|
def insert_record_with_octopus(record, force = true, validate = true)
|
13
9
|
if should_wrap_the_connection?
|
14
10
|
Octopus.using(@owner.current_shard) { insert_record_without_octopus(record, force, validate) }
|
data/lib/octopus/model.rb
CHANGED
@@ -3,10 +3,6 @@ module Octopus::Model
|
|
3
3
|
base.send(:include, InstanceMethods)
|
4
4
|
base.extend(ClassMethods)
|
5
5
|
base.hijack_connection()
|
6
|
-
|
7
|
-
class << base
|
8
|
-
alias_method_chain :connection, :octopus
|
9
|
-
end
|
10
6
|
end
|
11
7
|
|
12
8
|
module SharedMethods
|
@@ -50,19 +46,13 @@ module Octopus::Model
|
|
50
46
|
Thread.current[:connection_proxy] ||= Octopus::Proxy.new(Octopus.config())
|
51
47
|
end
|
52
48
|
|
53
|
-
def self.
|
54
|
-
if defined?(::Rails)
|
55
|
-
|
56
|
-
if Octopus.enviroments.include?(Rails.env.to_s)
|
57
|
-
self.connection_proxy().current_model = self
|
58
|
-
return self.connection_proxy()
|
59
|
-
else
|
60
|
-
self.connection_without_octopus()
|
61
|
-
end
|
62
|
-
else
|
63
|
-
self.connection_proxy().current_model = self
|
64
|
-
return self.connection_proxy()
|
49
|
+
def self.connection()
|
50
|
+
if defined?(::Rails) && Octopus.config() && !Octopus.enviroments.include?(Rails.env.to_s)
|
51
|
+
return super
|
65
52
|
end
|
53
|
+
|
54
|
+
self.connection_proxy().current_model = self
|
55
|
+
self.connection_proxy()
|
66
56
|
end
|
67
57
|
end
|
68
58
|
end
|
data/lib/octopus/proxy.rb
CHANGED
@@ -12,12 +12,7 @@ class Octopus::Proxy
|
|
12
12
|
@shards[:master] = ActiveRecord::Base.connection_pool()
|
13
13
|
@current_shard = :master
|
14
14
|
|
15
|
-
if !config.nil?
|
16
|
-
shards_config = config[Rails.env().to_s]["shards"]
|
17
|
-
elsif !config.nil?
|
18
|
-
shards_config = config["shards"]
|
19
|
-
end
|
20
|
-
|
15
|
+
shards_config = config[Octopus.rails_env()] if !config.nil?
|
21
16
|
shards_config ||= []
|
22
17
|
|
23
18
|
shards_config.each do |key, value|
|
data/lib/octopus/scope_proxy.rb
CHANGED
@@ -13,14 +13,9 @@ class Octopus::ScopeProxy
|
|
13
13
|
|
14
14
|
# Transaction Method send all queries to a specified shard.
|
15
15
|
def transaction(options = {}, &block)
|
16
|
-
@klass.connection()
|
17
|
-
|
18
|
-
|
19
|
-
begin
|
20
|
-
@klass.connection().transaction(options, &block)
|
21
|
-
ensure
|
22
|
-
@klass.connection().block = false
|
23
|
-
end
|
16
|
+
@klass.connection.run_queries_on_shard(@shard) do
|
17
|
+
@klass = @klass.connection().transaction(options, &block)
|
18
|
+
end
|
24
19
|
end
|
25
20
|
|
26
21
|
def connection
|
@@ -29,8 +24,10 @@ class Octopus::ScopeProxy
|
|
29
24
|
end
|
30
25
|
|
31
26
|
def method_missing(method, *args, &block)
|
32
|
-
@klass.connection()
|
33
|
-
|
27
|
+
@klass.connection.run_queries_on_shard(@shard) do
|
28
|
+
@klass = @klass.send(method, *args, &block)
|
29
|
+
end
|
30
|
+
|
34
31
|
return @klass if @klass.is_a?(ActiveRecord::Base) or @klass.is_a?(Array) or @klass.is_a?(Fixnum) or @klass.nil?
|
35
32
|
return self
|
36
33
|
end
|
data/sample_app/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/sample_app/Gemfile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
source 'http://rubygems.org'
|
2
|
+
|
3
|
+
gem 'rails', '3.0.0.beta4'
|
4
|
+
|
5
|
+
# Bundle edge Rails instead:
|
6
|
+
# gem 'rails', :git => 'git://github.com/rails/rails.git'
|
7
|
+
|
8
|
+
gem 'sqlite3-ruby', :require => 'sqlite3'
|
9
|
+
|
10
|
+
gem 'ar-octopus', :git => 'git://github.com/tchandy/octopus.git', :require => "octopus"
|
11
|
+
|
12
|
+
group :test do
|
13
|
+
gem 'capybara'
|
14
|
+
gem 'database_cleaner'
|
15
|
+
gem 'cucumber-rails'
|
16
|
+
gem 'cucumber'
|
17
|
+
gem 'spork'
|
18
|
+
gem 'launchy'
|
19
|
+
gem "rspec-rails", ">= 2.0.0.beta.16"
|
20
|
+
gem 'ruby-debug'
|
21
|
+
gem "aruba"
|
22
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
GIT
|
2
|
+
remote: git://github.com/tchandy/octopus.git
|
3
|
+
revision: 65b5bcf
|
4
|
+
specs:
|
5
|
+
ar-octopus (0.0.26)
|
6
|
+
activerecord (>= 3.0.0beta)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: http://rubygems.org/
|
10
|
+
specs:
|
11
|
+
abstract (1.0.0)
|
12
|
+
actionmailer (3.0.0.beta4)
|
13
|
+
actionpack (= 3.0.0.beta4)
|
14
|
+
mail (~> 2.2.3)
|
15
|
+
actionpack (3.0.0.beta4)
|
16
|
+
activemodel (= 3.0.0.beta4)
|
17
|
+
activesupport (= 3.0.0.beta4)
|
18
|
+
builder (~> 2.1.2)
|
19
|
+
erubis (~> 2.6.5)
|
20
|
+
i18n (~> 0.4.1)
|
21
|
+
rack (~> 1.1.0)
|
22
|
+
rack-mount (~> 0.6.3)
|
23
|
+
rack-test (~> 0.5.4)
|
24
|
+
tzinfo (~> 0.3.16)
|
25
|
+
activemodel (3.0.0.beta4)
|
26
|
+
activesupport (= 3.0.0.beta4)
|
27
|
+
builder (~> 2.1.2)
|
28
|
+
i18n (~> 0.4.1)
|
29
|
+
activerecord (3.0.0.beta4)
|
30
|
+
activemodel (= 3.0.0.beta4)
|
31
|
+
activesupport (= 3.0.0.beta4)
|
32
|
+
arel (~> 0.4.0)
|
33
|
+
tzinfo (~> 0.3.16)
|
34
|
+
activeresource (3.0.0.beta4)
|
35
|
+
activemodel (= 3.0.0.beta4)
|
36
|
+
activesupport (= 3.0.0.beta4)
|
37
|
+
activesupport (3.0.0.beta4)
|
38
|
+
arel (0.4.0)
|
39
|
+
activesupport (>= 3.0.0.beta)
|
40
|
+
aruba (0.2.1)
|
41
|
+
builder (2.1.2)
|
42
|
+
capybara (0.3.9)
|
43
|
+
culerity (>= 0.2.4)
|
44
|
+
mime-types (>= 1.16)
|
45
|
+
nokogiri (>= 1.3.3)
|
46
|
+
rack (>= 1.0.0)
|
47
|
+
rack-test (>= 0.5.4)
|
48
|
+
selenium-webdriver (>= 0.0.3)
|
49
|
+
columnize (0.3.1)
|
50
|
+
configuration (1.1.0)
|
51
|
+
cucumber (0.8.5)
|
52
|
+
builder (~> 2.1.2)
|
53
|
+
diff-lcs (~> 1.1.2)
|
54
|
+
gherkin (~> 2.1.4)
|
55
|
+
json_pure (~> 1.4.3)
|
56
|
+
term-ansicolor (~> 1.0.4)
|
57
|
+
cucumber-rails (0.3.2)
|
58
|
+
cucumber (>= 0.8.0)
|
59
|
+
culerity (0.2.10)
|
60
|
+
database_cleaner (0.5.2)
|
61
|
+
diff-lcs (1.1.2)
|
62
|
+
erubis (2.6.6)
|
63
|
+
abstract (>= 1.0.0)
|
64
|
+
ffi (0.6.3)
|
65
|
+
rake (>= 0.8.7)
|
66
|
+
gherkin (2.1.5)
|
67
|
+
trollop (~> 1.16.2)
|
68
|
+
i18n (0.4.1)
|
69
|
+
json_pure (1.4.3)
|
70
|
+
launchy (0.3.7)
|
71
|
+
configuration (>= 0.0.5)
|
72
|
+
rake (>= 0.8.1)
|
73
|
+
linecache (0.43)
|
74
|
+
mail (2.2.5)
|
75
|
+
activesupport (>= 2.3.6)
|
76
|
+
mime-types
|
77
|
+
treetop (>= 1.4.5)
|
78
|
+
mime-types (1.16)
|
79
|
+
nokogiri (1.4.2)
|
80
|
+
polyglot (0.3.1)
|
81
|
+
rack (1.1.0)
|
82
|
+
rack-mount (0.6.9)
|
83
|
+
rack (>= 1.0.0)
|
84
|
+
rack-test (0.5.4)
|
85
|
+
rack (>= 1.0)
|
86
|
+
rails (3.0.0.beta4)
|
87
|
+
actionmailer (= 3.0.0.beta4)
|
88
|
+
actionpack (= 3.0.0.beta4)
|
89
|
+
activerecord (= 3.0.0.beta4)
|
90
|
+
activeresource (= 3.0.0.beta4)
|
91
|
+
activesupport (= 3.0.0.beta4)
|
92
|
+
bundler (>= 0.9.26)
|
93
|
+
railties (= 3.0.0.beta4)
|
94
|
+
railties (3.0.0.beta4)
|
95
|
+
actionpack (= 3.0.0.beta4)
|
96
|
+
activesupport (= 3.0.0.beta4)
|
97
|
+
rake (>= 0.8.3)
|
98
|
+
thor (~> 0.13.6)
|
99
|
+
rake (0.8.7)
|
100
|
+
rspec (2.0.0.beta.18)
|
101
|
+
rspec-core (= 2.0.0.beta.18)
|
102
|
+
rspec-expectations (= 2.0.0.beta.18)
|
103
|
+
rspec-mocks (= 2.0.0.beta.18)
|
104
|
+
rspec-core (2.0.0.beta.18)
|
105
|
+
rspec-expectations (2.0.0.beta.18)
|
106
|
+
diff-lcs (>= 1.1.2)
|
107
|
+
rspec-mocks (2.0.0.beta.18)
|
108
|
+
rspec-rails (2.0.0.beta.18)
|
109
|
+
rspec (>= 2.0.0.beta.14)
|
110
|
+
webrat (>= 0.7.0)
|
111
|
+
ruby-debug (0.10.3)
|
112
|
+
columnize (>= 0.1)
|
113
|
+
ruby-debug-base (~> 0.10.3.0)
|
114
|
+
ruby-debug-base (0.10.3)
|
115
|
+
linecache (>= 0.3)
|
116
|
+
rubyzip (0.9.4)
|
117
|
+
selenium-webdriver (0.0.26)
|
118
|
+
ffi (>= 0.6.1)
|
119
|
+
json_pure
|
120
|
+
rubyzip
|
121
|
+
spork (0.8.4)
|
122
|
+
sqlite3-ruby (1.3.1)
|
123
|
+
term-ansicolor (1.0.5)
|
124
|
+
thor (0.13.8)
|
125
|
+
treetop (1.4.8)
|
126
|
+
polyglot (>= 0.3.1)
|
127
|
+
trollop (1.16.2)
|
128
|
+
tzinfo (0.3.22)
|
129
|
+
webrat (0.7.1)
|
130
|
+
nokogiri (>= 1.2.0)
|
131
|
+
rack (>= 1.0)
|
132
|
+
rack-test (>= 0.5.3)
|
133
|
+
|
134
|
+
PLATFORMS
|
135
|
+
ruby
|
136
|
+
|
137
|
+
DEPENDENCIES
|
138
|
+
ar-octopus!
|
139
|
+
aruba
|
140
|
+
capybara
|
141
|
+
cucumber
|
142
|
+
cucumber-rails
|
143
|
+
database_cleaner
|
144
|
+
launchy
|
145
|
+
rails (= 3.0.0.beta4)
|
146
|
+
rspec-rails (>= 2.0.0.beta.16)
|
147
|
+
ruby-debug
|
148
|
+
spork
|
149
|
+
sqlite3-ruby
|
data/sample_app/README
ADDED
data/sample_app/Rakefile
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
2
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
3
|
+
|
4
|
+
require File.expand_path('../config/application', __FILE__)
|
5
|
+
require 'rake'
|
6
|
+
|
7
|
+
Rails::Application.load_tasks
|