decko 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/decko.gemspec +3 -3
  3. data/features/attach.feature +11 -7
  4. data/features/follow.feature +45 -44
  5. data/features/navbox.feature +1 -1
  6. data/features/notifications.feature +1 -1
  7. data/features/pointer_inputs.feature +7 -0
  8. data/features/reference.feature +5 -1
  9. data/features/step_definitions/email_steps.rb +4 -0
  10. data/features/step_definitions/wagn_steps.rb +6 -3
  11. data/features/step_definitions/web_steps.rb +1 -0
  12. data/features/support/delayed_job.rb +1 -0
  13. data/features/support/env.rb +5 -2
  14. data/features/toolbar.feature +13 -11
  15. data/lib/decko/application.rb +1 -0
  16. data/lib/decko/commands/cucumber_command.rb +2 -2
  17. data/lib/decko/commands/cucumber_command/parser.rb +8 -0
  18. data/lib/decko/commands/rspec_command.rb +3 -3
  19. data/lib/decko/config/environments/development.rb +3 -2
  20. data/lib/decko/config/environments/production.rb +4 -0
  21. data/lib/decko/config/environments/test.rb +2 -2
  22. data/lib/decko/config/initializers/sedate_parser.rb +7 -0
  23. data/lib/decko/engine.rb +1 -1
  24. data/lib/decko/generators/decko/templates/Gemfile +16 -22
  25. data/lib/decko/mods_spec_helper.rb +0 -1
  26. data/lib/decko/response.rb +18 -12
  27. data/lib/decko/tasks/alias.rb +31 -0
  28. data/lib/decko/tasks/decko.rake +16 -43
  29. data/lib/decko/tasks/decko/bootstrap.rake +65 -62
  30. data/lib/decko/tasks/test.rake +10 -3
  31. data/rails/controllers/card_controller.rb +16 -10
  32. data/rails/engine-routes.rb +4 -1
  33. data/spec/controllers/card_controller_spec.rb +77 -58
  34. data/spec/controllers/location_spec.rb +4 -4
  35. metadata +10 -9
  36. data/lib/decko/tasks/decko/migrate.rake +0 -77
@@ -25,6 +25,14 @@ module Decko
25
25
  parser.on("-s", "--step", "Pause after each step") do |a|
26
26
  opts[:env] << "STEP=1" if a
27
27
  end
28
+ parser.on("--[no-]spring", "Run with spring") do |spring|
29
+ opts[:executer] =
30
+ if spring
31
+ "spring"
32
+ else
33
+ "bundle exec"
34
+ end
35
+ end
28
36
  end
29
37
  end
30
38
  end
@@ -13,9 +13,9 @@ module Decko
13
13
  end
14
14
 
15
15
  def command
16
- "#{env_args} #{@opts[:executer]} " \
17
- " #{@opts[:rescue]} rspec #{@rspec_args.shelljoin} #{@opts[:files]} "\
18
- " --exclude-pattern \"./card/vendor/**/*\""
16
+ "#{env_args} #{@opts[:executer]} #{@opts[:rescue]}" \
17
+ "rspec #{@rspec_args.shelljoin} #{@opts[:files]} "\
18
+ "--exclude-pattern \"./card/vendor/**/*\""
19
19
  end
20
20
 
21
21
  private
@@ -40,7 +40,6 @@ Decko.application.class.configure do
40
40
  # See everything in the log (default is :info)
41
41
  config.log_level = :debug
42
42
 
43
- config.active_record.raise_in_transactional_callbacks = true
44
43
 
45
44
  # config.performance_logger = {
46
45
  # methods: [:event, :search, :fetch, :view], # choose methods to log
@@ -79,11 +78,13 @@ Decko.application.class.configure do
79
78
 
80
79
  config.action_mailer.perform_deliveries = false
81
80
 
81
+
82
+
82
83
  # Use Pry instead of IRB
83
84
  silence_warnings do
84
85
  begin
85
86
  require "pry"
86
- IRB = Pry
87
+ config.console = Pry
87
88
  rescue LoadError
88
89
  end
89
90
  end
@@ -4,6 +4,10 @@ Decko.application.class.configure do
4
4
 
5
5
  config.eager_load = true
6
6
 
7
+ # temporary fix for formerly autoloaded files that stopped autoloading in Rails 5
8
+ # TODO: configure eager_load_paths explicitly (and remove this)
9
+ config.enable_dependency_loading = true
10
+
7
11
  # Code is not reloaded between requests
8
12
  config.cache_classes = true
9
13
 
@@ -58,13 +58,13 @@ Decko.application.class.configure do
58
58
  # true in your test
59
59
  Delayed::Worker.delay_jobs = false
60
60
 
61
- config.active_record.raise_in_transactional_callbacks = true
61
+
62
62
 
63
63
  # Use Pry instead of IRB
64
64
  silence_warnings do
65
65
  begin
66
66
  require "pry"
67
- IRB = Pry
67
+ config.console = Pry
68
68
  rescue LoadError
69
69
  end
70
70
  end
@@ -0,0 +1,7 @@
1
+ # Hack to get rid of annoying parser warnings
2
+ module Parser
3
+ def self.warn msg
4
+ return if msg =~ %r{^warning: (?:parser/current|[\d\.]+-compliant syntax|please see)}
5
+ super
6
+ end
7
+ end
data/lib/decko/engine.rb CHANGED
@@ -8,7 +8,7 @@ require "recaptcha"
8
8
  require "coderay"
9
9
  require "haml"
10
10
  require "kaminari"
11
- require "bootstrap-kaminari-views"
11
+ require "bootstrap4-kaminari-views"
12
12
  require "diff/lcs"
13
13
  require "builder"
14
14
 
@@ -1,10 +1,11 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  <% if @gem_path.present? %>
4
- gem 'wagn', :path=>"<%= @gemfile_gem_path %>/decko"
5
- gem 'card', :path=>"<%= @gemfile_gem_path %>/card", :require => false
4
+ gem 'decko', :path=>"<%= @gemfile_gem_path %>/decko"
5
+ gem 'card', :path=>"<%= @gemfile_gem_path %>/card", :require => false
6
+ gem 'cardname', :path=>"<%= @gemfile_gem_path %>/cardname", :require => false
6
7
  <% else %>
7
- gem 'wagn'
8
+ gem 'decko'
8
9
  <% end %>
9
10
 
10
11
  gem '<%= database_gemfile_entry.name %>'<%= %(, '#{database_gemfile_entry.version}') if database_gemfile_entry.version %>
