decko 0.11.2 → 0.12.0
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/bin/decko +2 -2
- data/lib/card_controller.rb +29 -0
- data/{rails/controllers → lib}/card_controller/errors.rb +12 -13
- data/lib/card_controller/mark.rb +66 -0
- data/lib/{decko → card_controller}/response.rb +5 -61
- data/lib/card_controller/rest.rb +105 -0
- data/lib/decko.rb +3 -17
- data/lib/decko/all.rb +2 -0
- data/lib/decko/application.rb +22 -53
- data/lib/decko/cli.rb +2 -8
- data/lib/decko/commands.rb +17 -110
- data/lib/decko/commands/application.rb +2 -2
- data/lib/decko/commands/cucumber_command.rb +8 -7
- data/lib/decko/commands/cucumber_command/parser.rb +30 -26
- data/lib/decko/engine.rb +3 -16
- data/lib/decko/generators.rb +17 -0
- data/lib/decko/mods_spec_helper.rb +1 -1
- data/lib/decko/script_decko_loader.rb +5 -23
- data/lib/decko/tasks/alias.rb +4 -5
- data/lib/decko/tasks/cucumber.rake +61 -44
- data/lib/decko/tasks/db.rake +9 -2
- data/lib/decko/tasks/decko.rake +7 -6
- data/lib/decko/tasks/decko/docs.rake +1 -1
- data/lib/decko/tasks/decko/seed.rake +9 -4
- data/lib/generators/deck/deck_generator.rb +12 -0
- data/rails/engine-routes.rb +1 -1
- metadata +28 -70
- data/lib/decko/commands/command.rb +0 -28
- data/lib/decko/commands/rake_command.rb +0 -41
- data/lib/decko/commands/rake_command/parser.rb +0 -34
- data/lib/decko/commands/rspec_command.rb +0 -36
- data/lib/decko/commands/rspec_command/parser.rb +0 -96
- data/lib/decko/config/environments/cucumber.rb +0 -40
- data/lib/decko/config/environments/cypress.rb +0 -100
- data/lib/decko/config/environments/development.rb +0 -95
- data/lib/decko/config/environments/production.rb +0 -73
- data/lib/decko/config/environments/profile.rb +0 -32
- data/lib/decko/config/environments/test.rb +0 -68
- data/lib/decko/config/initializers/secret_token.rb +0 -14
- data/lib/decko/config/initializers/sedate_parser.rb +0 -7
- data/lib/decko/config/initializers/session_store.rb +0 -2
- data/lib/decko/generators/deck/USAGE +0 -9
- data/lib/decko/generators/deck/deck_generator.rb +0 -133
- data/lib/decko/generators/deck/deck_generator/deck_helper.rb +0 -110
- data/lib/decko/generators/deck/deck_generator/interactive.rb +0 -120
- data/lib/decko/generators/deck/deck_generator/rails_overrides.rb +0 -54
- data/lib/decko/generators/deck/templates/Gemfile.erb +0 -56
- data/lib/decko/generators/deck/templates/Rakefile.erb +0 -7
- data/lib/decko/generators/deck/templates/bin/spring.erb +0 -20
- data/lib/decko/generators/deck/templates/config.ru.erb +0 -11
- data/lib/decko/generators/deck/templates/config/application.rb.erb +0 -107
- data/lib/decko/generators/deck/templates/config/boot.rb.erb +0 -11
- data/lib/decko/generators/deck/templates/config/cucumber.yml +0 -1
- data/lib/decko/generators/deck/templates/config/databases/frontbase.yml +0 -34
- data/lib/decko/generators/deck/templates/config/databases/ibm_db.yml +0 -89
- data/lib/decko/generators/deck/templates/config/databases/jdbc.yml +0 -65
- data/lib/decko/generators/deck/templates/config/databases/jdbcmysql.yml +0 -36
- data/lib/decko/generators/deck/templates/config/databases/jdbcpostgresql.yml +0 -46
- data/lib/decko/generators/deck/templates/config/databases/jdbcsqlite3.yml +0 -23
- data/lib/decko/generators/deck/templates/config/databases/mysql.yml +0 -37
- data/lib/decko/generators/deck/templates/config/databases/oracle.yml +0 -42
- data/lib/decko/generators/deck/templates/config/databases/postgresql.yml +0 -39
- data/lib/decko/generators/deck/templates/config/databases/sqlite3.yml +0 -21
- data/lib/decko/generators/deck/templates/config/deck.yml +0 -10
- data/lib/decko/generators/deck/templates/config/environment.rb.erb +0 -5
- data/lib/decko/generators/deck/templates/config/initializers/cypress.rb +0 -12
- data/lib/decko/generators/deck/templates/config/puma.rb +0 -16
- data/lib/decko/generators/deck/templates/config/routes.rb.erb +0 -11
- data/lib/decko/generators/deck/templates/config/storage.yml +0 -0
- data/lib/decko/generators/deck/templates/gitignore +0 -18
- data/lib/decko/generators/deck/templates/pryrc +0 -6
- data/lib/decko/generators/deck/templates/public/files/htaccess +0 -9
- data/lib/decko/generators/deck/templates/public/robots.txt +0 -13
- data/lib/decko/generators/deck/templates/rspec.erb +0 -6
- data/lib/decko/generators/deck/templates/script/decko +0 -6
- data/lib/decko/generators/deck/templates/script/decko_cucumber +0 -8
- data/lib/decko/generators/deck/templates/script/decko_rspec +0 -8
- data/lib/decko/generators/deck/templates/script/delayed_job +0 -5
- data/lib/decko/generators/deck/templates/simplecov.rb.erb +0 -34
- data/lib/decko/generators/deck/templates/spec/javascripts/support/deck_jasmine.yml.erb +0 -56
- data/lib/decko/generators/deck/templates/spec/javascripts/support/decko_jasmine.yml.erb +0 -74
- data/lib/decko/generators/deck/templates/spec/spec_helper.rb +0 -1
- data/rails/controllers/application_controller.rb +0 -2
- data/rails/controllers/card_controller.rb +0 -122
- data/script/autospec +0 -4
- data/script/decko +0 -6
- data/script/rails +0 -6
- data/script/test_filter +0 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8bb3b3da3fa9c6e8e1fe97ee9ab4fa406b7c3dcb5850db324c1404ac378de442
|
|
4
|
+
data.tar.gz: 4878e14c56ef66cc61cc376aa6c6f0a2cdbc9c0dc7e6b4d4308b140f8b688c91
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: afbfc8a1b33c3e00f4734fb89c25c02abdadb6fb50e9b31b1056409123ccd9237a23069332ef1aea8f0c8f1372a6e47408e9deef742b123c817bffb08c48d736
|
|
7
|
+
data.tar.gz: a8a564f378ecbbb8ac75f0087f2f5e9daa93fd000962ded9e90779caf09fe9c6dcd543c150ea3a35dfcd03b05050c9a0b58782070c0a49d2016033bf14e8a60a
|
data/bin/decko
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
|
-
git_path = File.expand_path("
|
|
3
|
+
git_path = File.expand_path("../../.git", __dir__)
|
|
4
4
|
|
|
5
5
|
if File.exist?(git_path)
|
|
6
|
-
railties_path = File.expand_path("
|
|
6
|
+
railties_path = File.expand_path("../lib", __dir__)
|
|
7
7
|
$LOAD_PATH.unshift(railties_path)
|
|
8
8
|
end
|
|
9
9
|
require "decko/cli"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
|
|
3
|
+
# Decko's only controller.
|
|
4
|
+
class CardController < ActionController::Base
|
|
5
|
+
include Mark
|
|
6
|
+
include Rest
|
|
7
|
+
include Response
|
|
8
|
+
include Errors
|
|
9
|
+
extend Errors::Rescue
|
|
10
|
+
|
|
11
|
+
# NOTE: including Card::Env::Location triggers card loading, which triggers mod loading,
|
|
12
|
+
# which can include initializers that add to the CardController class.
|
|
13
|
+
# It's important that it come *after* the modules above, so that mod modules
|
|
14
|
+
# can override them.
|
|
15
|
+
include ::Card::Env::Location
|
|
16
|
+
|
|
17
|
+
layout nil
|
|
18
|
+
attr_reader :card
|
|
19
|
+
|
|
20
|
+
before_action :setup, except: [:asset]
|
|
21
|
+
before_action :authenticate, except: [:asset]
|
|
22
|
+
before_action :load_mark, only: [:read]
|
|
23
|
+
before_action :load_card, except: [:asset]
|
|
24
|
+
before_action :load_action, only: [:read]
|
|
25
|
+
before_action :refresh_card, only: %i[create update delete]
|
|
26
|
+
|
|
27
|
+
rescue_from_class(*Card::Error::UserError.user_error_classes)
|
|
28
|
+
rescue_from_class StandardError if rescue_all?
|
|
29
|
+
end
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
# Decko's only controller.
|
|
2
2
|
class CardController
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
# controller error handling
|
|
4
|
+
module Errors
|
|
5
|
+
# controller class method to handle top-level error rescuing
|
|
6
|
+
module Rescue
|
|
7
|
+
def rescue_from_class *klasses
|
|
8
|
+
klasses.each do |klass|
|
|
9
|
+
rescue_from(klass) { |exception| handle_exception exception }
|
|
10
|
+
end
|
|
7
11
|
end
|
|
8
|
-
end
|
|
9
12
|
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
def rescue_all?
|
|
14
|
+
Cardio.config.rescue_all_in_controller
|
|
15
|
+
end
|
|
12
16
|
end
|
|
13
|
-
end
|
|
14
17
|
|
|
15
|
-
# controller error handling
|
|
16
|
-
module Errors
|
|
17
18
|
def handle_exception exception
|
|
18
19
|
raise exception if debug_exception?(exception)
|
|
20
|
+
|
|
19
21
|
@card ||= Card.new
|
|
20
22
|
error = Card::Error.report exception, card
|
|
21
23
|
show error.class.view, error.class.status_code
|
|
@@ -29,7 +31,4 @@ class CardController
|
|
|
29
31
|
Card[:debugger]&.content =~ /on/ # && !Card::Env.ajax?
|
|
30
32
|
end
|
|
31
33
|
end
|
|
32
|
-
|
|
33
|
-
rescue_from_class(*Card::Error::UserError.user_error_classes)
|
|
34
|
-
rescue_from_class StandardError if rescue_all?
|
|
35
34
|
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
class CardController
|
|
2
|
+
# methods for interpretation of card marks requested
|
|
3
|
+
module Mark
|
|
4
|
+
private
|
|
5
|
+
|
|
6
|
+
def load_mark
|
|
7
|
+
params[:mark] = interpret_mark params[:mark]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def interpret_mark mark
|
|
11
|
+
case mark
|
|
12
|
+
when "*previous"
|
|
13
|
+
# Why support this? It's only needed in Success, right? Deprecate?
|
|
14
|
+
hard_redirect Card::Env.previous_location
|
|
15
|
+
when nil
|
|
16
|
+
implicit_mark
|
|
17
|
+
else
|
|
18
|
+
explicit_mark mark
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def explicit_mark mark
|
|
23
|
+
# we should find the place where we produce these bad urls
|
|
24
|
+
mark.valid_encoding? ? mark : mark.force_encoding("ISO-8859-1").encode("UTF-8")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def implicit_mark
|
|
28
|
+
case
|
|
29
|
+
when initial_setup
|
|
30
|
+
""
|
|
31
|
+
when (name = mark_from_card_hash)
|
|
32
|
+
name
|
|
33
|
+
when view_does_not_require_name?
|
|
34
|
+
""
|
|
35
|
+
else
|
|
36
|
+
home_mark
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def home_mark
|
|
41
|
+
Card::Rule.global_setting(:home) || "Home"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def view_does_not_require_name?
|
|
45
|
+
return false unless (view = params[:view]&.to_sym)
|
|
46
|
+
|
|
47
|
+
Card::Set::Format::AbstractFormat::ViewOpts.unknown_ok[view]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def mark_from_card_hash
|
|
51
|
+
params.dig :card, :name
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# alters params
|
|
55
|
+
def initial_setup
|
|
56
|
+
return unless Card::Auth.needs_setup? && Card::Env.html?
|
|
57
|
+
|
|
58
|
+
prepare_setup_card!
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def prepare_setup_card!
|
|
62
|
+
params[:card] = { type_id: Card.default_accounted_type_id }
|
|
63
|
+
params[:view] = "setup"
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
class CardController
|
|
2
2
|
# methods for managing decko responses
|
|
3
3
|
module Response
|
|
4
4
|
def response_format
|
|
@@ -72,13 +72,8 @@ module Decko
|
|
|
72
72
|
|
|
73
73
|
def require_card_for_soft_redirect!
|
|
74
74
|
return if card.is_a? Card
|
|
75
|
-
raise Card::Error, "tried to do soft redirect without a card"
|
|
76
|
-
end
|
|
77
75
|
|
|
78
|
-
|
|
79
|
-
def send_deprecated_asset
|
|
80
|
-
filename = [params[:mark], params[:format]].compact.join(".")
|
|
81
|
-
send_file asset_file_path(filename), x_sendfile: true
|
|
76
|
+
raise Card::Error, "tried to do soft redirect without a card"
|
|
82
77
|
end
|
|
83
78
|
|
|
84
79
|
def asset_file_path filename
|
|
@@ -107,64 +102,13 @@ module Decko
|
|
|
107
102
|
end
|
|
108
103
|
|
|
109
104
|
def format_name_from_params
|
|
110
|
-
if explicit_file_format?
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
end
|
|
105
|
+
return :file if explicit_file_format?
|
|
106
|
+
|
|
107
|
+
(params[:format].present? ? params[:format] : request.format).to_sym
|
|
114
108
|
end
|
|
115
109
|
|
|
116
110
|
def explicit_file_format?
|
|
117
111
|
params[:explicit_file] || !Card::Format.registered.member?(request.format)
|
|
118
112
|
end
|
|
119
|
-
|
|
120
|
-
def interpret_mark mark
|
|
121
|
-
case mark
|
|
122
|
-
when "*previous"
|
|
123
|
-
# Why support this? It's only needed in Success, right? Deprecate?
|
|
124
|
-
return hard_redirect(Card::Env.previous_location)
|
|
125
|
-
when nil
|
|
126
|
-
implicit_mark
|
|
127
|
-
else
|
|
128
|
-
explicit_mark mark
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def explicit_mark mark
|
|
133
|
-
# we should find the place where we produce these bad urls
|
|
134
|
-
mark.valid_encoding? ? mark : mark.force_encoding("ISO-8859-1").encode("UTF-8")
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
def implicit_mark
|
|
138
|
-
case
|
|
139
|
-
when initial_setup then ""
|
|
140
|
-
when (name = params.dig :card, :name) then name
|
|
141
|
-
when view_does_not_require_name? then ""
|
|
142
|
-
else home_mark
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
def home_mark
|
|
147
|
-
Card::Rule.global_setting(:home) || "Home"
|
|
148
|
-
end
|
|
149
|
-
|
|
150
|
-
def view_does_not_require_name?
|
|
151
|
-
return false unless (view = params[:view]&.to_sym)
|
|
152
|
-
Card::Set::Format::AbstractFormat::ViewOpts.unknown_ok[view]
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
# alters params
|
|
156
|
-
def initial_setup
|
|
157
|
-
return unless initial_setup?
|
|
158
|
-
prepare_setup_card!
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
def initial_setup?
|
|
162
|
-
Card::Auth.needs_setup? && Card::Env.html?
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
def prepare_setup_card!
|
|
166
|
-
params[:card] = { type_id: Card.default_accounted_type_id }
|
|
167
|
-
params[:view] = "setup"
|
|
168
|
-
end
|
|
169
113
|
end
|
|
170
114
|
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
class CardController
|
|
2
|
+
# RESTful action methods for card
|
|
3
|
+
module Rest
|
|
4
|
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
|
+
# PUBLIC METHODS
|
|
6
|
+
|
|
7
|
+
def create
|
|
8
|
+
handle { card.save! }
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def read
|
|
12
|
+
show
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def update
|
|
16
|
+
card.new_card? ? create : handle { card.update! params[:card]&.to_unsafe_h }
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def delete
|
|
20
|
+
handle { card.delete! }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @deprecated
|
|
24
|
+
def asset
|
|
25
|
+
body = "Decko installation error: missing asset symlinks"
|
|
26
|
+
Rails.logger.info "#{body}.\n >>> Try `rake decko:update_assets_symlink`"
|
|
27
|
+
render body: body, status: 404
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
31
|
+
# PRIVATE METHODS
|
|
32
|
+
|
|
33
|
+
private
|
|
34
|
+
|
|
35
|
+
def setup
|
|
36
|
+
Card::Machine.refresh_script_and_style unless params[:explicit_file]
|
|
37
|
+
Card::Cache.renew
|
|
38
|
+
Card::Env.reset controller: self
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def authenticate
|
|
42
|
+
Card::Auth.signin_with params
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def load_card
|
|
46
|
+
@card = Card.uri_fetch params
|
|
47
|
+
raise Card::Error::NotFound unless card
|
|
48
|
+
|
|
49
|
+
record_as_main
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def load_action
|
|
53
|
+
card.select_action_by_params params
|
|
54
|
+
return unless params[:edit_draft] && card.drafts.present?
|
|
55
|
+
|
|
56
|
+
card.content = card.last_draft_content
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# TODO: refactor this away this when new layout handling is ready
|
|
60
|
+
def record_as_main
|
|
61
|
+
Card::Env[:main_name] = params[:main] || card&.name || ""
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def refresh_card
|
|
65
|
+
@card = card.refresh
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# ----------( HELPER METHODS ) -------------
|
|
69
|
+
|
|
70
|
+
def handle
|
|
71
|
+
Card::Env.success card.name
|
|
72
|
+
yield ? cud_success : raise(Card::Error::UserError)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# successful create, update, or delete act
|
|
76
|
+
def cud_success
|
|
77
|
+
success = Card::Env.success.in_context card.name
|
|
78
|
+
if success.reload?
|
|
79
|
+
reload # instruct JSON to reload
|
|
80
|
+
else
|
|
81
|
+
redirect_cud_success success
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def show view=nil, status=200
|
|
86
|
+
card.action = :read
|
|
87
|
+
format = load_format status
|
|
88
|
+
result = render_page format, view
|
|
89
|
+
status = format.error_status || status
|
|
90
|
+
respond format, result, status
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def render_page format, view
|
|
94
|
+
view ||= view_from_params
|
|
95
|
+
card.act do
|
|
96
|
+
format.page self, view, Card::Env.slot_opts
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def view_from_params
|
|
101
|
+
%i[view v].each { |k| return params[k] if params[k].present? }
|
|
102
|
+
nil
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
data/lib/decko.rb
CHANGED
|
@@ -1,23 +1,9 @@
|
|
|
1
|
-
|
|
2
1
|
module Decko
|
|
3
|
-
DECKO_GEM_ROOT = File.expand_path("
|
|
2
|
+
DECKO_GEM_ROOT = File.expand_path("..", __dir__)
|
|
4
3
|
|
|
5
4
|
class << self
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def application
|
|
11
|
-
Rails.application
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def config
|
|
15
|
-
application.config
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def paths
|
|
19
|
-
application.paths
|
|
20
|
-
end
|
|
5
|
+
delegate :application, :root, to: :Rails
|
|
6
|
+
delegate :config, :paths, to: :application
|
|
21
7
|
|
|
22
8
|
def gem_root
|
|
23
9
|
DECKO_GEM_ROOT
|
data/lib/decko/all.rb
CHANGED
data/lib/decko/application.rb
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
|
2
2
|
|
|
3
|
-
require "
|
|
4
|
-
|
|
3
|
+
require "action_controller/railtie"
|
|
4
|
+
require "cardio/application"
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# require_relative "config/initializers/sedate_parser"
|
|
7
7
|
|
|
8
8
|
module Decko
|
|
9
|
-
class
|
|
10
|
-
|
|
9
|
+
# The application class from which all decko applications inherit
|
|
10
|
+
class Application < Cardio::Application
|
|
11
|
+
require "decko/engine"
|
|
12
|
+
|
|
13
|
+
card_environment_initializer
|
|
14
|
+
|
|
15
|
+
initializer "decko.load_environment_config",
|
|
11
16
|
before: :load_environment_config, group: :all do
|
|
12
|
-
|
|
13
|
-
paths["lib/decko/config/environments"].existent.each do |environment|
|
|
17
|
+
paths["decko/config/environments"].existent.each do |environment|
|
|
14
18
|
require environment
|
|
15
19
|
end
|
|
16
20
|
end
|
|
@@ -24,36 +28,9 @@ module Decko
|
|
|
24
28
|
end
|
|
25
29
|
end
|
|
26
30
|
|
|
27
|
-
def add_path paths, path, options={}
|
|
28
|
-
root = options.delete(:root) || Decko.gem_root
|
|
29
|
-
options[:with] = File.join(root, (options[:with] || path))
|
|
30
|
-
paths.add path, options
|
|
31
|
-
end
|
|
32
|
-
|
|
33
31
|
def config
|
|
34
|
-
@config ||=
|
|
35
|
-
config = super
|
|
36
|
-
|
|
37
|
-
Cardio.set_config config
|
|
38
|
-
|
|
39
|
-
# any config settings below:
|
|
40
|
-
# (a) do not apply to Card used outside of a Decko context
|
|
41
|
-
# (b) cannot be overridden in a deck's application.rb, but
|
|
42
|
-
# (c) CAN be overridden in an environment file
|
|
43
|
-
|
|
44
|
-
# therefore, in general, they should be restricted to settings that
|
|
45
|
-
# (1) are specific to the web environment, and
|
|
46
|
-
# (2) should not be overridden
|
|
47
|
-
# ..and we should address (c) above!
|
|
48
|
-
|
|
49
|
-
# general card settings (overridable and not) should be in cardio.rb
|
|
50
|
-
# overridable decko-specific settings don't have a place yet
|
|
51
|
-
# but should probably follow the cardio pattern.
|
|
52
|
-
|
|
32
|
+
@config ||= super.tap do |config|
|
|
53
33
|
# config.load_defaults "6.0"
|
|
54
|
-
config.autoloader = :zeitwerk
|
|
55
|
-
config.load_default = "6.0"
|
|
56
|
-
config.i18n.enforce_available_locales = true
|
|
57
34
|
# config.active_record.raise_in_transactional_callbacks = true
|
|
58
35
|
|
|
59
36
|
config.allow_concurrency = false
|
|
@@ -61,30 +38,22 @@ module Decko
|
|
|
61
38
|
config.assets.version = "1.0"
|
|
62
39
|
|
|
63
40
|
config.filter_parameters += [:password]
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
Rails.autoloaders.main.ignore(File.join(Cardio.gem_root, "lib/card/seed_consts.rb"))
|
|
67
|
-
config
|
|
41
|
+
config.autoload_paths += Dir["#{Decko.gem_root}/lib"]
|
|
42
|
+
decko_path_defaults config.paths
|
|
68
43
|
end
|
|
69
44
|
end
|
|
70
45
|
|
|
71
|
-
|
|
72
|
-
@paths ||= begin
|
|
73
|
-
paths = super
|
|
74
|
-
Cardio.set_paths paths
|
|
75
|
-
|
|
76
|
-
paths.add "files"
|
|
46
|
+
private
|
|
77
47
|
|
|
78
|
-
|
|
79
|
-
|
|
48
|
+
def decko_path_defaults paths
|
|
49
|
+
paths.add "decko/config/environments",
|
|
50
|
+
with: File.join(Decko.gem_root, "config/environments"),
|
|
51
|
+
glob: "#{Rails.env}.rb"
|
|
80
52
|
|
|
81
|
-
|
|
82
|
-
add_path paths, "config/routes.rb",
|
|
83
|
-
with: "rails/application-routes.rb"
|
|
84
|
-
end
|
|
53
|
+
return if paths["config/routes.rb"].existent.present?
|
|
85
54
|
|
|
86
|
-
|
|
87
|
-
|
|
55
|
+
paths.add "config/routes.rb",
|
|
56
|
+
with: File.join(Decko.gem_root, "rails/application-routes.rb")
|
|
88
57
|
end
|
|
89
58
|
end
|
|
90
59
|
end
|