snails 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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