tzispa 0.4.15 → 0.4.16

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
  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