tzispa 0.4.15 → 0.4.16

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
  SHA1:
3
- metadata.gz: 1cb6d1509d41c50ba037726c1873f83f1a8b3ab2
4
- data.tar.gz: c31027f97f9e020a1374fe41701fa765df5718b1
3
+ metadata.gz: 210b3ade3e73dabae1b524cb527eafe85b4d188d
4
+ data.tar.gz: f79ec50b9f89adc27c78cd6a8866eaa5dddc2966
5
5
  SHA512:
6
- metadata.gz: 59623572733062ea7610fa746f39a5221112ee8eb09726a626cef6f349a90aa7172b0e7c354d4157d4febaf28978df6257e3ddffdb811e404d3713c5f36ec9c6
7
- data.tar.gz: 4db3438a11d81744dcfcb2b322e44a245ae254e158160e175ba30c2376686cfa61f6a72fd57d5b6cfb08e73e7ea8b38eba589476d91bb8fc122fac02316f7848
6
+ metadata.gz: d466ff27221ebba0b9e7f39e890ab22240586f6008a18913366e1d14dcfb66e3ccb825cd9c3c2689b538f535a5b202021dafe86f690c764c9347e6391dd084de
7
+ data.tar.gz: fd36aaa6d64efe67dd8182449f2d2e508733017007584059e6a5c7d98f4eb502ee500d4755dddd995407b323900eff67f126b0f17a305021e2bffc943b74a365
data/CHANGELOG.md CHANGED
@@ -2,11 +2,14 @@ Tzispa
2
2
 
3
3
  General purpose web framework
4
4
 
5
+ ## v0.4.16
6
+ - check response_verb before send it to the handler in controller/api
7
+ - move routes from app-class to app-instance
8
+
5
9
  ## v0.4.15
6
10
  - move context creation from app to middleware
7
11
  - remove controller/layout custom headers
8
12
 
9
-
10
13
  ## v0.4.14
11
14
  - remove moneta session in middleware: now use session goes in App class definition
12
15
  - remove repository dup in context because isn't required without the respository.use method
data/lib/tzispa/app.rb CHANGED
@@ -28,8 +28,6 @@ module Tzispa
28
28
 
29
29
  class << self
30
30
 
31
- attr_accessor :routes
32
-
33
31
  def inherited(base)
34
32
  super
35
33
  base.class_eval do
@@ -51,20 +49,19 @@ module Tzispa
51
49
  }
52
50
  end
53
51
 
54
- def mount(mount_point, builder)
52
+ def mount(path, builder)
55
53
  self.new.tap { |app|
56
- self.routes ||= Routes.new(mount_point)
57
- yield(routes)
58
- app.middleware.map mount_point, builder
54
+ app.routes ||= Routes.new(path)
55
+ yield(app.routes)
56
+ app.middleware.load_app path, builder
59
57
  }
60
58
  end
61
59
 
62
- def router
63
- self.routes&.router
64
- end
65
60
 
66
61
  end
67
62
 
63
+ attr_accessor :routes
64
+
68
65
  def initialize(domain_name)
69
66
  @domain = Domain.new(domain_name)
70
67
  @config = Config::AppConfig.new(@domain).load!
@@ -75,22 +72,24 @@ module Tzispa
75
72
  middleware.call(env)
76
73
  end
77
74
 
75
+ def router
76
+ routes&.router
77
+ end
78
+
78
79
  def load!
79
- unless @loaded
80
- Mutex.new.synchronize {
81
- load_locales
82
- @repository = Data::Repository.new(@config.repository.to_h).load! if @config.respond_to? :repository
83
- @engine = Rig::Engine.new(self, @config.template_cache.enabled, @config.template_cache.size)
84
- @logger = Logger.new("logs/#{@domain.name}.log", 'weekly')
85
- @logger.level = @config.respond_to?(:developing) && @config.developing ? Logger::DEBUG : Logger::INFO
86
- @domain.require_dir 'helpers'
87
- @domain.require_dir 'api'
88
- @domain.require_dir 'middleware'
89
- @middleware.load!
90
- @loaded = true
91
- }
92
- end
93
- self
80
+ Mutex.new.synchronize {
81
+ load_locales
82
+ @repository = Data::Repository.new(@config.repository.to_h).load! if @config.respond_to? :repository
83
+ @engine = Rig::Engine.new(self, @config.template_cache.enabled, @config.template_cache.size)
84
+ @logger = Logger.new("logs/#{@domain.name}.log", 'weekly')
85
+ @logger.level = @config.respond_to?(:developing) && @config.developing ? Logger::DEBUG : Logger::INFO
86
+ @domain.require_dir 'helpers'
87
+ @domain.require_dir 'api'
88
+ @domain.require_dir 'middleware'
89
+ @middleware.load!
90
+ @loaded = true
91
+ }
92
+ self
94
93
  end
95
94
 
96
95
  private
@@ -16,6 +16,8 @@ module Tzispa
16
16
  include Tzispa::Helpers::Security
17
17
  include Tzispa::Helpers::Response
18
18
 
19
+ attr_reader :hnd
20
+
19
21
  def dispatch!
20
22
  raise Error::InvalidSign.new unless sign?
21
23
  @handler, domain_name = context.router_params[:handler].split('.').reverse
@@ -24,7 +26,7 @@ module Tzispa
24
26
  @predicate = context.router_params[:predicate]
25
27
  @hnd = handler_class.new(context)
26
28
  @predicate ? hnd.send(@verb, @predicate) : hnd.send(@verb)
27
- send hnd.response_verb
29
+ send hnd.response_verb if hnd.response_verb && hnd.respond_to?(hnd.response_verb)
28
30
  response.finish
29
31
  end
30
32
 
@@ -112,7 +114,6 @@ module Tzispa
112
114
 
113
115
  private
114
116
 
115
- attr_reader :hnd
116
117
 
117
118
  def set_action_headers
118
119
  response['X-API'] = "#{context.router_params[:sign]}:#{context.router_params[:handler]}:#{context.router_params[:verb]}:#{context.router_params[:predicate]}"
@@ -74,7 +74,7 @@ module Tzispa
74
74
  end
75
75
 
76
76
  def path(path_id, params={})
77
- app.class.routes.path path_id, params
77
+ app.routes.path path_id, params
78
78
  end
79
79
 
80
80
  def canonical_url(path_id, params={})
@@ -12,13 +12,13 @@ module Tzispa
12
12
  @builder = ::Rack::Builder.new
13
13
  load_default_stack
14
14
  @stack.each { |m, args, block| @builder.use load_middleware(m), *args, &block }
15
- @builder.run @application.class.router
15
+ @builder.run @application.router
16
16
  self
17
17
  end
18
18
 
19
- def map(mount_path, builder)
19
+ def load_app(path, builder)
20
20
  app = @application
21
- builder.map mount_path do
21
+ builder.map path do
22
22
  run app.load!
23
23
  end
24
24
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tzispa
4
- VERSION = '0.4.15'
4
+ VERSION = '0.4.16'
5
5
  FRAMEWORK_NAME = 'Tzispa'
6
6
  GEM_NAME = 'tzispa'
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tzispa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.15
4
+ version: 0.4.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Antonio Piñero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-03 00:00:00.000000000 Z
11
+ date: 2016-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack