snails 0.8.0 → 0.8.1
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/lib/snails/app.rb +14 -2
- data/lib/snails/loader.rb +19 -3
- data/lib/snails.rb +1 -1
- data/snails.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d235bda86922e62754528a0d8ebd0e875266c8101d162bed2d2791b30bbc76a7
|
4
|
+
data.tar.gz: ebffe464327f0bf09cff4cfdd5736ab9d3f8ed8866d8baa49bf77c74bf9c2870
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1085f36ee8bd4dd653635407ed22d7a5276d6203ae01da4df9066039f77e9a916f6978b9677d1b4f8357f8291976d4b6e29ef0c79e5b8d44aea0aa98e261b09f
|
7
|
+
data.tar.gz: 2a7ac9e077c693a152af80d46f52bd1292a901f9299890490248b1208e44a4c8c70c526f34c3d0b3b6f618c4d2c4186d84b7915147509379092de2c9248f5502
|
data/lib/snails/app.rb
CHANGED
@@ -98,6 +98,7 @@ module Snails
|
|
98
98
|
require 'sprockets-helpers'
|
99
99
|
|
100
100
|
cwd = Pathname.new(Dir.pwd)
|
101
|
+
|
101
102
|
app.set :sprockets, Sprockets::Environment.new(cwd)
|
102
103
|
app.set :digest_assets, false
|
103
104
|
app.set :assets_prefix, app.setting(:assets_prefix, '/assets') # URL
|
@@ -106,6 +107,7 @@ module Snails
|
|
106
107
|
app.set :assets_precompile, app.setting(:assets_precompile, %w(js/main.js css/main.css))
|
107
108
|
app.set :assets_remove_digests, app.setting(:assets_remove_digests, false)
|
108
109
|
|
110
|
+
|
109
111
|
app.configure do
|
110
112
|
app.assets_paths.each do |path|
|
111
113
|
app.sprockets.append_path cwd.join(path)
|
@@ -354,11 +356,13 @@ module Snails
|
|
354
356
|
erb(view_name.to_sym, { layout: layout }.merge(opts))
|
355
357
|
end
|
356
358
|
|
357
|
-
def show_date(
|
358
|
-
|
359
|
+
def show_date(time)
|
360
|
+
time = Time.parse(time) if time.is_a?(String) && !time.blank?
|
361
|
+
time ? time.strftime("%d de %b, %Y") : ''
|
359
362
|
end
|
360
363
|
|
361
364
|
def show_time(time)
|
365
|
+
time = Time.parse(time) if time.is_a?(String) && !time.blank?
|
362
366
|
time ? time.strftime("%d de %b, %Y a las %H:%M") : ''
|
363
367
|
end
|
364
368
|
|
@@ -417,6 +421,10 @@ module Snails
|
|
417
421
|
set :views, Snails.root.join('lib', 'views')
|
418
422
|
set :static_paths, %w(/css /img /js /files /fonts /favicon.ico)
|
419
423
|
|
424
|
+
if defined?(Snails.loader) && Snails.loader.loaded?
|
425
|
+
set :lock, true if Snails.env.development?
|
426
|
+
end
|
427
|
+
|
420
428
|
enable :method_override
|
421
429
|
enable :logging
|
422
430
|
|
@@ -455,6 +463,10 @@ module Snails
|
|
455
463
|
show_error(404)
|
456
464
|
end
|
457
465
|
|
466
|
+
after do
|
467
|
+
Snails.loader.reload! if settings.lock
|
468
|
+
end
|
469
|
+
|
458
470
|
protected
|
459
471
|
|
460
472
|
def deliver(data, code = 200, format = :json)
|
data/lib/snails/loader.rb
CHANGED
@@ -10,19 +10,28 @@ module Snails
|
|
10
10
|
class Loader
|
11
11
|
|
12
12
|
attr_reader :loader
|
13
|
-
attr_accessor :load_paths, :preload_paths, :ignore_paths, :no_eager_load_paths
|
13
|
+
attr_accessor :load_paths, :preload_paths, :postload_paths, :ignore_paths, :no_eager_load_paths
|
14
14
|
|
15
|
-
def initialize(loader: nil, load_paths: nil, preload_paths: nil)
|
15
|
+
def initialize(loader: nil, load_paths: nil, preload_paths: nil, postload_paths: nil)
|
16
16
|
@loader = loader || Zeitwerk::Loader.new
|
17
17
|
@load_paths = load_paths || DEFAULT_LOAD_PATHS
|
18
18
|
@preload_paths = preload_paths || DEFAULT_PRELOAD_PATHS
|
19
|
+
@postload_paths = postload_paths || []
|
19
20
|
@ignore_paths = []
|
20
21
|
@no_eager_load_paths = []
|
21
22
|
end
|
22
23
|
|
24
|
+
def loaded?
|
25
|
+
@loaded
|
26
|
+
end
|
27
|
+
|
23
28
|
def load!(opts = {})
|
24
29
|
# $LOAD_PATH.unshift(File.join(Snails.root, 'lib'))
|
25
30
|
|
31
|
+
preload_paths.each do |path|
|
32
|
+
Dir.glob(Snails.root.join(path, '*.rb')).each { |f| require f }
|
33
|
+
end
|
34
|
+
|
26
35
|
load_paths.each do |path|
|
27
36
|
loader.push_dir(Snails.root.join(path))
|
28
37
|
end
|
@@ -38,11 +47,18 @@ module Snails
|
|
38
47
|
loader.enable_reloading if opts[:enable_reload]
|
39
48
|
loader.setup
|
40
49
|
|
41
|
-
|
50
|
+
postload_paths.each do |path|
|
42
51
|
Dir.glob(Snails.root.join(path, '*.rb')).each { |f| require f }
|
43
52
|
end
|
44
53
|
|
45
54
|
loader.eager_load if opts[:eager_load]
|
55
|
+
|
56
|
+
@loaded = true
|
57
|
+
|
58
|
+
# enable reloading for already defined apps
|
59
|
+
Snails.apps.each do |app|
|
60
|
+
app.set :lock, true
|
61
|
+
end if Snails.env.dev?
|
46
62
|
end
|
47
63
|
|
48
64
|
def reload!
|
data/lib/snails.rb
CHANGED
@@ -44,7 +44,7 @@ end
|
|
44
44
|
# sinatra/activerecord only 'reads' RACK_ENV, so make sure it is set
|
45
45
|
ENV['RACK_ENV'] ||= ENV['RAILS_ENV']
|
46
46
|
|
47
|
-
require 'snails/app' unless Snails.env.test?
|
47
|
+
# require 'snails/app' unless Snails.env.test?
|
48
48
|
unless ENV['SILENT']
|
49
49
|
ruby_version = "#{RUBY_VERSION}" # -p#{RUBY_PATCHLEVEL}
|
50
50
|
ruby_version += " +YJIT" if RUBY_DESCRIPTION['YJIT']
|
data/snails.gemspec
CHANGED