@@ -24,7 +25,8 @@ gem '<%= database_gemfile_entry.name %>'<%= %(, '#{database_gemfile_entry.versio
24
25
 
25
26
  <% if options['mod-dev'] || options['core-dev'] -%>
26
27
  group :test do
27
- gem 'rspec', '~> 3.4'
28
+ gem 'rails-controller-testing'
29
+ gem 'rspec'
28
30
  gem 'rspec-rails' # behavior-driven-development suite
29
31
  gem 'spork', '>=0.9'
30
32
  gem 'rubocop'
@@ -38,7 +40,6 @@ group :test, :development do
38
40
  gem 'jasmine-jquery-rails'
39
41
  gem 'sprockets' # just so above works
40
42
  gem 'phantomjs', '1.9.7.1' #locked because 1.9.8.0 is breaking
41
- gem 'test_after_commit'
42
43
  gem 'colorize'
43
44
  gem 'delayed_job_active_record', '~> 4.1'
44
45
 
@@ -55,19 +56,15 @@ group :debug do
55
56
  gem 'pry-rails'
56
57
  gem 'pry-rescue'
57
58
  gem 'pry-stack_explorer'
58
- if RUBY_VERSION =~ /^2/
59
- gem 'pry-byebug'
60
- else
61
- gem 'debugger'
62
- end
59
+ gem 'pry-byebug'
63
60
  end
64
61
  <% end -%>
65
62
 
66
63
  <% if options['core-dev'] -%>
67
64
  group :assets do
68
- gem 'jquery-rails', '~> 3.1' # main js framework, along with rails-specific unobtrusive lib
69
- gem 'jquery-ui-rails', '~> 4.2' # main js framework, along with rails-specific unobtrusive lib
70
- gem "jquery_mobile_rails", "~> 1.4.1"
65
+ gem 'jquery-rails', '~> 4.3' # main js framework, along with rails-specific unobtrusive lib
66
+ gem 'jquery-ui-rails', '~> 6.0' # main js framework, along with rails-specific unobtrusive lib
67
+ gem "jquery_mobile_rails", "~> 1.4.5"
71
68
 
72
69
  gem 'tinymce-rails', '~> 3.4' # wysiwyg editor
73
70
  end
@@ -75,7 +72,8 @@ end
75
72
  group :test do
76
73
  gem 'fog'
77
74
  gem 'fog-aws'
78
- gem 'rspec-html-matchers', '0.8.1' # 0.9 requires ruby >= 2.1
75
+ gem 'rails-controller-testing'
76
+ gem 'rspec-html-matchers', '0.9.1'
79
77
  gem 'rr' #, '=1.0.0'
80
78
  gem 'simplecov', '~> 0.7.1', :require => false #test coverage
81
79
  gem 'codeclimate-test-reporter', require: nil
@@ -88,10 +86,10 @@ group :test do
88
86
  end
89
87
 
90
88
  # CUKES see features dir
91
- gem 'cucumber-rails', '~> 1.4', :require=>false # feature-driven-development suite
92
- gem 'capybara', '~> 2.7'
89
+ gem 'cucumber-rails', '~> 1.5', :require=>false # feature-driven-development suite
90
+ gem 'capybara', '~> 2.14'
93
91
  gem 'selenium-webdriver', '~> 3.3'
94
- gem 'chromedriver-helper', '~> 1.0.0'
92
+ gem 'chromedriver-helper', '~> 1.1.0'
95
93
  # gem 'capybara-webkit'
96
94
  gem 'launchy' # lets cucumber launch browser windows
97
95
 
@@ -104,11 +102,7 @@ group :test do
104
102
  gem 'turn', :require => false # Pretty printed test output. (version constraint is to avoid minitest requirement)
105
103
  gem 'minitest'
106
104
 
107
- if RUBY_VERSION =~ /^(1|2\.0)/
108
- puts "Warning: Can't install i18-tasks without Ruby 2.1+: will not be able to test if I18n keys are missing"
109
- else
110
- gem 'i18n-tasks', '~> 0.9.5' # See if I18n keys are missing or unused
111
- end
105
+ gem 'i18n-tasks', '~> 0.9.5' # See if I18n keys are missing or unused
112
106
  end
113
107
 
114
108
  gem 'ruby-prof', :group=>:profile # profiling
@@ -4,7 +4,6 @@
4
4
 
5
5
  require "decko" # only for card_gem_root
6
6
  require File.join Decko.card_gem_root, "spec/support/card_spec_loader.rb"
7
- require File.join Decko.card_gem_root, "spec/support/matchers.rb"
8
7
 
9
8
  CardSpecLoader.init
10
9
 
@@ -2,7 +2,6 @@ module Decko
2
2
  # methods for managing decko responses
3
3
  module Response
4
4
  private
5
-
6
5
  def card_redirect url
7
6
  url = card_url url # make sure we have absolute url
8
7
  if Card::Env.ajax?
@@ -16,14 +15,14 @@ module Decko
16
15
  end
17
16
 
18
17
  def deliver format, result, status
19
- if format == :file && status == 200
20
- send_file(*result)
21
- elsif status == 302
18
+ if status == 302
22
19
  card_redirect result
20
+ elsif format.is_a?(Card::Format::FileFormat) && status == 200
21
+ send_file(*result)
23
22
  else
24
- args = { text: result, status: status }
25
- args[:content_type] = "text/text" if format == :file
26
- render args
23
+ render body: result.html_safe,
24
+ status: status,
25
+ content_type: format.mime_type
27
26
  end
28
27
  end
29
28
 
@@ -39,7 +38,7 @@ module Decko
39
38
  self.params = success.params
40
39
  else
41
40
  # need tests. insure we get slot, main...
42
- params.merge! success.params
41
+ self.params = params.merge success.params
43
42
  end
44
43
  end
45
44
 
@@ -51,7 +50,11 @@ module Decko
51
50
  send_file File.join(path, filename), x_sendfile: true
52
51
  end
53
52
 
54
- def format_from_params
53
+ def format_from_params card
54
+ card.format format_name_from_params
55
+ end
56
+
57
+ def format_name_from_params
55
58
  return :file if params[:explicit_file]
56
59
  format = request.parameters[:format]
57
60
  # unknown format
@@ -61,9 +64,12 @@ module Decko
61
64
 
62
65
  def interpret_id id
63
66
  case id
64
- when "*previous" then return card_redirect(Card::Env.previous_location)
65
- when nil then determine_id
66
- else validate_id_encoding id
67
+ when "*previous" then
68
+ return card_redirect(Card::Env.previous_location)
69
+ when nil then
70
+ determine_id
71
+ else
72
+ validate_id_encoding id
67
73
  end
68
74
  end
69
75
 
@@ -0,0 +1,31 @@
1
+ def alias_task name, old_name
2
+ t = Rake::Task[old_name]
3
+ desc t.full_comment if t.full_comment
4
+ task name, *t.arg_names do |_, args|
5
+ # values_at is broken on Rake::TaskArguments
6
+ args = t.arg_names.map { |a| args[a] }
7
+ t.invoke(args)
8
+ end
9
+ end
10
+
11
+ def append_to_namespace namespace, part
12
+ [namespace, part].compact.join(":")
13
+ end
14
+
15
+ def link_task task, from: nil, to: nil, namespace: nil
16
+ case task
17
+ when Hash
18
+ task.each do |key, val|
19
+ link_task val, from: from, to: to ,
20
+ namespace: append_to_namespace(namespace, key)
21
+
22
+ end
23
+ when Array
24
+ task.each do |t|
25
+ link_task t, from: from, to: to, namespace: namespace
26
+ end
27
+ else
28
+ shared_part = append_to_namespace namespace, task
29
+ alias_task "#{from}:#{shared_part}", "#{to}:#{shared_part}"
30
+ end
31
+ end
@@ -1,10 +1,15 @@
1
1
  require "decko/application"
2
+ require_relative "alias"
3
+ require_relative "../../../../card/db/seed_consts"
2
4
 
3
- DECKO_SEED_TABLES = %w( cards card_actions card_acts card_changes
4
- card_references ).freeze
5
- DECKO_SEED_PATH = File.join(
6
- ENV["DECKO_SEED_REPO_PATH"] || [Cardio.gem_root, "db", "seed"], "new"
7
- )
5
+ CARD_TASKS =
6
+ [
7
+ :migrate,
8
+ { migrate: [:cards, :structure, :core_cards, :deck_cards, :redo, :stamp] },
9
+ :reset_cache
10
+ ]
11
+
12
+ link_task CARD_TASKS, from: :decko, to: :card
8
13
 
9
14
  namespace :decko do
10
15
  desc "create a decko database from scratch, load initial data"
@@ -72,61 +77,29 @@ namespace :decko do
72
77
  task :update do
73
78
  ENV["NO_RAILS_CACHE"] = "true"
74
79
  # system 'bundle update'
75
- if Wagn.paths["tmp"].existent
76
- FileUtils.rm_rf Wagn.paths["tmp"].first, secure: true
80
+ if Decko.paths["tmp"].existent
81
+ FileUtils.rm_rf Decko.paths["tmp"].first, secure: true
77
82
  end
78
- Dir.mkdir Wagn.paths["tmp"].first
83
+ Dir.mkdir Decko.paths["tmp"].first
79
84
  Rake::Task["decko:migrate"].invoke
80
85
  # FIXME: remove tmp dir / clear cache
81
86
  puts "set symlink for assets"
82
87
  Rake::Task["decko:update_assets_symlink"].invoke
83
88
  end
84
89
 
85
- desc "reset cache"
86
- task reset_cache: :environment do
87
- Card::Cache.reset_all
88
- Card.reset_all_machines
89
- end
90
+
90
91
 
91
92
  desc "set symlink for assets"
92
93
  task :update_assets_symlink do
93
94
  assets_path = File.join(Rails.public_path, "assets")
94
- if Rails.root.to_s != Wagn.gem_root && !File.exist?(assets_path)
95
+ if Rails.root.to_s != Decko.gem_root && !File.exist?(assets_path)
95
96
  FileUtils.rm assets_path if File.symlink? assets_path
96
97
  FileUtils.ln_s(Decko::Engine.paths["gem-assets"].first, assets_path)
97
98
  end
98
99
  end
99
100
 
100
- desc "migrate structure and cards"
101
- task migrate: :environment do
102
- ENV["NO_RAILS_CACHE"] = "true"
103
- ENV["SCHEMA"] ||= "#{Cardio.gem_root}/db/schema.rb"
104
-
105
- stamp = ENV["STAMP_MIGRATIONS"]
106
101
 
107
- puts "migrating structure"
108
- Rake::Task["decko:migrate:structure"].invoke
109
- Rake::Task["decko:migrate:stamp"].invoke :structure if stamp
110
-
111
- puts "migrating core cards"
112
- Card::Cache.reset_all
113
- # not invoke because we don't want to reload environment
114
- Rake::Task["decko:migrate:core_cards"].execute
115
- if stamp
116
- Rake::Task["decko:migrate:stamp"].reenable
117
- Rake::Task["decko:migrate:stamp"].invoke :core_cards
118
- end
119
-
120
- puts "migrating deck cards"
121
- # not invoke because we don't want to reload environment
122
- Rake::Task["decko:migrate:deck_cards"].execute
123
- if stamp
124
- Rake::Task["decko:migrate:stamp"].reenable
125
- Rake::Task["decko:migrate:stamp"].invoke :deck_cards
126
- end
127
-
128
- Card::Cache.reset_all
129
- end
102
+ alias_task :migrate, "card:migrate"
130
103
 
131
104
  desc "insert existing card migrations into schema_migrations_cards to avoid re-migrating"
132
105
  task :assume_card_migrations do
@@ -4,9 +4,12 @@ namespace :decko do
4
4
  "and references"
5
5
  task clean: :environment do
6
6
  Card::Cache.reset_all
7
- clear_history
7
+
8
8
  delete_unwanted_cards
9
9
  Card.empty_trash
10
+ Rake::Task["decko:bootstrap:copy_mod_files"].invoke
11
+ make_machine_output_coded
12
+ clear_history
10
13
  correct_time_and_user_stamps
11
14
  Card::Cache.reset_all
12
15
  end
@@ -15,30 +18,23 @@ namespace :decko do
15
18
  task dump: :environment do
16
19
  Card::Cache.reset_all
17
20
 
18
- # FIXME: temporarily taking this out!!
19
- Rake::Task["decko:bootstrap:copy_mod_files"].invoke
20
- Card[:all, :script].make_machine_output_coded
21
- Card[:all, :style].make_machine_output_coded
22
- Card[:script_html5shiv_printshiv].make_machine_output_coded
23
-
24
- YAML::ENGINE.yamler = "syck" if RUBY_VERSION !~ /^(2|1\.9)/
25
- # use old engine while we're supporting ruby 1.8.7 because it can't
26
- # support Psych, which dumps with slashes that syck can't understand
21
+ # YAML::ENGINE.yamler = "syck" if RUBY_VERSION !~ /^(2|1\.9)/
22
+ # # use old engine while we're supporting ruby 1.8.7 because it can't
23
+ # # support Psych, which dumps with slashes that syck can't understand
27
24
 
28
25
  DECKO_SEED_TABLES.each do |table|
29
26
  i = "000"
27
+ data = ActiveRecord::Base.connection.select_all "select * from #{table}"
28
+
30
29
  File.open(File.join(DECKO_SEED_PATH, "#{table}.yml"), "w") do |file|
31
- data = ActiveRecord::Base.connection.select_all(
32
- "select * from #{table}"
33
- )
34
30
  file.write YAML.dump(data.each_with_object({}) do |record, hash|
35
31
  record["trash"] = false if record.key? "trash"
36
32
  record["draft"] = false if record.key? "draft"
37
- if record.key? "content"
38
- record["content"] = record["content"].gsub(/\u00A0/, "&nbsp;")
39
- # sych was handling nonbreaking spaces oddly.
40
- # would not be needed with psych.
41
- end
33
+ # if record.key? "content"
34
+ # record["content"] = record["content"].gsub(/\u00A0/, "&nbsp;")
35
+ # # sych was handling nonbreaking spaces oddly.
36
+ # # would not be needed with psych.
37
+ # end
42
38
  hash["#{table}_#{i.succ!}"] = record
43
39
  end)
44
40
  end
@@ -49,21 +45,10 @@ namespace :decko do
49
45
  task copy_mod_files: :environment do
50
46
  # mark mod files as mod files
51
47
  Card::Auth.as_bot do
52
- Card.search(type: %w(in Image File), ne: "").each do |card|
53
- if card.coded? || card.codename == "new_file" ||
54
- card.codename == "new_image"
55
- puts "skipping #{card.name}: already in code"
56
- next
57
- else
58
- puts "working on #{card.name}"
59
- end
60
-
48
+ each_file_card do |card|
61
49
  # make card a mod file card
62
- mod_name = if (l = card.left) && l.type_id == Card::SkinID
63
- "bootstrap"
64
- else
65
- "standard"
66
- end
50
+ mod_name =
51
+ card.left&.type_id == Card::SkinID ? "bootstrap" : "standard"
67
52
  card.update_attributes! storage_type: :coded,
68
53
  mod: mod_name,
69
54
  empty_ok: true
@@ -79,43 +64,61 @@ namespace :decko do
79
64
  Rake::Task["db:seed"].invoke
80
65
  end
81
66
  end
82
- end
83
67
 
84
- def correct_time_and_user_stamps
85
- conn = ActiveRecord::Base.connection
86
- who_and_when = [Card::WagnBotID, Time.now.utc.to_s(:db)]
87
- card_sql = "update cards set creator_id=%1$s, created_at='%2$s', " \
68
+ def each_file_card
69
+ Card.search(type: %w(in Image File), ne: "").each do |card|
70
+ if card.coded? || card.codename == "new_file" ||
71
+ card.codename == "new_image"
72
+ puts "skipping #{card.name}: already in code"
73
+ else
74
+ puts "working on #{card.name}"
75
+ yield card
76
+ end
77
+ end
78
+ end
79
+
80
+ def correct_time_and_user_stamps
81
+ conn = ActiveRecord::Base.connection
82
+ who_and_when = [Card::WagnBotID, Time.now.utc.to_s(:db)]
83
+ card_sql = "update cards set creator_id=%1$s, created_at='%2$s', " \
88
84
  "updater_id=%1$s, updated_at='%2$s'"
89
- conn.update(card_sql % who_and_when)
90
- conn.update("update card_acts set actor_id=%s, acted_at='%s'" % who_and_when)
91
- end
85
+ conn.update(card_sql % who_and_when)
86
+ conn.update("update card_acts set actor_id=%s, acted_at='%s'" % who_and_when)
87
+ end
92
88
 
93
- def delete_unwanted_cards
94
- Card::Auth.as_bot do
95
- if (ignoramus = Card["*ignore"])
96
- ignoramus.item_cards.each(&:delete!)
97
- end
98
- Card::Cache.reset_all
99
- # FIXME: can this be associated with the machine module somehow?
100
- %w(machine_input machine_output).each do |codename|
101
- Card.search(right: { codename: codename }).each do |card|
102
- FileUtils.rm_rf File.join("files", card.id.to_s), secure: true
103
- card.delete!
89
+ def delete_unwanted_cards
90
+ # we have to change the actors so that
91
+ # we can delete unwanted user cards that made changes
92
+ Card::Act.update_all actor_id: Card::WagnBotID
93
+ Card::Auth.as_bot do
94
+ if (ignoramus = Card["*ignore"])
95
+ ignoramus.item_cards.each(&:delete!)
96
+ end
97
+ Card::Cache.reset_all
98
+ # FIXME: can this be associated with the machine module somehow?
99
+ %w(machine_input machine_output).each do |codename|
100
+ Card.search(right: { codename: codename }).each do |card|
101
+ FileUtils.rm_rf File.join("files", card.id.to_s), secure: true
102
+ card.delete!
103
+ end
104
104
  end
105
105
  end
106
106
  end
107
- end
108
107
 
109
- def clear_history
110
- Card::Action.delete_old
111
- Card::Change.delete_actionless
108
+ def make_machine_output_coded
109
+ [[:all, :script], [:all, :style], [:script_html5shiv_printshiv]].each do |name|
110
+ Card[*name].make_machine_output_coded
111
+ end
112
+ end
112
113
 
113
- conn = ActiveRecord::Base.connection
114
- conn.execute("truncate card_acts")
115
- conn.execute("truncate sessions")
116
- act = Card::Act.create! actor_id: Card::WagnBotID,
117
- card_id: Card::WagnBotID
118
- Card::Action.find_each do |action|
119
- action.update_attributes!(card_act_id: act.id)
114
+ def clear_history
115
+ puts "clearing history"
116
+ act = Card::Act.create! actor_id: Card::WagnBotID,
117
+ card_id: Card::WagnBotID
118
+ Card::Action.make_current_state_the_initial_state act
119
+ #conn.execute("truncate card_acts")
120
+ ActiveRecord::Base.connection.execute("truncate sessions")
120
121
  end
121
122
  end
123
+
124
+