jets 1.6.1 → 1.6.2
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 +5 -0
- data/Gemfile.lock +3 -3
- data/lib/jets/application.rb +6 -6
- data/lib/jets/booter.rb +4 -4
- data/lib/jets/builders/code_builder.rb +5 -5
- data/lib/jets/builders/shim_vars/app.rb +2 -2
- data/lib/jets/cfn/upload.rb +2 -2
- data/lib/jets/commands/build.rb +4 -4
- data/lib/jets/commands/call.rb +1 -1
- data/lib/jets/commands/call/anonymous_guesser.rb +1 -1
- data/lib/jets/commands/db/tasks.rb +1 -1
- data/lib/jets/commands/deploy.rb +1 -1
- data/lib/jets/commands/dynamodb/migrator.rb +1 -1
- data/lib/jets/commands/import/cheatsheet.rb +1 -1
- data/lib/jets/commands/import/sequence.rb +1 -1
- data/lib/jets/commands/runner.rb +1 -1
- data/lib/jets/commands/upgrade.rb +7 -7
- data/lib/jets/controller/base.rb +9 -0
- data/lib/jets/controller/rendering.rb +1 -1
- data/lib/jets/controller/rendering/rack_renderer.rb +3 -3
- data/lib/jets/core.rb +4 -8
- data/lib/jets/db.rb +2 -2
- data/lib/jets/inflections.rb +1 -1
- data/lib/jets/lambda/function_constructor.rb +2 -7
- data/lib/jets/middleware/default_stack.rb +1 -1
- data/lib/jets/overrides/rails/asset_tag_helper.rb +1 -1
- data/lib/jets/poly_fun/base_executor.rb +1 -1
- data/lib/jets/poly_fun/node_executor.rb +1 -1
- data/lib/jets/processors/deducer.rb +1 -1
- data/lib/jets/rack_server.rb +1 -1
- data/lib/jets/resource/api_gateway/cors.rb +8 -8
- data/lib/jets/resource/api_gateway/method.rb +11 -2
- data/lib/jets/router.rb +4 -2
- data/lib/jets/stack.rb +3 -3
- data/lib/jets/stack/function.rb +1 -1
- data/lib/jets/stack/main/dsl.rb +1 -1
- data/lib/jets/tmp_loader.rb +1 -1
- data/lib/jets/turbo/database_yaml.rb +2 -2
- data/lib/jets/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75898252d0d7ef29286086cca3e59433da914f67bd9b42e66927beb9bd4b72e0
|
4
|
+
data.tar.gz: 6d535ce82983daee425f36a670fcca6d7d2650fce3714fa196dbdd4be685a8c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2b412fdc2e7271eb998359bc501d76539d683d332ef8545c6ed5d1572bcd833ec2c963d115ba0bbbaa2662e922c4b88760884cae1a3424446097b6a812d932c
|
7
|
+
data.tar.gz: f57fa1a144e8b4328abfebc181d3bf7fd8df4dbed084ae7882eeee734ab1fa4557cd9d1d0733f115b675e7a9ad723b8b3199b1fe290d65177eabd115569b4261
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [1.6.2]
|
7
|
+
- #165 remove always trailing slash from Jets.root
|
8
|
+
- #166 fix cors headers
|
9
|
+
- #167 controller authorization_type declaration
|
10
|
+
|
6
11
|
## [1.6.1]
|
7
12
|
- #162 from patchkit-net/feature/spec_helpers
|
8
13
|
- #163 from tongueroo/spec-helpers
|
data/Gemfile.lock
CHANGED
@@ -11,7 +11,7 @@ GIT
|
|
11
11
|
PATH
|
12
12
|
remote: .
|
13
13
|
specs:
|
14
|
-
jets (1.6.
|
14
|
+
jets (1.6.2)
|
15
15
|
activerecord (~> 5.2.1)
|
16
16
|
activesupport (~> 5.2.1)
|
17
17
|
aws-sdk-apigateway
|
@@ -66,7 +66,7 @@ GEM
|
|
66
66
|
tzinfo (~> 1.1)
|
67
67
|
arel (9.0.0)
|
68
68
|
aws-eventstream (1.0.1)
|
69
|
-
aws-partitions (1.
|
69
|
+
aws-partitions (1.136.0)
|
70
70
|
aws-sdk-apigateway (1.23.0)
|
71
71
|
aws-sdk-core (~> 3, >= 3.39.0)
|
72
72
|
aws-sigv4 (~> 1.0)
|
@@ -107,7 +107,7 @@ GEM
|
|
107
107
|
crass (1.0.4)
|
108
108
|
diff-lcs (1.3)
|
109
109
|
dotenv (2.6.0)
|
110
|
-
dynomite (1.2.
|
110
|
+
dynomite (1.2.2)
|
111
111
|
activesupport
|
112
112
|
aws-sdk-dynamodb
|
113
113
|
erubi (1.8.0)
|
data/lib/jets/application.rb
CHANGED
@@ -110,7 +110,7 @@ class Jets::Application
|
|
110
110
|
def parse_project_name
|
111
111
|
return ENV['JETS_PROJECT_NAME'] if ENV['JETS_PROJECT_NAME'] # override
|
112
112
|
|
113
|
-
lines = IO.readlines("#{Jets.root}config/application.rb")
|
113
|
+
lines = IO.readlines("#{Jets.root}/config/application.rb")
|
114
114
|
project_name_line = lines.find { |l| l =~ /config\.project_name.*=/ }
|
115
115
|
project_name_line.gsub(/.*=/,'').strip.gsub(/["']/,'') # project_name
|
116
116
|
end
|
@@ -126,7 +126,7 @@ class Jets::Application
|
|
126
126
|
end
|
127
127
|
|
128
128
|
def eval_app_config
|
129
|
-
app_config = "#{Jets.root}config/application.rb"
|
129
|
+
app_config = "#{Jets.root}/config/application.rb"
|
130
130
|
load app_config # use load instead of require so reload_configs! works
|
131
131
|
end
|
132
132
|
|
@@ -138,7 +138,7 @@ class Jets::Application
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def load_environments_config
|
141
|
-
env_file = "#{Jets.root}config/environments/#{Jets.env}.rb"
|
141
|
+
env_file = "#{Jets.root}/config/environments/#{Jets.env}.rb"
|
142
142
|
if File.exist?(env_file)
|
143
143
|
code = IO.read(env_file)
|
144
144
|
instance_eval(code)
|
@@ -179,7 +179,7 @@ class Jets::Application
|
|
179
179
|
# app/shared/resources
|
180
180
|
def default_autoload_paths
|
181
181
|
paths = []
|
182
|
-
Dir.glob("#{Jets.root}app/*").each do |p|
|
182
|
+
Dir.glob("#{Jets.root}/app/*").each do |p|
|
183
183
|
p.sub!('./','')
|
184
184
|
paths << p unless exclude_autoload_path?(p)
|
185
185
|
end
|
@@ -277,7 +277,7 @@ class Jets::Application
|
|
277
277
|
config.database = {}
|
278
278
|
|
279
279
|
Jets::Dotenv.load!
|
280
|
-
database_yml = "#{Jets.root}config/database.yml"
|
280
|
+
database_yml = "#{Jets.root}/config/database.yml"
|
281
281
|
if File.exist?(database_yml)
|
282
282
|
text = Jets::Erb.result(database_yml)
|
283
283
|
db_config = YAML.load(text)
|
@@ -295,7 +295,7 @@ class Jets::Application
|
|
295
295
|
end
|
296
296
|
|
297
297
|
def load_routes
|
298
|
-
routes_file = "#{Jets.root}config/routes.rb"
|
298
|
+
routes_file = "#{Jets.root}/config/routes.rb"
|
299
299
|
require routes_file if File.exist?(routes_file)
|
300
300
|
end
|
301
301
|
|
data/lib/jets/booter.rb
CHANGED
@@ -45,7 +45,7 @@ class Jets::Booter
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def app_initializers
|
48
|
-
Dir.glob("#{Jets.root}config/initializers/**/*").each do |path|
|
48
|
+
Dir.glob("#{Jets.root}/config/initializers/**/*").each do |path|
|
49
49
|
load path
|
50
50
|
end
|
51
51
|
end
|
@@ -83,7 +83,7 @@ class Jets::Booter
|
|
83
83
|
# config/database.yml exists.
|
84
84
|
# Dynomite handles connecting to the clients lazily.
|
85
85
|
def setup_db
|
86
|
-
return unless File.exist?("#{Jets.root}config/database.yml")
|
86
|
+
return unless File.exist?("#{Jets.root}/config/database.yml")
|
87
87
|
|
88
88
|
db_configs = Jets.application.config.database
|
89
89
|
# DatabaseTasks.database_configuration for db:create db:migrate tasks
|
@@ -106,7 +106,7 @@ class Jets::Booter
|
|
106
106
|
|
107
107
|
# Cannot call this for the jets new
|
108
108
|
def confirm_jets_project!
|
109
|
-
unless File.exist?("#{Jets.root}config/application.rb")
|
109
|
+
unless File.exist?("#{Jets.root}/config/application.rb")
|
110
110
|
puts "It does not look like you are running this command within a jets project. Please confirm that you are in a jets project and try again.".color(:red)
|
111
111
|
exit 1
|
112
112
|
end
|
@@ -117,7 +117,7 @@ class Jets::Booter
|
|
117
117
|
end
|
118
118
|
|
119
119
|
def check_config_ru!
|
120
|
-
config_ru = File.read("#{Jets.root}config.ru")
|
120
|
+
config_ru = File.read("#{Jets.root}/config.ru")
|
121
121
|
unless config_ru.include?("Jets.boot")
|
122
122
|
puts 'The config.ru file is missing Jets.boot. Please add Jets.boot after require "jets"'.color(:red)
|
123
123
|
puts "This was changed as made in Jets v1.1.0."
|
@@ -181,7 +181,7 @@ class Jets::Builders
|
|
181
181
|
return unless webpacker_included?
|
182
182
|
|
183
183
|
sh("yarn install")
|
184
|
-
webpack_command = File.exist?("#{Jets.root}bin/webpack") ?
|
184
|
+
webpack_command = File.exist?("#{Jets.root}/bin/webpack") ?
|
185
185
|
"bin/webpack" :
|
186
186
|
`which webpack`.strip
|
187
187
|
sh "JETS_ENV=#{Jets.env} #{webpack_command}"
|
@@ -195,7 +195,7 @@ class Jets::Builders
|
|
195
195
|
|
196
196
|
# Checking this way because when using jets standalone for Afterburner mode we don't want to run into
|
197
197
|
# bundler gem collisions. TODO: figure out the a better way to handle the collisions.
|
198
|
-
lines = IO.readlines("#{Jets.root}Gemfile")
|
198
|
+
lines = IO.readlines("#{Jets.root}/Gemfile")
|
199
199
|
lines.detect { |l| l =~ /webpacker/ }
|
200
200
|
end
|
201
201
|
|
@@ -227,13 +227,13 @@ class Jets::Builders
|
|
227
227
|
# rake is available in both rails 4 and 5. rails command only in 5
|
228
228
|
command = "bundle exec rake assets:#{cmd} --trace"
|
229
229
|
command = "RAILS_ENV=#{Jets.env} #{command}" unless Jets.env.development?
|
230
|
-
sh("cd #{jets_root}rack && #{command}")
|
230
|
+
sh("cd #{jets_root}/rack && #{command}")
|
231
231
|
end
|
232
232
|
|
233
233
|
# Rudimentary rails detection
|
234
234
|
# Duplicated in builders/reconfigure_rails.rb
|
235
235
|
def rails?
|
236
|
-
config_ru = "#{Jets.root}rack/config.ru"
|
236
|
+
config_ru = "#{Jets.root}/rack/config.ru"
|
237
237
|
return false unless File.exist?(config_ru)
|
238
238
|
!IO.readlines(config_ru).grep(/Rails.application/).empty?
|
239
239
|
end
|
@@ -243,7 +243,7 @@ class Jets::Builders
|
|
243
243
|
# Another way of checking is loading a rails console and checking Rails.application.config.api_only
|
244
244
|
# Using this way for simplicity.
|
245
245
|
def rails_api?
|
246
|
-
config_app = "#{Jets.root}rack/config/application.rb"
|
246
|
+
config_app = "#{Jets.root}/rack/config/application.rb"
|
247
247
|
return false unless File.exist?(config_app)
|
248
248
|
!IO.readlines(config_app).grep(/config.api_only.*=.*true/).empty?
|
249
249
|
end
|
@@ -24,13 +24,13 @@ module Jets::Builders::ShimVars
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def full(path)
|
27
|
-
path = "#{Jets.root}
|
27
|
+
path = "#{Jets.root}/#{path}" unless path.starts_with?("/")
|
28
28
|
path
|
29
29
|
end
|
30
30
|
|
31
31
|
def relative(path)
|
32
32
|
full_path = full(path)
|
33
|
-
full_path.sub(Jets.root
|
33
|
+
full_path.sub("#{Jets.root}/", "")
|
34
34
|
.sub(/.*internal\/app/, "app")
|
35
35
|
|
36
36
|
end
|
data/lib/jets/cfn/upload.rb
CHANGED
@@ -70,7 +70,7 @@ class Jets::Cfn
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def upload_asset_folder(folder)
|
73
|
-
expression = "#{Jets.root}
|
73
|
+
expression = "#{Jets.root}/#{folder}/**/*"
|
74
74
|
group_size = 10
|
75
75
|
Dir.glob(expression).each_slice(group_size) do |paths|
|
76
76
|
threads = []
|
@@ -95,7 +95,7 @@ class Jets::Cfn
|
|
95
95
|
end
|
96
96
|
|
97
97
|
def s3_key(full_path)
|
98
|
-
relative_path = full_path.sub(Jets.root
|
98
|
+
relative_path = full_path.sub("#{Jets.root}/", '')
|
99
99
|
"jets/#{relative_path}"
|
100
100
|
end
|
101
101
|
|
data/lib/jets/commands/build.rb
CHANGED
@@ -109,12 +109,12 @@ module Jets::Commands
|
|
109
109
|
# TODO: rework code so that Dir.pwd does not have to be in tmp_code for build to work.
|
110
110
|
def self.app_files
|
111
111
|
paths = []
|
112
|
-
expression = "#{Jets.root}app/**/**/*.rb"
|
112
|
+
expression = "#{Jets.root}/app/**/**/*.rb"
|
113
113
|
Dir.glob(expression).each do |path|
|
114
114
|
return false unless File.file?(path)
|
115
115
|
next unless app_file?(path)
|
116
116
|
|
117
|
-
relative_path = path.sub(Jets.root
|
117
|
+
relative_path = path.sub("#{Jets.root}/", '')
|
118
118
|
# Rids of the Jets.root at beginning
|
119
119
|
paths << relative_path
|
120
120
|
end
|
@@ -128,12 +128,12 @@ module Jets::Commands
|
|
128
128
|
|
129
129
|
def self.shared_files
|
130
130
|
paths = []
|
131
|
-
expression = "#{Jets.root}app/**/**/*.rb"
|
131
|
+
expression = "#{Jets.root}/app/**/**/*.rb"
|
132
132
|
Dir.glob(expression).each do |path|
|
133
133
|
return false unless File.file?(path)
|
134
134
|
next unless path.include?("app/shared/resources")
|
135
135
|
|
136
|
-
relative_path = path.sub(Jets.root
|
136
|
+
relative_path = path.sub("#{Jets.root}/", '')
|
137
137
|
# Rids of the Jets.root at beginning
|
138
138
|
paths << relative_path
|
139
139
|
end
|
data/lib/jets/commands/call.rb
CHANGED
@@ -115,7 +115,7 @@ class Jets::Commands::Call
|
|
115
115
|
|
116
116
|
def load_event_from_file(text)
|
117
117
|
path = text.gsub('file://','')
|
118
|
-
path = "#{Jets.root}
|
118
|
+
path = "#{Jets.root}/#{path}" unless path[0..0] == '/'
|
119
119
|
unless File.exist?(path)
|
120
120
|
puts "File #{path} does not exist. Are you sure the file exists?".color(:red)
|
121
121
|
exit
|
@@ -2,7 +2,7 @@ class Jets::Commands::Call
|
|
2
2
|
class AnonymousGuesser < BaseGuesser
|
3
3
|
def detect_class_name
|
4
4
|
found_path = function_paths.find do |path|
|
5
|
-
File.exist?("#{Jets.root}
|
5
|
+
File.exist?("#{Jets.root}/#{path}")
|
6
6
|
end
|
7
7
|
|
8
8
|
klass = Jets::Klass.from_path(found_path) if found_path
|
@@ -11,7 +11,7 @@ class Jets::Commands::Db::Tasks
|
|
11
11
|
db_configs = Jets.application.config.database
|
12
12
|
ActiveRecord::Tasks::DatabaseTasks.database_configuration = db_configs
|
13
13
|
ActiveRecord::Tasks::DatabaseTasks.migrations_paths = ["db/migrate"]
|
14
|
-
ActiveRecord::Tasks::DatabaseTasks.seed_loader = Seeder.new("#{Jets.root}db/seeds.rb")
|
14
|
+
ActiveRecord::Tasks::DatabaseTasks.seed_loader = Seeder.new("#{Jets.root}/db/seeds.rb")
|
15
15
|
|
16
16
|
# Need to mock out the usage of Rails.application in:
|
17
17
|
# activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb
|
data/lib/jets/commands/deploy.rb
CHANGED
@@ -39,7 +39,7 @@ module Jets::Commands
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def check_dev_mode
|
42
|
-
if File.exist?("#{Jets.root}dev.mode")
|
42
|
+
if File.exist?("#{Jets.root}/dev.mode")
|
43
43
|
puts "The dev.mode file exists. Please removed it and run bundle update before you deploy.".color(:red)
|
44
44
|
exit 1
|
45
45
|
end
|
@@ -11,7 +11,7 @@ class Jets::Commands::Import
|
|
11
11
|
def create
|
12
12
|
path = File.expand_path("./templates/", File.dirname(__FILE__)) + "/submodules-cheatsheet.md"
|
13
13
|
basename = File.basename(path)
|
14
|
-
dest = "#{Jets.root}
|
14
|
+
dest = "#{Jets.root}/#{basename}"
|
15
15
|
cheatsheet = Jets::Erb.result(path, cheatsheet_vars)
|
16
16
|
FileUtils.mkdir_p(File.dirname(dest))
|
17
17
|
IO.write(dest, cheatsheet)
|
data/lib/jets/commands/runner.rb
CHANGED
@@ -24,7 +24,7 @@ module Jets::Commands
|
|
24
24
|
puts "path #{path}"
|
25
25
|
Dir.glob("#{path}/*").each do |src|
|
26
26
|
config_file = "config/environments/#{File.basename(src)}"
|
27
|
-
dest = "#{Jets.root}
|
27
|
+
dest = "#{Jets.root}/#{config_file}"
|
28
28
|
|
29
29
|
puts "src #{src}"
|
30
30
|
puts "dest #{dest}"
|
@@ -37,7 +37,7 @@ module Jets::Commands
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def update_routes
|
40
|
-
routes_file = "#{Jets.root}config/routes.rb"
|
40
|
+
routes_file = "#{Jets.root}/config/routes.rb"
|
41
41
|
return unless File.exist?(routes_file)
|
42
42
|
|
43
43
|
lines = IO.readlines(routes_file)
|
@@ -58,7 +58,7 @@ module Jets::Commands
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def update_mode_setting
|
61
|
-
application_file = "#{Jets.root}config/application.rb"
|
61
|
+
application_file = "#{Jets.root}/config/application.rb"
|
62
62
|
lines = IO.readlines(application_file)
|
63
63
|
deprecated_code = 'config.api_generator'
|
64
64
|
return unless lines.detect { |l| l.include?(deprecated_code) }
|
@@ -78,19 +78,19 @@ module Jets::Commands
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def update_config_ru
|
81
|
-
config_ru = File.read("#{Jets.root}config.ru")
|
81
|
+
config_ru = File.read("#{Jets.root}/config.ru")
|
82
82
|
return if config_ru.include?("Jets.boot")
|
83
83
|
|
84
84
|
src = File.expand_path("templates/skeleton/config.ru", File.dirname(__FILE__))
|
85
|
-
dest = "#{Jets.root}config.ru"
|
85
|
+
dest = "#{Jets.root}/config.ru"
|
86
86
|
puts "Update: config.ru"
|
87
87
|
FileUtils.cp(src, dest)
|
88
88
|
end
|
89
89
|
|
90
90
|
def remove_ruby_lazy_load
|
91
|
-
app_config = "#{Jets.root}config/application.rb"
|
91
|
+
app_config = "#{Jets.root}/config/application.rb"
|
92
92
|
remove_ruby_lazy_load_for(app_config)
|
93
|
-
Dir.glob("#{Jets.root}config/environments/*.rb").each do |env_config|
|
93
|
+
Dir.glob("#{Jets.root}/config/environments/*.rb").each do |env_config|
|
94
94
|
remove_ruby_lazy_load_for(env_config)
|
95
95
|
end
|
96
96
|
end
|
data/lib/jets/controller/base.rb
CHANGED
@@ -47,7 +47,7 @@ class Jets::Controller
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def default_layout
|
50
|
-
application_layout_exist = !Dir.glob("#{Jets.root}app/views/layouts/application*").empty?
|
50
|
+
application_layout_exist = !Dir.glob("#{Jets.root}/app/views/layouts/application*").empty?
|
51
51
|
"application" if application_layout_exist
|
52
52
|
end
|
53
53
|
|
@@ -215,7 +215,7 @@ module Jets::Controller::Rendering
|
|
215
215
|
end
|
216
216
|
end
|
217
217
|
|
218
|
-
ActionController::Base.append_view_path("#{Jets.root}app/views")
|
218
|
+
ActionController::Base.append_view_path("#{Jets.root}/app/views")
|
219
219
|
|
220
220
|
setup_webpacker if Jets.webpacker?
|
221
221
|
end
|
@@ -223,10 +223,10 @@ module Jets::Controller::Rendering
|
|
223
223
|
# Does not include ApplicationHelper, will include ApplicationHelper explicitly first.
|
224
224
|
def find_app_helper_classes
|
225
225
|
klasses = []
|
226
|
-
expression = "#{Jets.root}app/helpers/**/*"
|
226
|
+
expression = "#{Jets.root}/app/helpers/**/*"
|
227
227
|
Dir.glob(expression).each do |path|
|
228
228
|
next unless File.file?(path)
|
229
|
-
class_name = path.sub("#{Jets.root}app/helpers/","").sub(/\.rb/,'')
|
229
|
+
class_name = path.sub("#{Jets.root}/app/helpers/","").sub(/\.rb/,'')
|
230
230
|
unless class_name == "application_helper"
|
231
231
|
klasses << class_name.classify.constantize # autoload
|
232
232
|
end
|
data/lib/jets/core.rb
CHANGED
@@ -18,14 +18,10 @@ module Jets::Core
|
|
18
18
|
Jets::Booter.boot!(options)
|
19
19
|
end
|
20
20
|
|
21
|
-
# Ensures trailing slash
|
22
|
-
# Useful for appending a './' in front of a path or leaving it alone.
|
23
|
-
# Returns: '/path/with/trailing/slash/' or './'
|
24
21
|
def root
|
25
22
|
# Do not memoize this method. Turbo mode can change it
|
26
23
|
root = ENV['JETS_ROOT'].to_s
|
27
|
-
root =
|
28
|
-
root = "#{root}/" unless root.ends_with?('/')
|
24
|
+
root = Dir.pwd if root == ''
|
29
25
|
Pathname.new(root)
|
30
26
|
end
|
31
27
|
|
@@ -110,14 +106,14 @@ module Jets::Core
|
|
110
106
|
|
111
107
|
# Eager load user's application
|
112
108
|
def eager_load_app
|
113
|
-
Dir.glob("#{Jets.root}app/**/*.rb").select do |path|
|
109
|
+
Dir.glob("#{Jets.root}/app/**/*.rb").select do |path|
|
114
110
|
next if !File.file?(path) or path =~ %r{/javascript/} or path =~ %r{/views/}
|
115
111
|
next if path.include?('app/functions') || path.include?('app/shared/functions') || path.include?('app/internal/functions')
|
116
112
|
|
117
113
|
class_name = path
|
118
114
|
.sub(/\.rb$/,'') # remove .rb
|
119
115
|
.sub(%{^\./},'') # remove ./
|
120
|
-
.sub(Jets.root
|
116
|
+
.sub("#{Jets.root}/",'')
|
121
117
|
.sub(%r{app/shared/\w+/},'') # remove shared/resources or shared/extensions
|
122
118
|
.sub(%r{app/\w+/},'') # remove app/controllers or app/jobs etc
|
123
119
|
class_name = class_name.classify
|
@@ -150,7 +146,7 @@ module Jets::Core
|
|
150
146
|
end
|
151
147
|
|
152
148
|
def rack?
|
153
|
-
path = "#{Jets.root}rack"
|
149
|
+
path = "#{Jets.root}/rack"
|
154
150
|
File.exist?(path) || File.symlink?(path)
|
155
151
|
end
|
156
152
|
|
data/lib/jets/db.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
module Jets::Db ; end
|
2
2
|
|
3
3
|
# Thanks: https://makandracards.com/makandra/42521-detecting-if-a-ruby-gem-is-loaded
|
4
|
-
if File.exist?("#{Jets.root}config/database.yml")
|
4
|
+
if File.exist?("#{Jets.root}/config/database.yml")
|
5
5
|
require "active_record"
|
6
6
|
specs = Gem.loaded_specs
|
7
7
|
require "mysql2" if specs.key?('mysql2')
|
8
8
|
require "pg" if specs.key?('pg')
|
9
9
|
end
|
10
10
|
|
11
|
-
if File.exist?("#{Jets.root}config/dynamodb.yml")
|
11
|
+
if File.exist?("#{Jets.root}/config/dynamodb.yml")
|
12
12
|
specs = Gem.loaded_specs
|
13
13
|
specs.key?('dynomite')
|
14
14
|
require "dynomite" if specs.key?('dynomite')
|
data/lib/jets/inflections.rb
CHANGED
@@ -29,12 +29,7 @@
|
|
29
29
|
module Jets::Lambda
|
30
30
|
class FunctionConstructor
|
31
31
|
def initialize(code_path)
|
32
|
-
@code_path =
|
33
|
-
end
|
34
|
-
|
35
|
-
def full(path)
|
36
|
-
path = "#{Jets.root}#{path}" unless path.include?(Jets.root.to_s)
|
37
|
-
path
|
32
|
+
@code_path = "#{Jets.root}/#{code_path}"
|
38
33
|
end
|
39
34
|
|
40
35
|
def build
|
@@ -48,7 +43,7 @@ module Jets::Lambda
|
|
48
43
|
# For anonymous classes method_added during task registration contains ""
|
49
44
|
# for the class name. We adjust it here.
|
50
45
|
def adjust_tasks(klass)
|
51
|
-
class_name = @code_path.sub(/.*\/functions\//,'').sub(/\.rb$/, '')
|
46
|
+
class_name = @code_path.to_s.sub(/.*\/functions\//,'').sub(/\.rb$/, '')
|
52
47
|
class_name = class_name.classify
|
53
48
|
klass.tasks.each do |task|
|
54
49
|
task.class_name = class_name
|
@@ -27,7 +27,7 @@ module Jets::Middleware
|
|
27
27
|
# Different check for middleware because we need webpacker helpers for url helpers.
|
28
28
|
# But we dont want to actually serve via webpacker middleware when running on AWS.
|
29
29
|
# By this time the url helpers are serving assets out of s3.
|
30
|
-
return if File.exist?("#{Jets.root}config/disable-webpacker-middleware.txt") # created as part of `jets deploy`
|
30
|
+
return if File.exist?("#{Jets.root}/config/disable-webpacker-middleware.txt") # created as part of `jets deploy`
|
31
31
|
require "jets/controller/middleware/webpacker_setup"
|
32
32
|
middleware.use Webpacker::DevServerProxy
|
33
33
|
end
|
@@ -106,7 +106,7 @@ private
|
|
106
106
|
|
107
107
|
def s3_public
|
108
108
|
# s3_base_url.txt is created as part of the build process
|
109
|
-
s3_base_url = IO.read("#{Jets.root}config/s3_base_url.txt").strip
|
109
|
+
s3_base_url = IO.read("#{Jets.root}/config/s3_base_url.txt").strip
|
110
110
|
"#{s3_base_url}/public"
|
111
111
|
end
|
112
112
|
memoize :s3_public
|
@@ -41,7 +41,7 @@ class Jets::PolyFun
|
|
41
41
|
internal = app_class.respond_to?(:internal) && app_class.internal
|
42
42
|
src = internal ?
|
43
43
|
"#{File.expand_path("../internal", File.dirname(__FILE__))}/#{@task.poly_src_path}" :
|
44
|
-
"#{Jets.root}
|
44
|
+
"#{Jets.root}/#{@task.poly_src_path}"
|
45
45
|
dest = "#{@temp_dir}/#{@task.poly_src_path}"
|
46
46
|
|
47
47
|
FileUtils.mkdir_p(File.dirname(dest))
|
@@ -18,7 +18,7 @@ class Jets::PolyFun
|
|
18
18
|
|
19
19
|
# https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html
|
20
20
|
def async_syntax?
|
21
|
-
app_path = Jets.root + @task.handler_path.sub('handlers/', 'app/')
|
21
|
+
app_path = "#{Jets.root}/" + @task.handler_path.sub('handlers/', 'app/')
|
22
22
|
source_code = IO.read(app_path)
|
23
23
|
source_code.match(/=\s*async.*\(/)
|
24
24
|
end
|
@@ -21,7 +21,7 @@ class Jets::Processors::Deducer
|
|
21
21
|
# Input: @handler_path: handlers/jobs/hard_job.rb
|
22
22
|
# Output: #{Jets.root/app/jobs/hard_job.rb
|
23
23
|
def path
|
24
|
-
|
24
|
+
@handler_path.sub("handlers", "app") + ".rb"
|
25
25
|
end
|
26
26
|
|
27
27
|
# process_type is key. It can be either "controller" or "job". It is used to
|
data/lib/jets/rack_server.rb
CHANGED
@@ -15,10 +15,10 @@ module Jets::Resource::ApiGateway
|
|
15
15
|
method_responses: [{
|
16
16
|
status_code: '200',
|
17
17
|
response_parameters: {
|
18
|
-
"method.response.header.Access-Control-
|
19
|
-
"method.response.header.Access-Control-
|
20
|
-
"method.response.header.Access-Control-
|
21
|
-
"method.response.header.Access-Control-
|
18
|
+
"method.response.header.Access-Control-Allow-Origin": true,
|
19
|
+
"method.response.header.Access-Control-Allow-Headers": true,
|
20
|
+
"method.response.header.Access-Control-Allow-Methods": true,
|
21
|
+
"method.response.header.Access-Control-Allow-Credentials": true,
|
22
22
|
},
|
23
23
|
response_models: {},
|
24
24
|
}],
|
@@ -31,10 +31,10 @@ module Jets::Resource::ApiGateway
|
|
31
31
|
integration_responses: [{
|
32
32
|
status_code: '200',
|
33
33
|
response_parameters: {
|
34
|
-
"method.response.header.Access-Control-
|
35
|
-
"method.response.header.Access-Control-
|
36
|
-
"method.response.header.Access-Control-
|
37
|
-
"method.response.header.Access-Control-
|
34
|
+
"method.response.header.Access-Control-Allow-Origin": "'#{allow_origin}'",
|
35
|
+
"method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Amz-User-Agent'",
|
36
|
+
"method.response.header.Access-Control-Allow-Methods": "'OPTIONS,GET'",
|
37
|
+
"method.response.header.Access-Control-Allow-Credentials": "'false'",
|
38
38
|
},
|
39
39
|
response_templates: {
|
40
40
|
"application/json": '',
|
@@ -65,8 +65,17 @@ module Jets::Resource::ApiGateway
|
|
65
65
|
private
|
66
66
|
|
67
67
|
def authorization_type
|
68
|
-
type = @route.authorization_type ||
|
69
|
-
|
68
|
+
type = @route.authorization_type ||
|
69
|
+
controller_auth_type ||
|
70
|
+
Jets.config.api.authorization_type
|
71
|
+
type.to_s.upcase
|
72
|
+
end
|
73
|
+
|
74
|
+
def controller_auth_type
|
75
|
+
controller_name = @route.to.split('#').first
|
76
|
+
controller = "#{controller_name}_controller".classify.constantize
|
77
|
+
# Already handles inheritance via class_attribute
|
78
|
+
controller.authorization_type
|
70
79
|
end
|
71
80
|
|
72
81
|
def resource_id
|
data/lib/jets/router.rb
CHANGED
@@ -84,8 +84,10 @@ module Jets
|
|
84
84
|
end
|
85
85
|
|
86
86
|
# root "posts#index"
|
87
|
-
def root(to)
|
88
|
-
|
87
|
+
def root(to, options={})
|
88
|
+
default = {path: '', to: to, method: :get, root: true}
|
89
|
+
options = default.merge(options)
|
90
|
+
@routes << Route.new(options)
|
89
91
|
end
|
90
92
|
|
91
93
|
# Useful for creating API Gateway Resources
|
data/lib/jets/stack.rb
CHANGED
@@ -72,13 +72,13 @@ module Jets
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def eager_load_shared_resources!
|
75
|
-
ActiveSupport::Dependencies.autoload_paths += ["#{Jets.root}app/shared/resources"]
|
76
|
-
Dir.glob("#{Jets.root}app/shared/resources/**/*.rb").select do |path|
|
75
|
+
ActiveSupport::Dependencies.autoload_paths += ["#{Jets.root}/app/shared/resources"]
|
76
|
+
Dir.glob("#{Jets.root}/app/shared/resources/**/*.rb").select do |path|
|
77
77
|
next if !File.file?(path) or path =~ %r{/javascript/} or path =~ %r{/views/}
|
78
78
|
|
79
79
|
class_name = path
|
80
80
|
.sub(/\.rb$/,'') # remove .rb
|
81
|
-
.sub(Jets.root
|
81
|
+
.sub("#{Jets.root}/",'') # remove ./
|
82
82
|
.sub(%r{app/shared/resources/},'') # remove app/shared/resources/
|
83
83
|
.classify
|
84
84
|
class_name.constantize # use constantize instead of require so dont have to worry about order.
|
data/lib/jets/stack/function.rb
CHANGED
@@ -40,7 +40,7 @@ class Jets::Stack
|
|
40
40
|
attributes = @template.values.first
|
41
41
|
handler = attributes['Properties']['Handler']
|
42
42
|
search_expression = handler.split('.')[0..-2].join('.') + '.*'
|
43
|
-
search_expression.sub('handlers/shared/', "#{Jets.root}app/shared/")
|
43
|
+
search_expression.sub('handlers/shared/', "#{Jets.root}/app/shared/")
|
44
44
|
end
|
45
45
|
|
46
46
|
# Relative path
|
data/lib/jets/stack/main/dsl.rb
CHANGED
@@ -17,7 +17,7 @@ class Jets::Stack
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.included(base)
|
20
|
-
base_path = "#{Jets.root}app/shared/extensions"
|
20
|
+
base_path = "#{Jets.root}/app/shared/extensions"
|
21
21
|
ActiveSupport::Dependencies.autoload_paths += [base_path]
|
22
22
|
|
23
23
|
Dir.glob("#{base_path}/**/*.rb").each do |path|
|
data/lib/jets/tmp_loader.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
class Jets::Turbo
|
2
2
|
class DatabaseYaml
|
3
3
|
def reconfigure
|
4
|
-
current_yaml = "#{Jets.root}rack/config/database.yml"
|
4
|
+
current_yaml = "#{Jets.root}/rack/config/database.yml"
|
5
5
|
return unless File.exist?(current_yaml)
|
6
6
|
|
7
7
|
vars = {}
|
@@ -27,7 +27,7 @@ class Jets::Turbo
|
|
27
27
|
if !current_database[env]['database'].include?('<%') # already has ERB
|
28
28
|
vars["database_#{env}"] = current_database[env]['database']
|
29
29
|
else
|
30
|
-
lines = IO.readlines("#{Jets.root}rack/config/application.rb")
|
30
|
+
lines = IO.readlines("#{Jets.root}/rack/config/application.rb")
|
31
31
|
module_line = lines.find { |l| l =~ /^module / }
|
32
32
|
app_module = module_line.gsub(/^module /,'').strip
|
33
33
|
app_name = app_module.underscore
|
data/lib/jets/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|