lotusrb 0.5.0 → 0.6.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/CHANGELOG.md +57 -14
- data/FEATURES.md +21 -0
- data/LICENSE.md +1 -1
- data/README.md +8 -7
- data/bin/lotus +1 -0
- data/lib/lotus.rb +6 -0
- data/lib/lotus/action/csrf_protection.rb +1 -1
- data/lib/lotus/application.rb +4 -4
- data/lib/lotus/application_name.rb +8 -6
- data/lib/lotus/cli.rb +75 -66
- data/lib/lotus/cli_sub_commands/assets.rb +29 -0
- data/lib/lotus/{commands → cli_sub_commands}/db.rb +24 -29
- data/lib/lotus/cli_sub_commands/destroy.rb +102 -0
- data/lib/lotus/cli_sub_commands/generate.rb +127 -0
- data/lib/lotus/commands/assets/precompile.rb +35 -0
- data/lib/lotus/commands/console.rb +28 -8
- data/lib/lotus/commands/db/abstract.rb +6 -2
- data/lib/lotus/commands/db/console.rb +5 -5
- data/lib/lotus/commands/generate/abstract.rb +63 -0
- data/lib/lotus/commands/generate/action.rb +262 -0
- data/lib/lotus/commands/generate/app.rb +116 -0
- data/lib/lotus/commands/generate/mailer.rb +118 -0
- data/lib/lotus/commands/generate/migration.rb +63 -0
- data/lib/lotus/commands/generate/model.rb +96 -0
- data/lib/lotus/commands/new/abstract.rb +128 -0
- data/lib/lotus/commands/new/app.rb +116 -0
- data/lib/lotus/commands/new/container.rb +102 -0
- data/lib/lotus/commands/routes.rb +19 -2
- data/lib/lotus/commands/server.rb +16 -2
- data/lib/lotus/config/framework_configuration.rb +13 -1
- data/lib/lotus/configuration.rb +24 -76
- data/lib/lotus/container.rb +15 -2
- data/lib/lotus/environment.rb +43 -4
- data/lib/lotus/frameworks.rb +1 -0
- data/lib/lotus/generators/action/action_spec.minitest.tt +1 -1
- data/lib/lotus/generators/action/action_spec.rspec.tt +1 -1
- data/lib/lotus/generators/action/view_spec.minitest.tt +1 -1
- data/lib/lotus/generators/action/view_spec.rspec.tt +1 -1
- data/lib/lotus/generators/{slice → app}/.gitkeep.tt +0 -0
- data/lib/lotus/generators/{slice → app}/application.rb.tt +61 -23
- data/lib/lotus/generators/app/config/initializers/.gitkeep +0 -0
- data/lib/lotus/generators/{slice → app}/config/routes.rb.tt +0 -0
- data/lib/lotus/generators/app/favicon.ico +0 -0
- data/lib/lotus/generators/{slice → app}/templates/application.html.erb.tt +2 -1
- data/lib/lotus/generators/app/views/application_layout.rb.tt +7 -0
- data/lib/lotus/generators/application/app/.env.development.tt +1 -0
- data/lib/lotus/generators/application/app/.env.test.tt +1 -0
- data/lib/lotus/generators/application/app/Gemfile.tt +1 -0
- data/lib/lotus/generators/application/app/Rakefile.minitest.tt +1 -0
- data/lib/lotus/generators/application/app/Rakefile.rspec.tt +1 -0
- data/lib/lotus/generators/application/app/config/application.rb.tt +56 -18
- data/lib/lotus/generators/application/app/config/initializers/.gitkeep +0 -0
- data/lib/lotus/generators/application/app/favicon.ico +0 -0
- data/lib/lotus/generators/application/app/gitignore.tt +2 -0
- data/lib/lotus/generators/application/app/lotusrc.tt +3 -3
- data/lib/lotus/generators/application/app/spec_helper.rb.rspec.tt +5 -1
- data/lib/lotus/generators/application/app/templates/application.html.erb.tt +1 -0
- data/lib/lotus/generators/application/container/.env.development.tt +1 -0
- data/lib/lotus/generators/application/container/.env.test.tt +1 -0
- data/lib/lotus/generators/application/container/Gemfile.tt +1 -1
- data/lib/lotus/generators/application/container/Rakefile.minitest.tt +1 -0
- data/lib/lotus/generators/application/container/Rakefile.rspec.tt +1 -0
- data/lib/lotus/generators/application/container/config/initializers/.gitkeep +0 -0
- data/lib/lotus/generators/application/container/gitignore.tt +2 -0
- data/lib/lotus/generators/application/container/lib/chirp/mailers/.gitkeep +0 -0
- data/lib/lotus/generators/application/container/lib/chirp/mailers/templates/.gitkeep +0 -0
- data/lib/lotus/generators/application/container/lotusrc.tt +3 -3
- data/lib/lotus/generators/application/container/spec_helper.rb.rspec.tt +5 -1
- data/lib/lotus/generators/database_config.rb +17 -4
- data/lib/lotus/generators/generatable.rb +51 -0
- data/lib/lotus/generators/generator.rb +35 -0
- data/lib/lotus/generators/test_framework.rb +42 -0
- data/lib/lotus/loader.rb +43 -0
- data/lib/lotus/lotusrc.rb +50 -49
- data/lib/lotus/middleware.rb +28 -10
- data/lib/lotus/rake_helper.rb +68 -0
- data/lib/lotus/rake_tasks.rb +2 -0
- data/lib/lotus/rendering_policy.rb +2 -2
- data/lib/lotus/repositories/car_repository.rb +3 -0
- data/lib/lotus/repositories/name_repository.rb +3 -0
- data/lib/lotus/setup.rb +1 -3
- data/lib/lotus/static.rb +77 -0
- data/lib/lotus/templates/welcome.html.erb +7 -4
- data/lib/lotus/version.rb +1 -1
- data/lib/lotus/views/default.rb +2 -1
- data/lib/lotus/views/default_template_finder.rb +4 -3
- data/lotusrb.gemspec +11 -9
- metadata +79 -60
- data/lib/lotus/commands/generate.rb +0 -97
- data/lib/lotus/commands/new.rb +0 -43
- data/lib/lotus/config/assets.rb +0 -81
- data/lib/lotus/generators/abstract.rb +0 -31
- data/lib/lotus/generators/action.rb +0 -235
- data/lib/lotus/generators/app.rb +0 -39
- data/lib/lotus/generators/app/.gitkeep +0 -1
- data/lib/lotus/generators/application/app.rb +0 -129
- data/lib/lotus/generators/application/container.rb +0 -111
- data/lib/lotus/generators/mailer.rb +0 -112
- data/lib/lotus/generators/migration.rb +0 -58
- data/lib/lotus/generators/model.rb +0 -90
- data/lib/lotus/generators/slice.rb +0 -94
- data/lib/lotus/generators/slice/views/application_layout.rb.tt +0 -7
@@ -1,97 +0,0 @@
|
|
1
|
-
require 'pathname'
|
2
|
-
require 'lotus/utils/string'
|
3
|
-
require 'lotus/utils/class'
|
4
|
-
|
5
|
-
module Lotus
|
6
|
-
module Commands
|
7
|
-
# @since 0.3.0
|
8
|
-
# @api private
|
9
|
-
class Generate
|
10
|
-
# @since 0.3.0
|
11
|
-
# @api private
|
12
|
-
GENERATORS_NAMESPACE = "Lotus::Generators::%s".freeze
|
13
|
-
APP_ARCHITECTURE = 'app'.freeze
|
14
|
-
|
15
|
-
# @since 0.3.0
|
16
|
-
# @api private
|
17
|
-
class Error < ::StandardError
|
18
|
-
end
|
19
|
-
|
20
|
-
# @since 0.3.0
|
21
|
-
# @api private
|
22
|
-
attr_reader :cli, :source, :target, :app, :app_name, :name, :options, :env
|
23
|
-
|
24
|
-
# @since 0.3.0
|
25
|
-
# @api private
|
26
|
-
def initialize(type, app_name, name, env, cli)
|
27
|
-
@cli = cli
|
28
|
-
@env = env
|
29
|
-
@name = name
|
30
|
-
@options = env.to_options.merge(cli.options)
|
31
|
-
|
32
|
-
sanitize_input(app_name, name)
|
33
|
-
@type = type
|
34
|
-
|
35
|
-
@source = Pathname.new(::File.dirname(__FILE__) + "/../generators/#{ @type }/").realpath
|
36
|
-
@target = Pathname.pwd.realpath
|
37
|
-
|
38
|
-
@app = Utils::String.new(@app_name).classify
|
39
|
-
end
|
40
|
-
|
41
|
-
# @since 0.3.0
|
42
|
-
# @api private
|
43
|
-
def start
|
44
|
-
generator.start
|
45
|
-
rescue Error => e
|
46
|
-
puts e.message
|
47
|
-
exit 1
|
48
|
-
end
|
49
|
-
|
50
|
-
# @since 0.3.0
|
51
|
-
# @api private
|
52
|
-
def app_root
|
53
|
-
@app_root ||= begin
|
54
|
-
result = Pathname.new(@options[:apps_path])
|
55
|
-
result = result.join(@app_name) if @env.container?
|
56
|
-
result
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
# @since 0.3.0
|
61
|
-
# @api private
|
62
|
-
def spec_root
|
63
|
-
@spec_root ||= Pathname.new('spec')
|
64
|
-
end
|
65
|
-
|
66
|
-
# @since 0.3.1
|
67
|
-
# @api private
|
68
|
-
def model_root
|
69
|
-
@model_root ||= Pathname.new(['lib', ::File.basename(Dir.getwd)]
|
70
|
-
.join(::File::SEPARATOR))
|
71
|
-
end
|
72
|
-
|
73
|
-
# @since 0.5.0
|
74
|
-
# @api private
|
75
|
-
alias_method :core_root, :model_root
|
76
|
-
|
77
|
-
private
|
78
|
-
# @since 0.3.0
|
79
|
-
# @api private
|
80
|
-
def generator
|
81
|
-
require "lotus/generators/#{ @type }"
|
82
|
-
class_name = Utils::String.new(@type).classify
|
83
|
-
Utils::Class.load!(GENERATORS_NAMESPACE % class_name).new(self)
|
84
|
-
end
|
85
|
-
|
86
|
-
def sanitize_input(app_name, name)
|
87
|
-
if options[:architecture] == APP_ARCHITECTURE
|
88
|
-
@app_name = nil
|
89
|
-
@name = app_name
|
90
|
-
else
|
91
|
-
@app_name = app_name
|
92
|
-
@name = name
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
data/lib/lotus/commands/new.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'pathname'
|
2
|
-
require 'securerandom'
|
3
|
-
require 'lotus/application_name'
|
4
|
-
require 'lotus/utils/string'
|
5
|
-
require 'lotus/utils/class'
|
6
|
-
|
7
|
-
module Lotus
|
8
|
-
module Commands
|
9
|
-
class New
|
10
|
-
GENERATORS_NAMESPACE = "Lotus::Generators::Application::%s".freeze
|
11
|
-
|
12
|
-
attr_reader :app_name, :source, :target, :cli, :options
|
13
|
-
|
14
|
-
def initialize(app_name_or_path, environment, cli)
|
15
|
-
@app_name = ApplicationName.new(_get_real_app_name(app_name_or_path))
|
16
|
-
@options = environment.to_options
|
17
|
-
@arch = @options.fetch(:architecture)
|
18
|
-
|
19
|
-
@target = Pathname.pwd.join(@options.fetch(:path, app_name_or_path))
|
20
|
-
@source = Pathname.new(@options.fetch(:source) { ::File.dirname(__FILE__) + '/../generators/application/' }).join(@arch)
|
21
|
-
|
22
|
-
@cli = cli
|
23
|
-
|
24
|
-
require "lotus/generators/application/#{ @arch }"
|
25
|
-
command = Utils::String.new(@arch).classify
|
26
|
-
@command = Utils::Class.load!(GENERATORS_NAMESPACE % command).new(self)
|
27
|
-
end
|
28
|
-
|
29
|
-
def start
|
30
|
-
@command.start
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
def _get_real_app_name(app_name_or_path)
|
35
|
-
if app_name_or_path.include?(::File::SEPARATOR)
|
36
|
-
raise ArgumentError.new("Invalid application name. If you want to set application path, please use --path option")
|
37
|
-
end
|
38
|
-
|
39
|
-
app_name_or_path == '.' ? ::File.basename(Dir.getwd) : app_name_or_path
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
data/lib/lotus/config/assets.rb
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
module Lotus
|
2
|
-
module Config
|
3
|
-
# Assets configuration
|
4
|
-
#
|
5
|
-
# @since 0.1.0
|
6
|
-
# @api private
|
7
|
-
class Assets < Utils::LoadPaths
|
8
|
-
DEFAULT_DIRECTORY = 'public'.freeze
|
9
|
-
|
10
|
-
# Assets source (directory)
|
11
|
-
#
|
12
|
-
# @since 0.5.0
|
13
|
-
# @api private
|
14
|
-
class Source
|
15
|
-
# @since 0.5.0
|
16
|
-
# @api private
|
17
|
-
BLANK = ''.freeze
|
18
|
-
|
19
|
-
# @since 0.5.0
|
20
|
-
# @api private
|
21
|
-
URL_SEPARATOR = '/'.freeze
|
22
|
-
|
23
|
-
# @since 0.5.0
|
24
|
-
# @api private
|
25
|
-
attr_reader :urls
|
26
|
-
|
27
|
-
# @since 0.5.0
|
28
|
-
# @api private
|
29
|
-
attr_reader :root
|
30
|
-
|
31
|
-
# @since 0.5.0
|
32
|
-
# @api private
|
33
|
-
def initialize(path)
|
34
|
-
@path = path.to_s
|
35
|
-
@root = @path.sub("#{ Lotus.root }/", BLANK)
|
36
|
-
@urls = {}
|
37
|
-
|
38
|
-
Dir.glob("#{ path }/**/*").each do |file|
|
39
|
-
next if ::File.directory?(file)
|
40
|
-
|
41
|
-
@urls.store(
|
42
|
-
file.sub(@path, BLANK).sub(::File::SEPARATOR, URL_SEPARATOR),
|
43
|
-
file.sub("#{ @path }/", BLANK)
|
44
|
-
)
|
45
|
-
end
|
46
|
-
|
47
|
-
@urls.freeze
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
# @since 0.1.0
|
52
|
-
# @api private
|
53
|
-
def initialize(root)
|
54
|
-
@root = root
|
55
|
-
@paths = Array(DEFAULT_DIRECTORY)
|
56
|
-
end
|
57
|
-
|
58
|
-
# @since 0.5.0
|
59
|
-
# @api private
|
60
|
-
def for_each_source
|
61
|
-
each do |path|
|
62
|
-
yield Source.new(path) if path.exist?
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
# @since 0.2.0
|
67
|
-
# @api private
|
68
|
-
def any?
|
69
|
-
@paths.any?
|
70
|
-
end
|
71
|
-
|
72
|
-
protected
|
73
|
-
# @since 0.1.0
|
74
|
-
# @api private
|
75
|
-
def realpath(path)
|
76
|
-
@root.join(path).realpath
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'delegate'
|
2
|
-
|
3
|
-
module Lotus
|
4
|
-
module Generators
|
5
|
-
# Abstract super class for generators
|
6
|
-
#
|
7
|
-
# @abstract
|
8
|
-
# @since 0.2.0
|
9
|
-
class Abstract < SimpleDelegator
|
10
|
-
# Initialize a generator
|
11
|
-
#
|
12
|
-
# @param command [Thor] a Thor instance that comes from Lotus::Cli
|
13
|
-
#
|
14
|
-
# @since 0.2.0
|
15
|
-
# @api private
|
16
|
-
def initialize(command)
|
17
|
-
super(command)
|
18
|
-
end
|
19
|
-
|
20
|
-
# Start the generator
|
21
|
-
#
|
22
|
-
# @raise [NotImplementedError]
|
23
|
-
#
|
24
|
-
# @abstract
|
25
|
-
# @since 0.2.0
|
26
|
-
def start
|
27
|
-
raise NotImplementedError
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,235 +0,0 @@
|
|
1
|
-
require 'lotus/generators/abstract'
|
2
|
-
require 'lotus/utils/string'
|
3
|
-
require 'lotus/routing/route'
|
4
|
-
|
5
|
-
module Lotus
|
6
|
-
module Generators
|
7
|
-
# @since 0.3.0
|
8
|
-
# @api private
|
9
|
-
class Action < Abstract
|
10
|
-
# @since 0.3.0
|
11
|
-
# @api private
|
12
|
-
ACTION_SEPARATOR = /\/|\#/
|
13
|
-
|
14
|
-
# @since 0.4.1
|
15
|
-
# @api private
|
16
|
-
ROUTE_ENDPOINT_SEPARATOR = '#'.freeze
|
17
|
-
|
18
|
-
# @since 0.4.1
|
19
|
-
# @api private
|
20
|
-
QUOTED_NAME = /(\"|\'|\\)/
|
21
|
-
|
22
|
-
# @since 0.3.0
|
23
|
-
# @api private
|
24
|
-
SUFFIX = '.rb'.freeze
|
25
|
-
|
26
|
-
# @since 0.3.0
|
27
|
-
# @api private
|
28
|
-
TEMPLATE_SUFFIX = '.html.'.freeze
|
29
|
-
|
30
|
-
# @since 0.3.0
|
31
|
-
# @api private
|
32
|
-
DEFAULT_TEMPLATE = 'erb'.freeze
|
33
|
-
|
34
|
-
# Default HTTP method used when generating an action.
|
35
|
-
# @since 0.5.0
|
36
|
-
# @api private
|
37
|
-
DEFAULT_HTTP_METHOD = 'GET'.freeze
|
38
|
-
|
39
|
-
# @since 0.3.0
|
40
|
-
# @api private
|
41
|
-
def initialize(command)
|
42
|
-
super
|
43
|
-
|
44
|
-
@name = Utils::String.new(name).underscore.gsub(QUOTED_NAME, '')
|
45
|
-
@controller, @action = @name.split(ACTION_SEPARATOR)
|
46
|
-
@controller_name = Utils::String.new(@controller).classify
|
47
|
-
@action_name = Utils::String.new(@action).classify
|
48
|
-
|
49
|
-
cli.class.source_root(source)
|
50
|
-
end
|
51
|
-
|
52
|
-
# @since 0.3.0
|
53
|
-
# @api private
|
54
|
-
def start
|
55
|
-
assert_existing_app!
|
56
|
-
assert_action!
|
57
|
-
assert_http_method!
|
58
|
-
|
59
|
-
opts = {
|
60
|
-
app: app,
|
61
|
-
controller: @controller_name,
|
62
|
-
action: @action_name,
|
63
|
-
action_path: _action_path_without_suffix,
|
64
|
-
relative_action_path: _relative_action_path,
|
65
|
-
relative_view_path: _relative_view_path,
|
66
|
-
view_path: _view_path_without_suffix,
|
67
|
-
template_path: _template_path,
|
68
|
-
}
|
69
|
-
|
70
|
-
test_type = case options[:test]
|
71
|
-
when 'rspec'
|
72
|
-
'rspec'
|
73
|
-
else
|
74
|
-
'minitest'
|
75
|
-
end
|
76
|
-
|
77
|
-
templates = {
|
78
|
-
"action_spec.#{test_type}.tt" => _action_spec_path,
|
79
|
-
}
|
80
|
-
|
81
|
-
if !options[:skip_view]
|
82
|
-
templates.merge!({
|
83
|
-
'action.rb.tt' => _action_path,
|
84
|
-
'view.rb.tt' => _view_path,
|
85
|
-
'template.tt' => _template_path,
|
86
|
-
"view_spec.#{test_type}.tt" => _view_spec_path,
|
87
|
-
})
|
88
|
-
else
|
89
|
-
templates.merge!({
|
90
|
-
'action_without_view.rb.tt' => _action_path,
|
91
|
-
})
|
92
|
-
end
|
93
|
-
|
94
|
-
generate_route
|
95
|
-
|
96
|
-
templates.each do |src, dst|
|
97
|
-
cli.template(source.join(src), target.join(dst), opts)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
private
|
102
|
-
# @since 0.3.0
|
103
|
-
# @api private
|
104
|
-
def assert_existing_app!
|
105
|
-
unless target.join(app_root).exist?
|
106
|
-
raise Lotus::Commands::Generate::Error.new("Unknown app: `#{ app_name }'")
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
# @since 0.3.2
|
111
|
-
# @api private
|
112
|
-
def assert_action!
|
113
|
-
if @action.nil?
|
114
|
-
raise Lotus::Commands::Generate::Error.new("Unknown action, please add action's name with this syntax controller_name#action_name")
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
# @since 0.5.0
|
119
|
-
# @api private
|
120
|
-
def assert_http_method!
|
121
|
-
if !Lotus::Routing::Route::VALID_HTTP_VERBS.include?(_http_method.upcase)
|
122
|
-
raise Lotus::Commands::Generate::Error.new("Unknown HTTP method '#{_http_method}', please use one of #{Lotus::Routing::Route::VALID_HTTP_VERBS.join(', ')}.")
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
def app
|
127
|
-
if env.container?
|
128
|
-
super
|
129
|
-
else
|
130
|
-
env.require_application_environment
|
131
|
-
Utils::String.new(Lotus::Application.applications.first).namespace
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
# @since 0.3.0
|
136
|
-
# @api private
|
137
|
-
def generate_route
|
138
|
-
path = target.join(_routes_path)
|
139
|
-
path.dirname.mkpath
|
140
|
-
|
141
|
-
FileUtils.touch(path)
|
142
|
-
|
143
|
-
# Insert at the top of the file
|
144
|
-
cli.insert_into_file _routes_path, before: /\A(.*)/ do
|
145
|
-
"#{ _http_method } '#{ _route_url }', to: '#{ _route_endpoint }'\n"
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
# @since 0.5.0
|
150
|
-
# @api private
|
151
|
-
def _http_method
|
152
|
-
options.fetch(:method, DEFAULT_HTTP_METHOD).downcase
|
153
|
-
end
|
154
|
-
|
155
|
-
# @since 0.4.0
|
156
|
-
# @api private
|
157
|
-
def _route_url
|
158
|
-
options.fetch(:url, "/#{ @controller }")
|
159
|
-
end
|
160
|
-
|
161
|
-
# @since 0.4.1
|
162
|
-
# @api private
|
163
|
-
def _route_endpoint
|
164
|
-
"#{ @controller }#{ROUTE_ENDPOINT_SEPARATOR}#{ @action }"
|
165
|
-
end
|
166
|
-
|
167
|
-
# @since 0.3.0
|
168
|
-
# @api private
|
169
|
-
def _routes_path
|
170
|
-
routes_root = env.container? ? app_root : env.root
|
171
|
-
routes_root.join("config", "routes#{ SUFFIX }")
|
172
|
-
end
|
173
|
-
|
174
|
-
# @since 0.3.0
|
175
|
-
# @api private
|
176
|
-
def _action_path
|
177
|
-
_action_path_without_suffix.to_s + SUFFIX
|
178
|
-
end
|
179
|
-
|
180
|
-
# @since 0.3.0
|
181
|
-
# @api private
|
182
|
-
def _view_path
|
183
|
-
_view_path_without_suffix.to_s + SUFFIX
|
184
|
-
end
|
185
|
-
|
186
|
-
# @since 0.3.0
|
187
|
-
# @api private
|
188
|
-
def _action_path_without_suffix
|
189
|
-
app_root.join("controllers", @controller, "#{ @action }")
|
190
|
-
end
|
191
|
-
|
192
|
-
# @since 0.3.0
|
193
|
-
# @api private
|
194
|
-
def _view_path_without_suffix
|
195
|
-
app_root.join("views", @controller, "#{ @action }")
|
196
|
-
end
|
197
|
-
|
198
|
-
# @since 0.3.0
|
199
|
-
# @api private
|
200
|
-
def _template_path
|
201
|
-
app_root.join("templates", @controller, "#{ @action }#{ TEMPLATE_SUFFIX }#{ options.fetch(:template) { DEFAULT_TEMPLATE } }")
|
202
|
-
end
|
203
|
-
|
204
|
-
# @since 0.3.0
|
205
|
-
# @api private
|
206
|
-
def _action_spec_path
|
207
|
-
spec_root.join(app_name.to_s, 'controllers', @controller, "#{ @action }_spec#{ SUFFIX }")
|
208
|
-
end
|
209
|
-
|
210
|
-
# @since 0.3.0
|
211
|
-
# @api private
|
212
|
-
def _view_spec_path
|
213
|
-
spec_root.join(app_name.to_s, 'views', @controller, "#{ @action }_spec#{ SUFFIX }")
|
214
|
-
end
|
215
|
-
|
216
|
-
# @since 0.4.0
|
217
|
-
# @api private
|
218
|
-
def _relative_action_path
|
219
|
-
result = '../../../'
|
220
|
-
result << '../' if env.container?
|
221
|
-
result << _action_path_without_suffix.to_s
|
222
|
-
result
|
223
|
-
end
|
224
|
-
|
225
|
-
# @since 0.4.0
|
226
|
-
# @api private
|
227
|
-
def _relative_view_path
|
228
|
-
result = '../../../'
|
229
|
-
result << '../' if env.container?
|
230
|
-
result << _view_path_without_suffix.to_s
|
231
|
-
result
|
232
|
-
end
|
233
|
-
end
|
234
|
-
end
|
235
|
-
end
|