lotusrb 0.4.1 → 0.5.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 +18 -0
- data/FEATURES.md +7 -0
- data/README.md +2 -1
- data/lib/lotus/cli.rb +2 -1
- data/lib/lotus/commands/generate.rb +4 -0
- data/lib/lotus/config/assets.rb +46 -8
- data/lib/lotus/configuration.rb +119 -11
- data/lib/lotus/environment.rb +1 -1
- data/lib/lotus/frameworks.rb +2 -0
- data/lib/lotus/generators/action.rb +22 -1
- data/lib/lotus/generators/action/action_spec.rspec.tt +2 -3
- data/lib/lotus/generators/action/view_spec.rspec.tt +2 -3
- data/lib/lotus/generators/application/app.rb +22 -79
- data/lib/lotus/generators/application/app/Gemfile.tt +1 -0
- data/lib/lotus/generators/application/app/config/application.rb.tt +8 -3
- data/lib/lotus/generators/application/app/lib/app_name.rb.tt +12 -0
- data/lib/lotus/generators/application/container.rb +18 -84
- data/lib/lotus/generators/application/container/Gemfile.tt +3 -2
- data/lib/lotus/generators/application/container/lib/app_name.rb.tt +12 -0
- data/lib/lotus/generators/database_config.rb +86 -0
- data/lib/lotus/generators/mailer.rb +112 -0
- data/lib/lotus/generators/mailer/mailer.rb.tt +7 -0
- data/lib/lotus/generators/mailer/mailer_spec.rb.tt +7 -0
- data/lib/lotus/generators/mailer/template.html.tt +0 -0
- data/lib/lotus/generators/mailer/template.txt.tt +0 -0
- data/lib/lotus/generators/model/entity_spec.rspec.tt +0 -2
- data/lib/lotus/generators/model/repository_spec.rspec.tt +0 -2
- data/lib/lotus/generators/slice/application.rb.tt +8 -3
- data/lib/lotus/generators/slice/templates/application.html.erb.tt +1 -1
- data/lib/lotus/loader.rb +10 -3
- data/lib/lotus/mailer/glue.rb +68 -0
- data/lib/lotus/middleware.rb +3 -3
- data/lib/lotus/version.rb +1 -1
- data/lotusrb.gemspec +6 -5
- metadata +38 -11
@@ -1,13 +1,12 @@
|
|
1
|
-
require 'spec_helper'
|
2
1
|
require_relative '<%= config[:relative_view_path] %>'
|
3
2
|
|
4
3
|
describe <%= config[:app] %>::Views::<%= config[:controller] %>::<%= config[:action] %> do
|
5
4
|
let(:exposures) { Hash[foo: 'bar'] }
|
6
5
|
let(:template) { Lotus::View::Template.new('<%= config[:template_path] %>') }
|
7
|
-
let(:view) {
|
6
|
+
let(:view) { described_class.new(template, exposures) }
|
8
7
|
let(:rendered) { view.render }
|
9
8
|
|
10
|
-
it
|
9
|
+
it 'exposes #foo' do
|
11
10
|
expect(view.foo).to eq exposures.fetch(:foo)
|
12
11
|
end
|
13
12
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'shellwords'
|
2
2
|
require 'lotus/generators/abstract'
|
3
|
+
require 'lotus/generators/database_config'
|
3
4
|
|
4
5
|
module Lotus
|
5
6
|
module Generators
|
@@ -8,13 +9,13 @@ module Lotus
|
|
8
9
|
def initialize(command)
|
9
10
|
super
|
10
11
|
|
11
|
-
@upcase_app_name
|
12
|
-
@classified_app_name
|
13
|
-
@lotus_head
|
14
|
-
@test
|
15
|
-
@
|
16
|
-
@application_base_url
|
17
|
-
@lotus_model_version
|
12
|
+
@upcase_app_name = app_name.to_env_s
|
13
|
+
@classified_app_name = Utils::String.new(app_name).classify
|
14
|
+
@lotus_head = options.fetch(:lotus_head)
|
15
|
+
@test = options[:test]
|
16
|
+
@database_config = DatabaseConfig.new(options[:database], app_name)
|
17
|
+
@application_base_url = options[:application_base_url]
|
18
|
+
@lotus_model_version = '~> 0.5'
|
18
19
|
|
19
20
|
cli.class.source_root(source)
|
20
21
|
end
|
@@ -22,15 +23,15 @@ module Lotus
|
|
22
23
|
def start
|
23
24
|
|
24
25
|
opts = {
|
25
|
-
app_name:
|
26
|
-
upcase_app_name:
|
27
|
-
classified_app_name:
|
28
|
-
application_base_url:
|
29
|
-
lotus_head:
|
30
|
-
test:
|
31
|
-
database:
|
32
|
-
database_config:
|
33
|
-
lotus_model_version:
|
26
|
+
app_name: app_name,
|
27
|
+
upcase_app_name: @upcase_app_name,
|
28
|
+
classified_app_name: @classified_app_name,
|
29
|
+
application_base_url: @application_base_url,
|
30
|
+
lotus_head: @lotus_head,
|
31
|
+
test: @test,
|
32
|
+
database: @database_config.engine,
|
33
|
+
database_config: @database_config.to_hash,
|
34
|
+
lotus_model_version: @lotus_model_version,
|
34
35
|
}
|
35
36
|
|
36
37
|
templates = {
|
@@ -54,11 +55,12 @@ module Lotus
|
|
54
55
|
"app/views",
|
55
56
|
"lib/#{ app_name }/entities",
|
56
57
|
"lib/#{ app_name }/repositories",
|
58
|
+
"lib/#{ app_name }/mailers",
|
57
59
|
"public/javascripts",
|
58
60
|
"public/stylesheets"
|
59
61
|
]
|
60
62
|
|
61
|
-
empty_directories << if
|
63
|
+
empty_directories << if @database_config.sql?
|
62
64
|
"db/migrations"
|
63
65
|
else
|
64
66
|
"db"
|
@@ -91,10 +93,11 @@ module Lotus
|
|
91
93
|
empty_directories << [
|
92
94
|
"spec/#{ app_name }/entities",
|
93
95
|
"spec/#{ app_name }/repositories",
|
96
|
+
"spec/#{ app_name }/mailers",
|
94
97
|
"spec/support"
|
95
98
|
]
|
96
99
|
|
97
|
-
if
|
100
|
+
if @database_config.sql?
|
98
101
|
templates.merge!(
|
99
102
|
'schema.sql.tt' => 'db/schema.sql'
|
100
103
|
)
|
@@ -110,7 +113,7 @@ module Lotus
|
|
110
113
|
end
|
111
114
|
|
112
115
|
unless git_dir_present?
|
113
|
-
cli.template(source.join(
|
116
|
+
cli.template(source.join(@database_config.type == :file_system ? 'gitignore.tt' : '.gitignore'), target.join('.gitignore'), opts)
|
114
117
|
cli.run("git init #{Shellwords.escape(target)}", capture: true)
|
115
118
|
end
|
116
119
|
end
|
@@ -120,66 +123,6 @@ module Lotus
|
|
120
123
|
def git_dir_present?
|
121
124
|
File.directory?(source.join('.git'))
|
122
125
|
end
|
123
|
-
|
124
|
-
def database_config
|
125
|
-
{
|
126
|
-
gem: database_gem,
|
127
|
-
uri: database_uri,
|
128
|
-
type: database_type
|
129
|
-
}
|
130
|
-
end
|
131
|
-
|
132
|
-
def database_gem
|
133
|
-
{
|
134
|
-
'mysql' => 'mysql',
|
135
|
-
'mysql2' => 'mysql2',
|
136
|
-
'postgresql' => 'pg',
|
137
|
-
'postgres' => 'pg',
|
138
|
-
'sqlite' => 'sqlite3',
|
139
|
-
'sqlite3' => 'sqlite3'
|
140
|
-
}[@database]
|
141
|
-
end
|
142
|
-
|
143
|
-
def sql_database?
|
144
|
-
database_type == :sql
|
145
|
-
end
|
146
|
-
|
147
|
-
def database_type
|
148
|
-
case @database
|
149
|
-
when 'mysql', 'mysql2', 'postgresql', 'postgres', 'sqlite', 'sqlite3'
|
150
|
-
:sql
|
151
|
-
when 'filesystem'
|
152
|
-
:file_system
|
153
|
-
when 'memory'
|
154
|
-
:memory
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
def database_uri
|
159
|
-
{
|
160
|
-
development: "#{database_base_uri}_development",
|
161
|
-
test: "#{database_base_uri}_test"
|
162
|
-
}
|
163
|
-
end
|
164
|
-
|
165
|
-
def database_base_uri
|
166
|
-
case @database
|
167
|
-
when 'mysql'
|
168
|
-
"mysql://localhost/#{app_name}"
|
169
|
-
when 'mysql2'
|
170
|
-
"mysql2://localhost/#{app_name}"
|
171
|
-
when 'postgresql', 'postgres'
|
172
|
-
"postgres://localhost/#{app_name}"
|
173
|
-
when 'sqlite', 'sqlite3'
|
174
|
-
"sqlite://db/#{Shellwords.escape(app_name)}"
|
175
|
-
when 'memory'
|
176
|
-
"memory://localhost/#{app_name}"
|
177
|
-
when 'filesystem'
|
178
|
-
"file:///db/#{app_name}"
|
179
|
-
else
|
180
|
-
raise "\"#{@database}\" is not a valid database type"
|
181
|
-
end
|
182
|
-
end
|
183
126
|
end
|
184
127
|
end
|
185
128
|
end
|
@@ -11,6 +11,7 @@ gem 'lotus-helpers', require: false, github: 'lotus/helpers'
|
|
11
11
|
gem 'lotus-controller', require: false, github: 'lotus/controller'
|
12
12
|
gem 'lotus-view', require: false, github: 'lotus/view'
|
13
13
|
gem 'lotus-model', require: false, github: 'lotus/model'
|
14
|
+
gem 'lotus-mailer', require: false, github: 'lotus/mailer'
|
14
15
|
gem 'lotusrb', github: 'lotus/lotus'
|
15
16
|
<%- else -%>
|
16
17
|
gem 'lotusrb', '<%= Lotus::VERSION %>'
|
@@ -84,7 +84,12 @@ module <%= config[:classified_app_name] %>
|
|
84
84
|
# Default format for the requests that don't specify an HTTP_ACCEPT header
|
85
85
|
# Argument: A symbol representation of a mime type, default to :html
|
86
86
|
#
|
87
|
-
#
|
87
|
+
# default_request_format :html
|
88
|
+
|
89
|
+
# Default format for responses that doesn't take into account the request format
|
90
|
+
# Argument: A symbol representation of a mime type, default to :html
|
91
|
+
#
|
92
|
+
# default_response_format :html
|
88
93
|
|
89
94
|
# HTTP Body parsers
|
90
95
|
# Parse non GET responses body for a specific mime type
|
@@ -146,7 +151,7 @@ module <%= config[:classified_app_name] %>
|
|
146
151
|
# Web applications can send this header to mitigate Cross Site Scripting
|
147
152
|
# (XSS) attacks.
|
148
153
|
#
|
149
|
-
# The default value allows images, scripts, AJAX, and CSS from the same
|
154
|
+
# The default value allows images, scripts, AJAX, fonts and CSS from the same
|
150
155
|
# origin, and does not allow any other resources to load (eg object,
|
151
156
|
# frame, media, etc).
|
152
157
|
#
|
@@ -169,7 +174,7 @@ module <%= config[:classified_app_name] %>
|
|
169
174
|
# * http://content-security-policy.com/
|
170
175
|
# * https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Using_Content_Security_Policy
|
171
176
|
#
|
172
|
-
security.content_security_policy "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';"
|
177
|
+
security.content_security_policy "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self'; font-src 'self';"
|
173
178
|
|
174
179
|
##
|
175
180
|
# FRAMEWORKS
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'lotus/model'
|
2
|
+
require 'lotus/mailer'
|
2
3
|
Dir["#{ __dir__ }/<%= config[:app_name] %>/**/*.rb"].each { |file| require_relative file }
|
3
4
|
|
4
5
|
Lotus::Model.configure do
|
@@ -45,3 +46,14 @@ Lotus::Model.configure do
|
|
45
46
|
# end
|
46
47
|
end
|
47
48
|
end.load!
|
49
|
+
|
50
|
+
Lotus::Mailer.configure do
|
51
|
+
root "#{ __dir__ }/<%= config[:app_name] %>/mailers"
|
52
|
+
|
53
|
+
# See http://lotusrb.org/guides/mailers/delivery
|
54
|
+
delivery do
|
55
|
+
development :test
|
56
|
+
test :test
|
57
|
+
# production :stmp, address: ENV['SMTP_PORT'], port: 1025
|
58
|
+
end
|
59
|
+
end.load!
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'shellwords'
|
2
2
|
require 'lotus/generators/abstract'
|
3
|
+
require 'lotus/generators/database_config'
|
3
4
|
require 'lotus/generators/slice'
|
4
5
|
|
5
6
|
module Lotus
|
@@ -9,23 +10,23 @@ module Lotus
|
|
9
10
|
def initialize(command)
|
10
11
|
super
|
11
12
|
|
12
|
-
@slice_generator
|
13
|
-
@
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@lotus_model_version
|
13
|
+
@slice_generator = Slice.new(command)
|
14
|
+
@database_config = DatabaseConfig.new(options[:database], app_name)
|
15
|
+
@lotus_head = options.fetch(:lotus_head)
|
16
|
+
@test = options[:test]
|
17
|
+
@lotus_model_version = '~> 0.5'
|
17
18
|
|
18
19
|
cli.class.source_root(source)
|
19
20
|
end
|
20
21
|
|
21
22
|
def start
|
22
23
|
opts = {
|
23
|
-
app_name:
|
24
|
-
lotus_head:
|
25
|
-
test:
|
26
|
-
database:
|
27
|
-
database_config:
|
28
|
-
lotus_model_version:
|
24
|
+
app_name: app_name,
|
25
|
+
lotus_head: @lotus_head,
|
26
|
+
test: @test,
|
27
|
+
database: @database_config.engine,
|
28
|
+
database_config: @database_config.to_hash,
|
29
|
+
lotus_model_version: @lotus_model_version,
|
29
30
|
}
|
30
31
|
|
31
32
|
templates = {
|
@@ -42,10 +43,11 @@ module Lotus
|
|
42
43
|
|
43
44
|
empty_directories = [
|
44
45
|
"lib/#{ app_name }/entities",
|
45
|
-
"lib/#{ app_name }/repositories"
|
46
|
+
"lib/#{ app_name }/repositories",
|
47
|
+
"lib/#{ app_name }/mailers"
|
46
48
|
]
|
47
49
|
|
48
|
-
empty_directories << if
|
50
|
+
empty_directories << if @database_config.sql?
|
49
51
|
"db/migrations"
|
50
52
|
else
|
51
53
|
"db"
|
@@ -68,7 +70,7 @@ module Lotus
|
|
68
70
|
)
|
69
71
|
end
|
70
72
|
|
71
|
-
if
|
73
|
+
if @database_config.sql?
|
72
74
|
templates.merge!(
|
73
75
|
'schema.sql.tt' => 'db/schema.sql'
|
74
76
|
)
|
@@ -77,6 +79,7 @@ module Lotus
|
|
77
79
|
empty_directories << [
|
78
80
|
"spec/#{ app_name }/entities",
|
79
81
|
"spec/#{ app_name }/repositories",
|
82
|
+
"spec/#{ app_name }/mailers",
|
80
83
|
"spec/support"
|
81
84
|
]
|
82
85
|
|
@@ -90,7 +93,7 @@ module Lotus
|
|
90
93
|
end
|
91
94
|
|
92
95
|
unless git_dir_present?
|
93
|
-
cli.template(source.join(
|
96
|
+
cli.template(source.join(@database_config.type == :file_system ? 'gitignore.tt' : '.gitignore'), target.join('.gitignore'), opts)
|
94
97
|
cli.run("git init #{Shellwords.escape(target)}", capture: true)
|
95
98
|
end
|
96
99
|
|
@@ -102,75 +105,6 @@ module Lotus
|
|
102
105
|
def git_dir_present?
|
103
106
|
File.directory?(source.join('.git'))
|
104
107
|
end
|
105
|
-
|
106
|
-
def database_config
|
107
|
-
{
|
108
|
-
gem: database_gem,
|
109
|
-
uri: database_uri,
|
110
|
-
type: database_type
|
111
|
-
}
|
112
|
-
end
|
113
|
-
|
114
|
-
def database_gem
|
115
|
-
{
|
116
|
-
'mysql' => 'mysql',
|
117
|
-
'mysql2' => 'mysql2',
|
118
|
-
'postgresql' => 'pg',
|
119
|
-
'postgres' => 'pg',
|
120
|
-
'sqlite' => 'sqlite3',
|
121
|
-
'sqlite3' => 'sqlite3'
|
122
|
-
}[@database]
|
123
|
-
end
|
124
|
-
|
125
|
-
def database_type
|
126
|
-
case @database
|
127
|
-
when 'mysql', 'mysql2', 'postgresql', 'postgres', 'sqlite', 'sqlite3'
|
128
|
-
:sql
|
129
|
-
when 'filesystem'
|
130
|
-
:file_system
|
131
|
-
when 'memory'
|
132
|
-
:memory
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
def sql_database?
|
137
|
-
database_type == :sql
|
138
|
-
end
|
139
|
-
|
140
|
-
def database_uri
|
141
|
-
{
|
142
|
-
development: database_environment_uri(:development),
|
143
|
-
test: database_environment_uri(:test)
|
144
|
-
}
|
145
|
-
end
|
146
|
-
|
147
|
-
def database_base_uri
|
148
|
-
case @database
|
149
|
-
when 'mysql'
|
150
|
-
"mysql://localhost/#{app_name}"
|
151
|
-
when 'mysql2'
|
152
|
-
"mysql2://localhost/#{app_name}"
|
153
|
-
when 'postgresql', 'postgres'
|
154
|
-
"postgres://localhost/#{app_name}"
|
155
|
-
when 'sqlite', 'sqlite3'
|
156
|
-
"sqlite://db/#{Shellwords.escape(app_name)}"
|
157
|
-
when 'memory'
|
158
|
-
"memory://localhost/#{app_name}"
|
159
|
-
when 'filesystem'
|
160
|
-
"file:///db/#{app_name}"
|
161
|
-
else
|
162
|
-
raise "\"#{@database}\" is not a valid database type"
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
def database_environment_uri(environment)
|
167
|
-
case @database
|
168
|
-
when 'sqlite', 'sqlite3'
|
169
|
-
"#{database_base_uri}_#{environment}.sqlite"
|
170
|
-
else
|
171
|
-
"#{database_base_uri}_#{environment}"
|
172
|
-
end
|
173
|
-
end
|
174
108
|
end
|
175
109
|
end
|
176
110
|
end
|
@@ -11,10 +11,11 @@ gem 'lotus-helpers', require: false, github: 'lotus/helpers'
|
|
11
11
|
gem 'lotus-controller', require: false, github: 'lotus/controller'
|
12
12
|
gem 'lotus-view', require: false, github: 'lotus/view'
|
13
13
|
gem 'lotus-model', require: false, github: 'lotus/model'
|
14
|
+
gem 'lotus-mailer', require: false, github: 'lotus/mailer'
|
14
15
|
gem 'lotusrb', github: 'lotus/lotus'
|
15
16
|
<%- else -%>
|
16
|
-
gem 'lotusrb',
|
17
|
-
gem 'lotus-model',
|
17
|
+
gem 'lotusrb', '<%= Lotus::VERSION %>'
|
18
|
+
gem 'lotus-model', '<%= config[:lotus_model_version] %>'
|
18
19
|
<%- end -%>
|
19
20
|
|
20
21
|
<%- if config[:database_config][:gem] %>
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'lotus/model'
|
2
|
+
require 'lotus/mailer'
|
2
3
|
Dir["#{ __dir__ }/<%= config[:app_name] %>/**/*.rb"].each { |file| require_relative file }
|
3
4
|
|
4
5
|
Lotus::Model.configure do
|
@@ -46,3 +47,14 @@ Lotus::Model.configure do
|
|
46
47
|
# end
|
47
48
|
end
|
48
49
|
end.load!
|
50
|
+
|
51
|
+
Lotus::Mailer.configure do
|
52
|
+
root "#{ __dir__ }/<%= config[:app_name] %>/mailers"
|
53
|
+
|
54
|
+
# See http://lotusrb.org/guides/mailers/delivery
|
55
|
+
delivery do
|
56
|
+
development :test
|
57
|
+
test :test
|
58
|
+
# production :stmp, address: ENV['SMTP_PORT'], port: 1025
|
59
|
+
end
|
60
|
+
end.load!
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module Lotus
|
2
|
+
module Generators
|
3
|
+
class DatabaseConfig
|
4
|
+
SUPPORTED_ENGINES = {
|
5
|
+
'mysql' => { type: :sql, mri: 'mysql2', jruby: 'jdbc-mysql' },
|
6
|
+
'mysql2' => { type: :sql, mri: 'mysql2', jruby: 'jdbc-mysql' },
|
7
|
+
'postgresql' => { type: :sql, mri: 'pg', jruby: 'jdbc-postgres' },
|
8
|
+
'postgres' => { type: :sql, mri: 'pg', jruby: 'jdbc-postgres' },
|
9
|
+
'sqlite' => { type: :sql, mri: 'sqlite3', jruby: 'jdbc-sqlite3' },
|
10
|
+
'sqlite3' => { type: :sql, mri: 'sqlite3', jruby: 'jdbc-sqlite3' },
|
11
|
+
'filesystem' => { type: :file_system, mri: nil, jruby: nil },
|
12
|
+
'memory' => { type: :memory, mri: nil, jruby: nil }
|
13
|
+
}.freeze
|
14
|
+
|
15
|
+
attr_reader :engine, :name
|
16
|
+
|
17
|
+
def initialize(engine, name)
|
18
|
+
@engine = engine
|
19
|
+
@name = name
|
20
|
+
|
21
|
+
SUPPORTED_ENGINES.key?(engine) or fail "\"#{ engine }\" is not a valid database type"
|
22
|
+
end
|
23
|
+
|
24
|
+
def to_hash
|
25
|
+
{
|
26
|
+
gem: gem,
|
27
|
+
uri: uri,
|
28
|
+
type: type
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
def type
|
33
|
+
SUPPORTED_ENGINES[engine][:type]
|
34
|
+
end
|
35
|
+
|
36
|
+
def sql?
|
37
|
+
type == :sql
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def platform
|
43
|
+
Lotus::Utils.jruby? ? :jruby : :mri
|
44
|
+
end
|
45
|
+
|
46
|
+
def platform_prefix
|
47
|
+
:jdbc if Lotus::Utils.jruby?
|
48
|
+
end
|
49
|
+
|
50
|
+
def uri
|
51
|
+
{
|
52
|
+
development: environment_uri(:development),
|
53
|
+
test: environment_uri(:test)
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
def gem
|
58
|
+
SUPPORTED_ENGINES[engine][platform]
|
59
|
+
end
|
60
|
+
|
61
|
+
def base_uri
|
62
|
+
case engine
|
63
|
+
when 'mysql', 'mysql2'
|
64
|
+
"mysql2://localhost/#{ name }"
|
65
|
+
when 'postgresql', 'postgres'
|
66
|
+
"postgres://localhost/#{ name }"
|
67
|
+
when 'sqlite', 'sqlite3'
|
68
|
+
"sqlite://db/#{ Shellwords.escape(name) }"
|
69
|
+
when 'memory'
|
70
|
+
"memory://localhost/#{ name }"
|
71
|
+
when 'filesystem'
|
72
|
+
"file:///db/#{ Shellwords.escape(name) }"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def environment_uri(environment)
|
77
|
+
case engine
|
78
|
+
when 'sqlite', 'sqlite3'
|
79
|
+
"#{ platform_prefix }#{ base_uri }_#{ environment }.sqlite"
|
80
|
+
else
|
81
|
+
"#{ platform_prefix }#{ base_uri }_#{ environment }"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|