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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ace977fc33f80028eb415424addddbb1f6e9dcda49b35e4a852aaa7daa032524
4
- data.tar.gz: a371db3ebc879c315e5b6b9fca7de42526963f053a2d128fb485acf07cf02214
3
+ metadata.gz: d235bda86922e62754528a0d8ebd0e875266c8101d162bed2d2791b30bbc76a7
4
+ data.tar.gz: ebffe464327f0bf09cff4cfdd5736ab9d3f8ed8866d8baa49bf77c74bf9c2870
5
5
  SHA512:
6
- metadata.gz: 6a24db7e0c46fe2bdfaa2ca0b19132116b8a39594f5bc59cd4bf14b4c5d433bb783fb1fa1702c82b36c0b94397d949dfecddc18727dba05629137d3c09db3a08
7
- data.tar.gz: fac56d5ef6dac6db26678867090b88af56addbb792de515f835944698c079cab854110ed4e8f77f9b1ea690b6c515e5f670b032979ece8bd88b975c04924cc75
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(date)
358
- date ? date.strftime("%d de %b, %Y") : ''
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
- preload_paths.each do |path|
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
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "snails"
6
- s.version = '0.8.0'
6
+ s.version = '0.8.1'
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ['Tomás Pollak']
9
9
  s.email = ['tomas@forkhq.com']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomás Pollak