wagn 1.13.0.pre → 1.13.0.pre1
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/VERSION +1 -1
- data/app/controllers/card_controller.rb +4 -2
- data/db/bootstrap/card_references.yml +443 -408
- data/db/bootstrap/card_revisions.yml +1025 -1116
- data/db/bootstrap/cards.yml +2168 -2151
- data/db/migrate_cards/20140512155840_add_script_cards.rb +1 -0
- data/features/step_definitions/wagn_steps.rb +16 -3
- data/features/watch.feature +1 -1
- data/lib/card/content.rb +1 -1
- data/lib/card/format.rb +6 -4
- data/lib/card/generators/card_migration/USAGE +1 -1
- data/lib/card/mailer.rb +2 -1
- data/lib/card/mailer/confirmation_email.html.erb +6 -2
- data/lib/wagn/all.rb +0 -8
- data/lib/wagn/application.rb +29 -19
- data/lib/wagn/commands.rb +104 -2
- data/{config → lib/wagn/config}/environments/cucumber.rb +0 -0
- data/{config → lib/wagn/config}/environments/development.rb +0 -0
- data/{config → lib/wagn/config}/environments/production.rb +0 -0
- data/{config → lib/wagn/config}/environments/profile.rb +0 -0
- data/{config → lib/wagn/config}/environments/test.rb +0 -0
- data/{config → lib/wagn/config}/initializers/01_init_ruby_extensions.rb +0 -0
- data/{config → lib/wagn/config}/initializers/airbrake.rb +0 -1
- data/{config → lib/wagn/config}/initializers/inflections.rb +0 -0
- data/{config → lib/wagn/config}/initializers/mime_types.rb +0 -0
- data/{config → lib/wagn/config}/initializers/notification.rb +0 -0
- data/{config → lib/wagn/config}/initializers/recaptcha.rb +0 -0
- data/{config → lib/wagn/config}/initializers/secret_token.rb +0 -0
- data/{config → lib/wagn/config}/initializers/session_store.rb +0 -0
- data/{config → lib/wagn/config}/initializers/uuid_state_file.rb +0 -0
- data/lib/wagn/generators/wagn/USAGE +5 -4
- data/lib/wagn/generators/wagn/templates/Gemfile +67 -2
- data/lib/wagn/generators/wagn/templates/config/application.rb +1 -1
- data/lib/wagn/generators/wagn/templates/config/cucumber.yml +1 -0
- data/lib/wagn/generators/wagn/templates/config/databases/frontbase.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/ibm_db.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/jdbc.yml +5 -3
- data/lib/wagn/generators/wagn/templates/config/databases/jdbcmysql.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/jdbcpostgresql.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/jdbcsqlite3.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/mysql.yml +5 -10
- data/lib/wagn/generators/wagn/templates/config/databases/oracle.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/postgresql.yml +4 -15
- data/lib/wagn/generators/wagn/templates/config/databases/sqlite3.yml +4 -6
- data/lib/wagn/generators/wagn/templates/rspec +5 -0
- data/lib/wagn/generators/wagn/wagn_generator.rb +84 -1
- data/lib/wagn/mods_spec_helper.rb +66 -0
- data/lib/wagn/tasks/db.rake +2 -1
- data/lib/wagn/tasks/wagn.rake +5 -1
- data/lib/wagn/wagn_spec_helper.rb +49 -0
- data/mods/core/sets/all/content.rb +3 -3
- data/mods/core/sets/all/phases.rb +1 -2
- data/mods/standard/sets/all/attach.rb +1 -1
- data/mods/standard/sets/all/comment.rb +3 -3
- data/mods/standard/sets/all/rich_html.rb +6 -7
- data/mods/standard/sets/right/account.rb +14 -5
- data/mods/standard/sets/rstar/rules.rb +17 -4
- data/mods/standard/sets/self/signin.rb +2 -2
- data/mods/standard/sets/type/pointer.rb +1 -3
- data/mods/standard/sets/type/scss.rb +1 -1
- data/mods/standard/sets/type/signup.rb +33 -12
- data/mods/standard/sets/type/user.rb +1 -1
- data/spec/javascripts/support/jasmine_runner.rb +1 -1
- data/spec/mods/standard/sets/all/base_spec.rb +4 -0
- data/spec/mods/standard/sets/type/signup_spec.rb +52 -15
- data/spec/spec_helper.rb +12 -53
- data/test/fixtures/card_references.yml +688 -653
- data/test/fixtures/card_revisions.yml +1741 -1832
- data/test/fixtures/cards.yml +3484 -3467
- metadata +20 -21
- data/Gemfile +0 -77
- data/config/application.rb +0 -15
- data/config/boot.rb +0 -8
- data/config/environment.rb +0 -8
- data/lib/wagn/generators/wagn/templates/config/database.yml +0 -35
@@ -61,6 +61,7 @@ class AddScriptCards < ActiveRecord::Migration
|
|
61
61
|
default_rule_ending = "#{ Card[:right].name }+#{ Card[ :default ].name }"
|
62
62
|
Card.create! :name=>'*machine output', :codename=>:machine_output
|
63
63
|
Card.create! :name=>"*machine output+#{default_rule_ending}", :type_id=>Card::FileID
|
64
|
+
Card.create! :name=>"*machine output+#{ Card[:right].name}+#{Card[:read].name}", :content=>'_left'
|
64
65
|
Card.create! :name=>'*machine input', :codename=>:machine_input
|
65
66
|
Card.create! :name=>"*machine input+#{default_rule_ending}", :type_id=>Card::PointerID
|
66
67
|
|
@@ -2,7 +2,12 @@
|
|
2
2
|
require 'uri'
|
3
3
|
require 'cgi'
|
4
4
|
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
|
5
|
-
|
5
|
+
|
6
|
+
if RUBY_VERSION =~ /^2/
|
7
|
+
require 'byebug'
|
8
|
+
else
|
9
|
+
require 'debugger'
|
10
|
+
end
|
6
11
|
|
7
12
|
|
8
13
|
Given /^site simulates setup need$/ do
|
@@ -134,7 +139,11 @@ Then /what/ do
|
|
134
139
|
end
|
135
140
|
|
136
141
|
Then /debug/ do
|
137
|
-
|
142
|
+
if RUBY_VERSION =~ /^2/
|
143
|
+
byebug
|
144
|
+
else
|
145
|
+
debugger
|
146
|
+
end
|
138
147
|
nil
|
139
148
|
end
|
140
149
|
|
@@ -200,7 +209,11 @@ end
|
|
200
209
|
|
201
210
|
Then /^In (.*) I should see "([^\"]*)"$/ do |section, text|
|
202
211
|
within scope_of(section) do
|
203
|
-
|
212
|
+
if text.index('|')
|
213
|
+
text.split('|').any? {|t| have_content(t)}.should be
|
214
|
+
else
|
215
|
+
page.should have_content(text)
|
216
|
+
end
|
204
217
|
end
|
205
218
|
end
|
206
219
|
|
data/features/watch.feature
CHANGED
@@ -17,7 +17,7 @@ Feature: Watch interface
|
|
17
17
|
When I go to the homepage
|
18
18
|
And I hover over the main menu
|
19
19
|
And In the main card menu I click "follow"
|
20
|
-
Then In the main card menu I should see "unfollow"
|
20
|
+
Then In the main card menu I should see "following|unfollow"
|
21
21
|
# assumes focus still on that link. otherwise "following"
|
22
22
|
# selenium behavior not totally consistent here.
|
23
23
|
And the card Home+*watchers should contain "Joe User"
|
data/lib/card/content.rb
CHANGED
data/lib/card/format.rb
CHANGED
@@ -352,11 +352,11 @@ class Card
|
|
352
352
|
|
353
353
|
def process_content_object content=nil, opts={}
|
354
354
|
return content unless card
|
355
|
-
content = card.content if content.
|
355
|
+
content = card.content if content.nil?
|
356
356
|
|
357
357
|
obj_content = Card::Content===content ? content : Card::Content.new( content, format=self )
|
358
358
|
|
359
|
-
card.update_references( obj_content, true ) if card.references_expired # I thik we need this
|
359
|
+
card.update_references( obj_content, true ) if card.references_expired # I thik we need this generalized
|
360
360
|
|
361
361
|
obj_content.process_content_object do |chunk_opts|
|
362
362
|
prepare_nest chunk_opts.merge(opts) { yield }
|
@@ -483,9 +483,10 @@ class Card
|
|
483
483
|
end
|
484
484
|
|
485
485
|
def nest nested_card, opts={}
|
486
|
+
#ActiveSupport::Notifications.instrument('wagn', message: "nest: #{nested_card.name}, #{opts}") do
|
486
487
|
opts.delete_if { |k,v| v.nil? }
|
487
488
|
opts.reverse_merge! inclusion_defaults
|
488
|
-
|
489
|
+
|
489
490
|
sub = subformat nested_card
|
490
491
|
sub.inclusion_opts = opts[:items] ? opts[:items].clone : {}
|
491
492
|
|
@@ -506,8 +507,9 @@ class Card
|
|
506
507
|
when @mode == :closed ; !nested_card.known? ? :closed_missing : :closed_content
|
507
508
|
else ; view
|
508
509
|
end
|
509
|
-
|
510
|
+
|
510
511
|
sub.render view, opts
|
512
|
+
#end
|
511
513
|
end
|
512
514
|
|
513
515
|
def get_inclusion_content cardname
|
data/lib/card/mailer.rb
CHANGED
@@ -15,7 +15,8 @@ class Card
|
|
15
15
|
|
16
16
|
def confirmation_email account
|
17
17
|
@site = Card.setting :title
|
18
|
-
@
|
18
|
+
@token = account.token
|
19
|
+
@link = wagn_url "/update/#{ account.left.cardname.url_key }?token=#{ @token }"
|
19
20
|
@expiry = Wagn.config.token_expiry
|
20
21
|
|
21
22
|
confirm_from = token_emails_from(account)
|
@@ -2,7 +2,11 @@
|
|
2
2
|
<html>
|
3
3
|
<body style="text-align:center">
|
4
4
|
<h1>Thank you for signing up with <%= @site %></h1>
|
5
|
-
|
6
|
-
|
5
|
+
<%- if @token %>
|
6
|
+
<div>Please <a href="<%= @link %>">follow this link</a> to verify this email address and activate your account.</div>
|
7
|
+
<div>(link will remain valid for <%= @expiry / 1.day %> days)</div>
|
8
|
+
<%- else %>
|
9
|
+
<div>You will receive further notification when your account is approved</div>
|
10
|
+
<%- end %>
|
7
11
|
</body>
|
8
12
|
</html>
|
data/lib/wagn/all.rb
CHANGED
@@ -1,13 +1,5 @@
|
|
1
1
|
require 'rails/all'
|
2
2
|
|
3
|
-
if Rails.env.development?
|
4
|
-
if $LOAD_PATH.find { |path| File.exists? "#{path}/wagn/dev.rb" }
|
5
|
-
require 'wagn/dev'
|
6
|
-
else
|
7
|
-
puts "WARNING: the gem wagn-dev is strongly recommended when running wagn in development mode but is not found"
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
3
|
require 'htmlentities'
|
12
4
|
require 'recaptcha'
|
13
5
|
require 'airbrake'
|
data/lib/wagn/application.rb
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
require 'wagn/all'
|
4
4
|
require 'active_support/core_ext/numeric/time'
|
5
|
-
|
6
5
|
if defined?(Bundler)
|
7
6
|
# If you precompile assets before deploying to production, use this line
|
8
7
|
Bundler.require *Rails.groups(:assets => %w(development test))
|
@@ -14,6 +13,20 @@ end
|
|
14
13
|
module Wagn
|
15
14
|
class Application < Rails::Application
|
16
15
|
|
16
|
+
initializer :load_wagn_environment_config, :before => :load_environment_config, :group => :all do
|
17
|
+
add_gem_path paths, "lib/wagn/config/environments", :glob => "#{Rails.env}.rb"
|
18
|
+
paths["lib/wagn/config/environments"].existent.each do |environment|
|
19
|
+
require environment
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
initializer :load_wagn_config_initializers, :before => :load_config_initializers do
|
24
|
+
add_gem_path paths, 'lib/wagn/config/initializers', :glob => "**/*.rb"
|
25
|
+
config.paths['lib/wagn/config/initializers'].existent.sort.each do |initializer|
|
26
|
+
load(initializer)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
17
30
|
class << self
|
18
31
|
def inherited(base)
|
19
32
|
Rails.application = base.instance
|
@@ -62,20 +75,17 @@ module Wagn
|
|
62
75
|
def paths
|
63
76
|
@paths ||= begin
|
64
77
|
paths = super
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
add_wagn_path paths, "db/seeds", :with => "db/seeds.rb"
|
77
|
-
add_wagn_path paths, 'gem-mods', :with => 'mods'
|
78
|
-
add_wagn_path paths, 'gem-assets', :with => 'public/assets'
|
78
|
+
add_gem_path paths, "app", :eager_load => true, :glob => "*"
|
79
|
+
add_gem_path paths, "app/assets", :glob => "*"
|
80
|
+
add_gem_path paths, "app/controllers", :eager_load => true
|
81
|
+
add_gem_path paths, "lib/tasks", :with => "lib/wagn/tasks", :glob => "**/*.rake"
|
82
|
+
add_gem_path paths, "config/routes", :with => "config/routes.rb"
|
83
|
+
add_gem_path paths, "db"
|
84
|
+
add_gem_path paths, "db/migrate"
|
85
|
+
add_gem_path paths, "db/migrate_cards"
|
86
|
+
add_gem_path paths, "db/seeds", :with => "db/seeds.rb"
|
87
|
+
add_gem_path paths, 'gem-mods', :with => 'mods'
|
88
|
+
add_gem_path paths, 'gem-assets', :with => 'public/assets'
|
79
89
|
|
80
90
|
paths['app/models'] = []
|
81
91
|
paths['app/mailers'] = []
|
@@ -94,11 +104,11 @@ module Wagn
|
|
94
104
|
Wagn.gem_root.to_s == config.root.to_s
|
95
105
|
end
|
96
106
|
|
97
|
-
def
|
98
|
-
|
107
|
+
def add_gem_path paths, path, options={}
|
108
|
+
gem_path = File.join( Wagn.gem_root, path )
|
99
109
|
options[:with] &&= File.join( Wagn.gem_root, options[:with])
|
100
|
-
with = options[:with] ||
|
101
|
-
paths[path] = Rails::Paths::Path.new(paths,
|
110
|
+
with = options[:with] || gem_path
|
111
|
+
paths[path] = Rails::Paths::Path.new(paths, gem_path, with, options)
|
102
112
|
end
|
103
113
|
|
104
114
|
def load_tasks(app=self)
|
data/lib/wagn/commands.rb
CHANGED
@@ -1,2 +1,104 @@
|
|
1
|
-
|
2
|
-
require '
|
1
|
+
def load_rake_tasks
|
2
|
+
require './config/environment'
|
3
|
+
require 'rake'
|
4
|
+
Wagn::Application.load_tasks
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'active_support/core_ext/object/inclusion' # adds method in? to Object class
|
8
|
+
|
9
|
+
ARGV << '--help' if ARGV.empty?
|
10
|
+
|
11
|
+
aliases = {
|
12
|
+
"rs" => "rspec",
|
13
|
+
"cc" => "cucumber",
|
14
|
+
"g" => "generate",
|
15
|
+
"d" => "destroy",
|
16
|
+
"c" => "console",
|
17
|
+
"s" => "server",
|
18
|
+
"db" => "dbconsole",
|
19
|
+
"r" => "runner"
|
20
|
+
}
|
21
|
+
|
22
|
+
rails_commands = %w( generate destroy plugin benchmarker profiler console server dbconsole application runner )
|
23
|
+
|
24
|
+
if ARGV.first.in? rails_commands or aliases[ARGV.first].in? rails_commands
|
25
|
+
require 'wagn'
|
26
|
+
require 'rails/commands'
|
27
|
+
else
|
28
|
+
command = ARGV.shift
|
29
|
+
command = aliases[command] || command
|
30
|
+
|
31
|
+
case command
|
32
|
+
when 'seed'
|
33
|
+
#load_rake_tasks we can't load config/environment if the database doesn't exist, use config/application instead
|
34
|
+
require './config/application'
|
35
|
+
require 'wagn/migration_helper'
|
36
|
+
require 'rake'
|
37
|
+
Wagn::Application.load_tasks
|
38
|
+
Rake::Task['wagn:create'].invoke
|
39
|
+
if ARGV.include? "--test-data"
|
40
|
+
ENV['RELOAD_TEST_DATA'] = 'true'
|
41
|
+
Rake::Task['db:test:prepare'].invoke
|
42
|
+
end
|
43
|
+
when 'update'
|
44
|
+
load_rake_tasks
|
45
|
+
Rake::Taske['wagn:update'].invoke
|
46
|
+
when 'cucumber'
|
47
|
+
system "RAILS_ROOT=. bundle exec cucumber #{ ARGV.join(' ') }"
|
48
|
+
when 'rspec'
|
49
|
+
if index = ( ARGV.index("-s") || ARGV.index("--spec" ))
|
50
|
+
ARGV.delete_at(index)
|
51
|
+
files = Dir.glob("mods/**/#{ARGV[index]}_spec.rb").flatten.join(' ')
|
52
|
+
ARGV.delete_at(index)
|
53
|
+
end
|
54
|
+
if index = ( ARGV.index("-m") || ARGV.index("--mod" ))
|
55
|
+
ARGV.delete_at(index)
|
56
|
+
files = "mods/#{ARGV[index]}"
|
57
|
+
ARGV.delete_at(index)
|
58
|
+
end
|
59
|
+
system "RAILS_ROOT=. bundle exec rspec #{ARGV.join(' ')} #{files}"
|
60
|
+
when '--version', '-v'
|
61
|
+
puts "Wagn #{Wagn::Version.release}"
|
62
|
+
when 'new'
|
63
|
+
if ARGV.first.in?(['-h', '--help'])
|
64
|
+
require 'wagn/commands/application'
|
65
|
+
else
|
66
|
+
puts "Can't initialize a new deck within the directory of another, please change to a non-deck directory first.\n"
|
67
|
+
puts "Type 'wagn' for help."
|
68
|
+
exit(1)
|
69
|
+
end
|
70
|
+
|
71
|
+
else
|
72
|
+
puts "Error: Command not recognized" unless command.in?(['-h', '--help'])
|
73
|
+
puts <<-EOT
|
74
|
+
Usage: wagn COMMAND [ARGS]
|
75
|
+
|
76
|
+
The most common wagn commands are:
|
77
|
+
new Create a new Wagn deck. "wagn new my_deck" creates a
|
78
|
+
new deck called MyDeck in "./my_deck"
|
79
|
+
seed Create and seed the database specified in config/database.yml
|
80
|
+
|
81
|
+
server Start the Rails server (short-cut alias: "s")
|
82
|
+
console Start the Rails console (short-cut alias: "c")
|
83
|
+
dbconsole Start a console for the database specified in config/database.yml
|
84
|
+
(short-cut alias: "db")
|
85
|
+
|
86
|
+
For core developers
|
87
|
+
cucumber Run cucumber features (short-cut alias: "cc")
|
88
|
+
rspec Run rspec tests (short-cut alias: "rs")
|
89
|
+
update Run card migrations
|
90
|
+
|
91
|
+
In addition to those, there are the standard rails commands:
|
92
|
+
generate Generate new code (short-cut alias: "g")
|
93
|
+
application Generate the Rails application code
|
94
|
+
destroy Undo code generated with "generate" (short-cut alias: "d")
|
95
|
+
benchmarker See how fast a piece of code runs
|
96
|
+
profiler Get profile information from a piece of code
|
97
|
+
plugin Install a plugin
|
98
|
+
runner Run a piece of code in the application environment (short-cut alias: "r")
|
99
|
+
|
100
|
+
All commands can be run with -h (or --help) for more information.
|
101
|
+
EOT
|
102
|
+
exit(1)
|
103
|
+
end
|
104
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,8 +1,9 @@
|
|
1
1
|
Description:
|
2
|
-
|
2
|
+
The 'wagn new' command creates a new Wagn deck with a default
|
3
|
+
directory structure and configuration at the path you specify.
|
3
4
|
|
4
5
|
Example:
|
5
|
-
|
6
|
+
wagn new ~/Poker/FullHouse
|
7
|
+
|
8
|
+
This generates a new deck in ~/Poker/FullHouse.
|
6
9
|
|
7
|
-
This will create:
|
8
|
-
what/will/it/create
|
@@ -1,7 +1,72 @@
|
|
1
1
|
source 'http://rubygems.org'
|
2
2
|
|
3
|
-
gem 'wagn'
|
3
|
+
gem 'wagn'<%= ", :path=>'#{@wagn_path}'" if @wagn_path.present? %>
|
4
4
|
|
5
5
|
<%= database_gemfile_entry -%>
|
6
6
|
|
7
|
-
|
7
|
+
<% if options['mod-dev'] %>
|
8
|
+
gem 'rspec-rails', "~> 2.6" # behavior-driven-development suite
|
9
|
+
gem 'spork', '>=0.9'
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<% if options['core-dev'] %>
|
13
|
+
group :assets do
|
14
|
+
gem 'jquery-rails', '~> 3.1' # main js framework, along with rails-specific unobtrusive lib
|
15
|
+
gem 'jquery-ui-rails', '~> 4.2' # main js framework, along with rails-specific unobtrusive lib
|
16
|
+
gem "jquery_mobile_rails", "~> 1.4.1"
|
17
|
+
|
18
|
+
gem 'tinymce-rails', '~> 3.4' # wysiwyg editor
|
19
|
+
|
20
|
+
# execjs is necessary for developing coffeescript. mac users have execjs built-in; don't need this one
|
21
|
+
gem 'therubyrhino', :platform=>:ruby # :ruby is MRI rubies, so if you use a mac ruby ...
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
group :test do
|
26
|
+
gem 'simplecov', '~> 0.7.1', :require => false #test coverage
|
27
|
+
|
28
|
+
# SPECS see spec dir
|
29
|
+
gem 'rspec-rails', "~> 2.6" # behavior-driven-development suite
|
30
|
+
|
31
|
+
gem 'guard-rspec', '~> 4.2' # trigger test runs based on file edits
|
32
|
+
if RUBY_PLATFORM =~ /darwin/
|
33
|
+
gem 'terminal-notifier-guard', '~> 1.5' # use growler notifications on macs
|
34
|
+
end
|
35
|
+
|
36
|
+
# CUKES see features dir
|
37
|
+
gem 'cucumber-rails', '~> 1.3', :require=>false # feature-driven-development suite
|
38
|
+
gem 'capybara', '~> 2.2.1' # note, selectors were breaking when we used 2.0.1
|
39
|
+
gem 'selenium-webdriver', '~> 2.39'
|
40
|
+
# gem 'capybara-webkit'
|
41
|
+
gem 'launchy' # lets cucumber launch browser windows
|
42
|
+
|
43
|
+
gem 'timecop', '=0.3.5' # not clear on use/need. referred to in shared_data.rb
|
44
|
+
# NOTE: had weird errors with timecop 0.4.4. would like to update when possible
|
45
|
+
|
46
|
+
gem 'spork', '>=0.9'
|
47
|
+
|
48
|
+
gem 'rr'#, '=1.0.0'
|
49
|
+
|
50
|
+
gem 'email_spec' #
|
51
|
+
gem 'database_cleaner', '~> 0.7' # used by cucumber for db transactions
|
52
|
+
|
53
|
+
gem 'turn', "~>0.8.3", :require => false # Pretty printed test output. (version constraint is to avoid minitest requirement)
|
54
|
+
gem 'minitest', "~>4.0"
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
#windows stuff
|
59
|
+
gem 'win32console', '~> 1.3', :platforms => ['mingw', 'mswin']
|
60
|
+
gem 'win32-process', '~> 0.6', :platforms => ['mingw', 'mswin']
|
61
|
+
end
|
62
|
+
|
63
|
+
gem 'ruby-prof', '~>0.12.1', :group=>:profile # profiling
|
64
|
+
|
65
|
+
group :debug do
|
66
|
+
if RUBY_VERSION =~ /^2/
|
67
|
+
gem 'byebug'
|
68
|
+
else
|
69
|
+
gem 'debugger'
|
70
|
+
end
|
71
|
+
end
|
72
|
+
<% end %>
|