decko 0.14.2 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/environments/cucumber.rb +1 -0
- data/lib/card_controller/rest.rb +1 -1
- data/lib/decko/cli.rb +3 -2
- data/lib/decko/commands/application.rb +2 -7
- data/lib/decko/commands/cucumber_command.rb +5 -8
- data/lib/decko/commands.rb +4 -2
- data/lib/decko/mods_spec_helper.rb +0 -1
- data/lib/decko/swagger/input_yml/layout.yml +1 -1
- data/lib/decko/swagger/output.yml +1 -1
- data/lib/rake_tasks/decko/benchmark.rake +1 -5
- data/lib/rake_tasks/decko/docs.rake +14 -4
- data/lib/rake_tasks/decko.rake +7 -142
- metadata +7 -11
- data/lib/decko/script_decko_loader.rb +0 -13
- data/lib/rake_tasks/db.rake +0 -63
- data/lib/rake_tasks/decko/seed.rake +0 -139
- data/lib/rake_tasks/decko/tmpsets.rake +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 248a2dc0a741869d8f08dac5d37fe27836bf0e1739fb07753718700ede5af334
|
4
|
+
data.tar.gz: cd47e990d0affdc1d4555f18601a9d69a1e8fa1c366f95610c4b1a1774dae563
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d59e274fdf05490bde9e154b0c9888273575bb0a5d8887e79bd25fc6bdd1db5ba8a10c2eb17398db945e80bdb9cbf0abf36ec7d165671bf689cdc8916f4ac30
|
7
|
+
data.tar.gz: e316371fb24578a2879c1eb5f2d13225175dfe0b2f79cf6ed3a1a69f9a799663c69f2b690aedafb078d078a6d0c9a7c692694a0a11dff6440a0f218de1a505f5
|
data/lib/card_controller/rest.rb
CHANGED
data/lib/decko/cli.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
require "rbconfig"
|
2
|
-
require "
|
2
|
+
require "cardio/script_loader"
|
3
3
|
|
4
|
+
Cardio::ScriptLoader.script_name = "decko"
|
4
5
|
# If we are inside a Decko application this method performs an exec and thus
|
5
6
|
# the rest of this script is not run.
|
6
|
-
|
7
|
+
Cardio::ScriptLoader.exec!
|
7
8
|
|
8
9
|
require "rails/ruby_version_check"
|
9
10
|
Signal.trap("INT") { exit(1) }
|
@@ -1,10 +1,5 @@
|
|
1
1
|
require "rails/generators"
|
2
2
|
require File.expand_path("../../../generators/deck/deck_generator", __FILE__)
|
3
|
+
require "cardio/command"
|
3
4
|
|
4
|
-
|
5
|
-
ARGV[0] = "--help"
|
6
|
-
else
|
7
|
-
ARGV.shift
|
8
|
-
end
|
9
|
-
|
10
|
-
Cardio::Generators::Deck::DeckGenerator.start
|
5
|
+
Cardio::Command.run_non_deck_command ARGV.first, "decko/commands"
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# load the application so we can look in mods
|
2
2
|
require APP_PATH
|
3
|
-
require "cardio/
|
3
|
+
require "cardio/command/command_base"
|
4
4
|
require "cardio/mod/dirs"
|
5
5
|
|
6
6
|
module Decko
|
7
7
|
class Commands
|
8
|
-
class CucumberCommand < Cardio::
|
8
|
+
class CucumberCommand < Cardio::Command::CommandBase
|
9
9
|
require "decko/commands/cucumber_command/parser"
|
10
10
|
|
11
11
|
def initialize args
|
@@ -17,7 +17,7 @@ module Decko
|
|
17
17
|
def command
|
18
18
|
@cmd ||=
|
19
19
|
"#{env_args} #{@opts[:executer] || 'bundle exec'} " \
|
20
|
-
"cucumber #{require_args} #{feature_args}"
|
20
|
+
"cucumber #{require_args} #{feature_args} #{@cucumber_args.shelljoin}"
|
21
21
|
end
|
22
22
|
|
23
23
|
private
|
@@ -26,12 +26,9 @@ module Decko
|
|
26
26
|
@opts[:env].join " "
|
27
27
|
end
|
28
28
|
|
29
|
+
# use implicit features unless feature made explicit (in FIRST arg!)
|
29
30
|
def feature_args
|
30
|
-
|
31
|
-
feature_paths.join(" ")
|
32
|
-
else
|
33
|
-
@cucumber_args.shelljoin
|
34
|
-
end
|
31
|
+
feature_paths.join(" ") unless @cucumber_args.first&.match?(/^\s*[^-]/)
|
35
32
|
end
|
36
33
|
|
37
34
|
def require_args
|
data/lib/decko/commands.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
ENV["CARDIO_COMMANDS"] = "NO_RUN"
|
2
2
|
|
3
|
-
require "cardio/
|
3
|
+
require "cardio/command"
|
4
4
|
|
5
5
|
module Decko
|
6
|
-
class Commands < Cardio::
|
6
|
+
class Commands < Cardio::Command
|
7
|
+
Cardio::Command.bin_name = "decko"
|
8
|
+
|
7
9
|
def map
|
8
10
|
@map ||= super.merge(
|
9
11
|
server: { desc: "start a local web server", group: :shark, alias: :s },
|
@@ -4,7 +4,7 @@ info:
|
|
4
4
|
Decko organizes data into "cards." Decko's API supports retrieval and alteration of card data.
|
5
5
|
|
6
6
|
To get the JSON responses as described below, do _any_ of the following:
|
7
|
-
1. Set the http
|
7
|
+
1. Set the http Accept header to `application/json` in your request
|
8
8
|
2. Add `.json` to the url, or
|
9
9
|
3. Add `format=json` to the query params.
|
10
10
|
|
@@ -4,7 +4,7 @@ info:
|
|
4
4
|
description: |-
|
5
5
|
Decko organizes data into "cards." Decko's API supports retrieval and alteration of card data.
|
6
6
|
To get the JSON responses as described below, do _any_ of the following:
|
7
|
-
1. Set the http
|
7
|
+
1. Set the http Accept header to `application/json` in your request
|
8
8
|
2. Add `.json` to the url, or
|
9
9
|
3. Add `format=json` to the query params.
|
10
10
|
version: 0.8.0
|
@@ -3,7 +3,7 @@ require "benchmark"
|
|
3
3
|
|
4
4
|
namespace :decko do
|
5
5
|
namespace :benchmark do
|
6
|
-
desc "measure time for script generation"
|
6
|
+
desc "(for platypuses) measure time for script generation"
|
7
7
|
task machines: :environment do
|
8
8
|
Benchmark.bm do |x|
|
9
9
|
regenerate x, :style
|
@@ -23,10 +23,6 @@ def regenerate benchmarker, all_field
|
|
23
23
|
i_card.expire_machine_cache
|
24
24
|
end
|
25
25
|
|
26
|
-
%w[machine_output machine_cache].each do |code|
|
27
|
-
Card.search(right: { codename: code }).each(&:delete)
|
28
|
-
end
|
29
|
-
|
30
26
|
Card::Cache.reset_all
|
31
27
|
|
32
28
|
benchmarker.report(all_field) do
|
@@ -1,26 +1,36 @@
|
|
1
1
|
# rake decko:docs:...
|
2
2
|
|
3
3
|
# NOTE: for the moment these are Platypus tasks.
|
4
|
-
# Until they're more monkey friendly, let's not write descriptions
|
4
|
+
# Until they're more monkey friendly, let's not write `desc` descriptions.
|
5
|
+
# Without those they won't show up when folks run `rake -T`
|
5
6
|
#
|
6
7
|
# Make sure: you're:
|
7
8
|
# (A) running in a development environment, and
|
8
9
|
# (B) pointing to a repo gem
|
9
10
|
namespace :decko do
|
10
11
|
namespace :docs do
|
11
|
-
#
|
12
|
+
# Triggers tmpsets and then runs yardoc
|
13
|
+
#
|
14
|
+
# IMPORTANT: Only works if using source code from github.
|
12
15
|
task :update do
|
13
|
-
|
16
|
+
Cardio.config.load_strategy = :tmp_files
|
17
|
+
Rake::Task["decko:docs:dummy"].invoke
|
14
18
|
Rake::Task["decko:docs:yardoc"].invoke
|
15
19
|
end
|
16
20
|
|
17
|
-
#
|
21
|
+
# Runs yardoc command, which generates the docs content in the repo root.
|
18
22
|
#
|
23
|
+
# IMPORTANT: Only works if using source code from github.
|
19
24
|
# If you run this while using decko as a built gem, you could get some funky docs in
|
20
25
|
# your gems directory...
|
21
26
|
task :yardoc do
|
22
27
|
doc_dir = File.expand_path "..", Decko.gem_root
|
23
28
|
system %(cd #{doc_dir}; yardoc)
|
24
29
|
end
|
30
|
+
|
31
|
+
# just load environment and trigger Card load (used to generate tmpsets)
|
32
|
+
task dummy: :environment do
|
33
|
+
Card
|
34
|
+
end
|
25
35
|
end
|
26
36
|
end
|
data/lib/rake_tasks/decko.rake
CHANGED
@@ -1,147 +1,12 @@
|
|
1
1
|
require "decko/application"
|
2
2
|
require_relative "alias"
|
3
3
|
|
4
|
-
CARD_TASKS =
|
5
|
-
[
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
CARD_TASKS = (
|
5
|
+
%i[eat migrate reset_cache reset_tmp seed setup sow update] +
|
6
|
+
[{ assets: %i[refresh code wipe] },
|
7
|
+
{ migrate: %i[cards structure core_cards deck_cards redo stamp] },
|
8
|
+
{ mod: %i[list symlink missing uninstall install] },
|
9
|
+
{ seed: %i[build clean dump plow polish replant update] }]
|
10
|
+
).freeze
|
10
11
|
|
11
12
|
link_task CARD_TASKS, from: :decko, to: :card
|
12
|
-
|
13
|
-
decko_namespace = namespace :decko do
|
14
|
-
desc "create a decko database from scratch, load initial data"
|
15
|
-
task :seed do
|
16
|
-
failing_loudly "decko seed" do
|
17
|
-
seed
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
desc "create a decko database from scratch, load initial data, don't reset the cache"
|
22
|
-
task :seed_without_reset do
|
23
|
-
# This variant is needed to generate test databases for decks
|
24
|
-
# with custom codenames.
|
25
|
-
# The cache reset loads the environment. That tends to fail
|
26
|
-
# because of missing codenames that are added after the intial decko seed.
|
27
|
-
seed with_cache_reset: false
|
28
|
-
end
|
29
|
-
|
30
|
-
desc "clear and load fixtures with existing tables"
|
31
|
-
task reseed: :environment do
|
32
|
-
ENV["SCHEMA"] ||= "#{Cardio.gem_root}/db/schema.rb"
|
33
|
-
|
34
|
-
decko_namespace["clear"].invoke
|
35
|
-
decko_namespace["load"].invoke
|
36
|
-
end
|
37
|
-
|
38
|
-
desc "empty the card tables"
|
39
|
-
task :clear do
|
40
|
-
conn = ActiveRecord::Base.connection
|
41
|
-
|
42
|
-
puts "delete all data in bootstrap tables"
|
43
|
-
Cardio::Seed::TABLES.each do |table|
|
44
|
-
conn.delete "delete from #{table}"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
desc "Load seed data into database"
|
49
|
-
task :load do
|
50
|
-
decko_namespace["load_without_reset"].invoke
|
51
|
-
puts "reset cache"
|
52
|
-
system "bundle exec rake decko:reset_cache" # needs loaded environment
|
53
|
-
end
|
54
|
-
|
55
|
-
desc "Load seed data into database but don't reset cache"
|
56
|
-
task :load_without_reset do
|
57
|
-
require "decko/engine"
|
58
|
-
# puts "update card_migrations"
|
59
|
-
# decko_namespace["assume_card_migrations"].invoke
|
60
|
-
|
61
|
-
if Rails.env == "test" && !ENV["GENERATE_FIXTURES"]
|
62
|
-
puts "loading test fixtures"
|
63
|
-
Rake::Task["db:fixtures:load"].invoke
|
64
|
-
else
|
65
|
-
puts "loading seed data"
|
66
|
-
# db:seed checks for pending migrations. We don't want that because
|
67
|
-
# as part of the seeding process we update the migration table
|
68
|
-
ActiveRecord::Tasks::DatabaseTasks.load_seed
|
69
|
-
# :Rake::Task["db:seed"].invoke
|
70
|
-
end
|
71
|
-
|
72
|
-
puts "set symlink for assets"
|
73
|
-
decko_namespace["card:mod:symlink"].invoke
|
74
|
-
end
|
75
|
-
|
76
|
-
desc "reset with an empty tmp directory"
|
77
|
-
task :reset_tmp do
|
78
|
-
tmp_dir = Decko.paths["tmp"].first
|
79
|
-
if Decko.paths["tmp"].existent
|
80
|
-
Dir.foreach(tmp_dir) do |filename|
|
81
|
-
next if filename.starts_with? "."
|
82
|
-
|
83
|
-
FileUtils.rm_rf File.join(tmp_dir, filename), secure: true
|
84
|
-
end
|
85
|
-
else
|
86
|
-
Dir.mkdir tmp_dir
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
desc "update decko gems and database"
|
91
|
-
task :update do
|
92
|
-
failing_loudly "decko update" do
|
93
|
-
ENV["NO_RAILS_CACHE"] = "true"
|
94
|
-
decko_namespace["migrate"].invoke
|
95
|
-
decko_namespace["reset_tmp"].invoke
|
96
|
-
Card::Cache.reset_all
|
97
|
-
Rake::Task["card:mod:uninstall"].invoke
|
98
|
-
Rake::Task["card:mod:install"].invoke
|
99
|
-
Rake::Task["card:mod:symlink"].invoke
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
%i[list symlink missing uninstall install].each do |task|
|
104
|
-
alias_task "mod:#{task}", "card:mod:#{task}"
|
105
|
-
end
|
106
|
-
alias_task :migrate, "card:migrate"
|
107
|
-
|
108
|
-
desc "insert existing card migrations into schema_migrations_cards " \
|
109
|
-
"to avoid re-migrating"
|
110
|
-
task :assume_card_migrations do
|
111
|
-
require "decko/engine"
|
112
|
-
Cardio::Schema.assume_migrated_upto_version :core_cards
|
113
|
-
end
|
114
|
-
|
115
|
-
def seed with_cache_reset: true
|
116
|
-
ENV["SCHEMA"] ||= "#{Cardio.gem_root}/db/schema.rb"
|
117
|
-
# FIXME: this should be an option, but should not happen on standard creates!
|
118
|
-
begin
|
119
|
-
Rake::Task["db:drop"].invoke
|
120
|
-
rescue StandardError
|
121
|
-
puts "not dropped"
|
122
|
-
end
|
123
|
-
|
124
|
-
puts "creating"
|
125
|
-
Rake::Task["db:create"].invoke
|
126
|
-
|
127
|
-
puts "loading schema"
|
128
|
-
Rake::Task["db:schema:load"].invoke
|
129
|
-
|
130
|
-
load_task = "decko:load"
|
131
|
-
load_task << "_without_reset" unless with_cache_reset
|
132
|
-
Rake::Task[load_task].invoke
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
def failing_loudly task
|
137
|
-
yield
|
138
|
-
rescue StandardError
|
139
|
-
# TODO: fix this so that message appears *after* the errors.
|
140
|
-
# Solution should ensure that rake still exits with error code 1!
|
141
|
-
raise "\n>>>>>> FAILURE! #{task} did not complete successfully." \
|
142
|
-
"\n>>>>>> Please address errors and re-run:\n\n\n"
|
143
|
-
end
|
144
|
-
|
145
|
-
def version
|
146
|
-
ENV["VERSION"] ? ENV["VERSION"].to_i : nil
|
147
|
-
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decko
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan McCutchen
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2023-01-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: actionpack
|
@@ -32,28 +32,28 @@ dependencies:
|
|
32
32
|
requirements:
|
33
33
|
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 1.
|
35
|
+
version: 1.105.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - '='
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 1.
|
42
|
+
version: 1.105.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: card-mod-defaults
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - '='
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
49
|
+
version: 0.15.0
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - '='
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.
|
56
|
+
version: 0.15.0
|
57
57
|
description: a wiki approach to structured data, dynamic interaction, and web design
|
58
58
|
email:
|
59
59
|
- info@decko.org
|
@@ -107,19 +107,15 @@ files:
|
|
107
107
|
- lib/decko/mods_spec_helper.rb
|
108
108
|
- lib/decko/railtie.rb
|
109
109
|
- lib/decko/rest_spec_helper.rb
|
110
|
-
- lib/decko/script_decko_loader.rb
|
111
110
|
- lib/decko/swagger.rb
|
112
111
|
- lib/decko/swagger/input_yml/layout.yml
|
113
112
|
- lib/decko/swagger/output.yml
|
114
113
|
- lib/generators/deck/deck_generator.rb
|
115
114
|
- lib/rake_tasks/alias.rb
|
116
115
|
- lib/rake_tasks/cucumber.rake
|
117
|
-
- lib/rake_tasks/db.rake
|
118
116
|
- lib/rake_tasks/decko.rake
|
119
117
|
- lib/rake_tasks/decko/benchmark.rake
|
120
118
|
- lib/rake_tasks/decko/docs.rake
|
121
|
-
- lib/rake_tasks/decko/seed.rake
|
122
|
-
- lib/rake_tasks/decko/tmpsets.rake
|
123
119
|
homepage: https://decko.org
|
124
120
|
licenses:
|
125
121
|
- GPL-3.0
|
@@ -144,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
140
|
- !ruby/object:Gem::Version
|
145
141
|
version: '0'
|
146
142
|
requirements: []
|
147
|
-
rubygems_version: 3.
|
143
|
+
rubygems_version: 3.3.11
|
148
144
|
signing_key:
|
149
145
|
specification_version: 4
|
150
146
|
summary: structured wiki web platform
|
data/lib/rake_tasks/db.rake
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
require "rake"
|
2
|
-
|
3
|
-
# This code lets us redefine existing Rake tasks, which is extremely
|
4
|
-
# handy for modifying existing Rails rake tasks.
|
5
|
-
# Credit for the original snippet of code goes to Jeremy Kemper
|
6
|
-
# http://pastie.caboo.se/9620
|
7
|
-
unless Rake::TaskManager.methods.include?(:redefine_task)
|
8
|
-
module Rake
|
9
|
-
module TaskManager
|
10
|
-
def redefine_task task_class, args, &block
|
11
|
-
task_name, _arg_names, deps = resolve_args(args)
|
12
|
-
task_name = task_class.scope_name(@scope, task_name)
|
13
|
-
deps = [deps] unless deps.respond_to?(:to_ary)
|
14
|
-
deps = deps.map(&:to_s)
|
15
|
-
task = @tasks[task_name.to_s] = task_class.new(task_name, self)
|
16
|
-
task.application = self
|
17
|
-
@last_comment = nil
|
18
|
-
task.enhance(deps, &block)
|
19
|
-
task
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
class Task
|
24
|
-
class << self
|
25
|
-
def redefine_task args, &block
|
26
|
-
Rake.application.redefine_task(self, [args], &block)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
namespace :db do
|
34
|
-
namespace :fixtures do
|
35
|
-
desc "Load fixtures into the current environment's database. " \
|
36
|
-
"Load specific fixtures using FIXTURES=x,y"
|
37
|
-
task load: :environment do
|
38
|
-
require "active_record/fixtures"
|
39
|
-
fixture_path = File.join(Cardio.gem_root, "db", "seed", "test", "fixtures")
|
40
|
-
ActiveRecord::Base.establish_connection(::Rails.env.to_sym)
|
41
|
-
(if ENV["FIXTURES"]
|
42
|
-
ENV["FIXTURES"].split(/,/)
|
43
|
-
else
|
44
|
-
Dir.glob(File.join(fixture_path,
|
45
|
-
"*.{yml,csv}"))
|
46
|
-
end).each do |fixture_file|
|
47
|
-
ActiveRecord::FixtureSet.create_fixtures(fixture_path,
|
48
|
-
File.basename(fixture_file, ".*"))
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
namespace :test do
|
54
|
-
desc "Prepare the test database and load the schema"
|
55
|
-
Rake::Task.redefine_task(prepare: :environment) do
|
56
|
-
if ENV["RELOAD_TEST_DATA"] == "true" || ENV["RUN_CODE_RUN"]
|
57
|
-
puts `env RAILS_ENV=test rake decko:seed`
|
58
|
-
else
|
59
|
-
puts "skipping loading test data. to force, run `env RELOAD_TEST_DATA=true rake db:test:prepare`"
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,139 +0,0 @@
|
|
1
|
-
require "cardio/seed"
|
2
|
-
|
3
|
-
namespace :decko do
|
4
|
-
namespace :seed do
|
5
|
-
desc "reseed, migrate, re-clean, and re-dump"
|
6
|
-
task update: :environment do
|
7
|
-
ENV["STAMP_MIGRATIONS"] = "true"
|
8
|
-
ENV["GENERATE_FIXTURES"] = "true"
|
9
|
-
%w[reseed update
|
10
|
-
mod:uninstall mod:install seed:make_asset_output_coded
|
11
|
-
seed:clean seed:supplement seed:dump].each do |task|
|
12
|
-
Rake::Task["decko:#{task}"].invoke
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
desc "remove unneeded cards, acts, actions, changes, and references"
|
17
|
-
task clean: :environment do
|
18
|
-
Card::Cache.reset_all
|
19
|
-
clean_cards
|
20
|
-
clean_acts_and_actions
|
21
|
-
Card::Cache.reset_all
|
22
|
-
end
|
23
|
-
|
24
|
-
def clean_cards
|
25
|
-
puts "clean cards"
|
26
|
-
# change actors so we can delete unwanted user cards that made changes
|
27
|
-
Card::Act.update_all actor_id: Card::WagnBotID
|
28
|
-
delete_ignored_cards
|
29
|
-
refresh_assets
|
30
|
-
Card::Assets.make_output_coded
|
31
|
-
# clean_unwanted_cards
|
32
|
-
Card.empty_trash
|
33
|
-
end
|
34
|
-
|
35
|
-
def clean_unwanted_cards
|
36
|
-
Card.search(right: { codename: "all" }).each(&:delete!)
|
37
|
-
end
|
38
|
-
|
39
|
-
def delete_ignored_cards
|
40
|
-
return unless (ignore = Card["*ignore"])
|
41
|
-
|
42
|
-
Card::Auth.as_bot do
|
43
|
-
ignore.item_cards.each(&:delete!)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
task refresh_assets: :environment do
|
48
|
-
refresh_assets
|
49
|
-
end
|
50
|
-
|
51
|
-
def refresh_assets
|
52
|
-
puts "refresh assets"
|
53
|
-
Card::Auth.as_bot do
|
54
|
-
Card.where(right_id: :asset_input.card_id).delete_all
|
55
|
-
end
|
56
|
-
Card::Cache.reset_all
|
57
|
-
Cardio.config.compress_assets = true
|
58
|
-
Card::Assets.refresh_assets force: true
|
59
|
-
end
|
60
|
-
|
61
|
-
task make_asset_output_coded: :environment do
|
62
|
-
Card::Assets.make_output_coded
|
63
|
-
end
|
64
|
-
|
65
|
-
# def clean_files
|
66
|
-
# puts "clean files"
|
67
|
-
# Card::Cache.reset_all
|
68
|
-
# # TODO: generalize to all unnecessary files
|
69
|
-
# remove_old_machine_files
|
70
|
-
# end
|
71
|
-
|
72
|
-
def clean_acts_and_actions
|
73
|
-
clean_history
|
74
|
-
clean_time_and_user_stamps
|
75
|
-
end
|
76
|
-
|
77
|
-
def clean_history
|
78
|
-
puts "clean history"
|
79
|
-
act = Card::Act.create! actor_id: Card::WagnBotID, card_id: Card::WagnBotID
|
80
|
-
Card::Action.make_current_state_the_initial_state act
|
81
|
-
# conn.execute("truncate card_acts")
|
82
|
-
ActiveRecord::Base.connection.execute("truncate sessions")
|
83
|
-
end
|
84
|
-
|
85
|
-
def clean_time_and_user_stamps
|
86
|
-
puts "clean time and user stamps"
|
87
|
-
conn = ActiveRecord::Base.connection
|
88
|
-
who_and_when = [Card::WagnBotID, Time.now.utc.to_s(:db)]
|
89
|
-
conn.update "UPDATE cards SET " \
|
90
|
-
"creator_id=%1$s, created_at='%2$s', " \
|
91
|
-
"updater_id=%1$s, updated_at='%2$s'" % who_and_when
|
92
|
-
conn.update "UPDATE card_acts SET actor_id=%s, acted_at='%s'" % who_and_when
|
93
|
-
end
|
94
|
-
|
95
|
-
desc "add test data"
|
96
|
-
task supplement: :environment do
|
97
|
-
add_test_data
|
98
|
-
end
|
99
|
-
|
100
|
-
def add_test_data
|
101
|
-
return unless Rails.env == "test"
|
102
|
-
|
103
|
-
load Cardio::Seed.test_script_path
|
104
|
-
SharedData.add_test_data
|
105
|
-
end
|
106
|
-
|
107
|
-
desc "dump db to bootstrap fixtures"
|
108
|
-
task dump: :environment do
|
109
|
-
Card::Cache.reset_all
|
110
|
-
Cardio::Seed::TABLES.each do |table|
|
111
|
-
i = "000"
|
112
|
-
write_seed_file table do
|
113
|
-
yamlize_records table do |record, hash|
|
114
|
-
hash["#{table}_#{i.succ!}"] = record
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
def write_seed_file table
|
121
|
-
path = Rails.env == "test" ? Cardio::Seed.test_path : Cardio::Seed.path
|
122
|
-
filename = File.join path, "#{table}.yml"
|
123
|
-
File.open filename, "w" do |file|
|
124
|
-
file.write yield
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
def yamlize_records table
|
129
|
-
data = ActiveRecord::Base.connection.select_all "select * from #{table}"
|
130
|
-
YAML.dump(
|
131
|
-
data.each_with_object({}) do |record, hash|
|
132
|
-
record["trash"] = false if record.key? "trash"
|
133
|
-
record["draft"] = false if record.key? "draft"
|
134
|
-
yield record, hash
|
135
|
-
end
|
136
|
-
)
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
namespace :decko do
|
2
|
-
namespace :tmpsets do
|
3
|
-
# We have to load the environment with `env REPO_TMPSETS=true` in
|
4
|
-
# development mode to trigger the tmpset generation.
|
5
|
-
# There's probably a more elegant way?
|
6
|
-
task :trigger do
|
7
|
-
ENV["REPO_TMPSETS"] = "true"
|
8
|
-
Rake::Task["decko:tmpsets:dummy"].invoke
|
9
|
-
end
|
10
|
-
|
11
|
-
# just load environment and trigger Card load
|
12
|
-
task dummy: :environment do
|
13
|
-
Card
|
14
|
-
end
|
15
|
-
|
16
|
-
task :copy do
|
17
|
-
require "fileutils"
|
18
|
-
require "cardio"
|
19
|
-
|
20
|
-
target = "#{Cardio.gem_root}/tmpsets"
|
21
|
-
FileUtils.rm_r Dir["#{target}/set*"]
|
22
|
-
FileUtils.cp_r Dir["#{Cardio.root}/tmpsets/set*"], "#{Cardio.gem_root}/tmpsets"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|