tzispa 0.5.7 → 0.5.8

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: a3636dd9fdb2d87f20c713f22b24979f7581e90b
4
- data.tar.gz: 56a337b9749c02ee44c343e6c4064e18b09207f0
3
+ metadata.gz: d670509b162e3897342fe1fbf0b0355835fb578c
4
+ data.tar.gz: e4a8ed5db557b15288bbb4fb2d3689db63571858
5
5
  SHA512:
6
- metadata.gz: c06aaad81f83e726c4e7bfbaabdb732ed6d17fac90c2e9daa939a7bcc6bccd25fab887ce6068a10bd3ac3ae2d3c09511c2d9874eca61ac2667534eed7e256f24
7
- data.tar.gz: 30f16894884f47f20ee479365cd3a00e3d4b5ee92a48a1f4f0157bf62e53946cc5484d1d63c397bd11e4c52e158a29046ee5c58e6441bd9503cd6ba26a9e2fd3
6
+ metadata.gz: c46d648d7c132be81a90a7da4a685ec58e3c781cc07baa493bdf771e6c33c9861e3e5e0262189e262620fb886d7007dd2045694ec1b5c8fe213094863ea96c27
7
+ data.tar.gz: 58cfbd8362d96d3883c219637bdd705f6988477b860303976f76f1c85f76c1b4e783c7289fa3ccb3cacba44b75a5ed073c52d85e191045bfed7e44c817e213c3
data/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@ Tzispa
2
2
 
3
3
  General purpose web framework
4
4
 
5
+ ## v0.5.8
6
+ - add api mapping verb to method in lib/tzispa/api/handler.rb
7
+ - add support for api handler mapping verb to method in lib/tzispa/controller/api.rb
8
+ - improve app routing DSL by forwarding methods from routes lib/tzispa/app.rb
9
+ - renamed rig related routing methods in lib/tzispa/routes.rb
10
+ - add path building methods for rig layouts in lib/tzispa/http/context.rb
11
+
5
12
  ## v0.5.7
6
13
  - add provides DSL method to specify allowe verbs in api handlers
7
14
  - handler calling improvements in api the controller
@@ -61,25 +61,30 @@ module Tzispa
61
61
  end
62
62
  end
63
63
 
64
- def send(verb, predicate)
64
+ def call(verb, predicate=nil)
65
65
  raise UnknownHandlerVerb.new(verb, self.class.name) unless self.class.provides? verb
66
- args = predicate ? predicate.split('__') : nil
67
- __send__ verb, *args
66
+ # allow compound predicates
67
+ args = predicate ? predicate.split(',') : nil
68
+ send verb, *args
68
69
  end
69
70
 
70
71
  def self.provides(*args)
71
- (@provides ||= Array.new).tap { |prv|
72
+ (@provides ||= Hash.new).tap { |prv|
72
73
  args&.each { |s|
73
- prv << s.to_sym
74
+ prv[s.to_sym] = s
74
75
  }
75
76
  }
76
77
  end
77
78
 
78
- def self.provides?(value)
79
- value = value.to_sym
80
- @provides&.include?(value) && public_method_defined?(value)
79
+ def self.provides?(verb)
80
+ value = verb.to_sym
81
+ @provides&.include?(value) && public_method_defined?(@provides[value])
81
82
  end
82
83
 
84
+ def self.mapping(source, dest)
85
+ @provides ||= Hash.new
86
+ @provides[source] = dest
87
+ end
83
88
 
84
89
  private
85
90
 
data/lib/tzispa/app.rb CHANGED
@@ -25,6 +25,7 @@ module Tzispa
25
25
 
26
26
  def_delegator :@middleware, :use
27
27
  def_delegator :@domain, :name
28
+ def_delegators :@routes, :routing, :route_rig_index, :route_rig_api, :route_rig_signed_api, :route_rig_layout
28
29
 
29
30
 
30
31
  class << self
@@ -54,11 +55,11 @@ module Tzispa
54
55
 
55
56
  end
56
57
 
57
- def initialize(domain_name, mount_path: nil, &block)
58
+ def initialize(domain_name, on: nil, &block)
58
59
  @domain = Domain.new(domain_name)
59
60
  @config = Config::AppConfig.new(@domain).load!
60
61
  @middleware = Middleware.new self
61
- @routes ||= Routes.new(self, mount_path)
62
+ @routes ||= Routes.new(self, on)
62
63
  self.class.add(self)
63
64
  instance_eval(&block) if block
64
65
  end
@@ -46,7 +46,7 @@ module Tzispa
46
46
  @verb = context.router_params[:verb]
47
47
  @predicate = context.router_params[:predicate]
48
48
  @handler = handler_class.new(context)
49
- handler.send @verb, @predicate
49
+ handler.call @verb, @predicate
50
50
  context.flash << handler.message
51
51
  send handler.response_verb if handler.response_verb
52
52
  response.finish
@@ -89,6 +89,22 @@ module Tzispa
89
89
  app[app_name].config.canonical_url + app_path(app_name, path_id, params)
90
90
  end
91
91
 
92
+ def layout_path(layout, params={})
93
+ app.routes.path layout, params.merge!(layout: layout)
94
+ end
95
+
96
+ def app_layout_path(app_name, layout, params={})
97
+ app[app_name].routes.path layout, params.merge!(layout: layout)
98
+ end
99
+
100
+ def layout_canonical_url(layout, params={})
101
+ app.config.canonical_url + layout_path(layout, params)
102
+ end
103
+
104
+ def app_layout_canonical_url(app_name, layout, params={})
105
+ app[app_name].config.canonical_url + app_layout_path(app_name, layout, params)
106
+ end
107
+
92
108
  def api(handler, verb, predicate, sufix, app_name)
93
109
  unless app_name
94
110
  canonical_url :api, handler: handler, verb: verb, predicate: predicate, sufix: sufix
data/lib/tzispa/routes.rb CHANGED
@@ -25,7 +25,7 @@ module Tzispa
25
25
  "#{@map_path}#{@router.path path_id, params}"
26
26
  end
27
27
 
28
- def add(route_id, path, methods, controller)
28
+ def routing(route_id, path, controller, methods: nil, matching: nil)
29
29
  spec_control, callmethod = controller.to_s.split(':')
30
30
  mpath = spec_control.split('#')
31
31
  req_controller = mpath.pop
@@ -37,27 +37,29 @@ module Tzispa
37
37
  controller_module = CONTROLLERS_BASE
38
38
  require "tzispa/controller/#{req_controller}"
39
39
  end
40
- @router.add(path, methods ? {request_method: methods} : nil).tap { |rule|
40
+ @router.add(path).tap { |rule|
41
41
  rule.to TzString.constantize("#{controller_module}::#{controller}").new(@app, callmethod)
42
42
  rule.name = route_id
43
+ rule.add_request_method(methods) if methods
44
+ rule.add_match_with(matching) if matching
43
45
  }
44
46
  end
45
47
 
46
48
 
47
- def index(path, methods=nil, controller=nil)
48
- add :index, path, methods, controller || 'layout:render!'
49
+ def route_rig_index(path, controller: nil, methods: nil)
50
+ routing :index, path, controller || 'layout:render!', methods: methods
49
51
  end
50
52
 
51
- def api(path, methods=nil, controller=nil)
52
- add :api, path, methods, controller || 'api:dispatch!'
53
+ def route_rig_api(path, controller: nil, methods:nil)
54
+ routing :api, path, controller || 'api:dispatch!', methods: methods
53
55
  end
54
56
 
55
- def signed_api(path, methods=nil, controller=nil)
56
- add :sapi, path, methods, controller || 'signed_api:dispatch!'
57
+ def route_rig_signed_api(path, controller: nil, methods: nil)
58
+ routing :sapi, path, controller || 'signed_api:dispatch!', methods: methods
57
59
  end
58
60
 
59
- def site(path, methods=nil, controller=nil)
60
- add :site, path, methods, controller || 'layout:render!'
61
+ def route_rig_layout(layout, path, controller: nil, methods: nil)
62
+ routing layout.to_sym, path, controller || 'layout:render!', methods: methods, matching: {layout: layout.to_s}
61
63
  end
62
64
 
63
65
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tzispa
4
- VERSION = '0.5.7'
4
+ VERSION = '0.5.8'
5
5
  FRAMEWORK_NAME = 'Tzispa'
6
6
  GEM_NAME = 'tzispa'
7
7
  end
data/tzispa.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.add_dependency 'browser', '~> 2.1'
23
23
  s.add_dependency 'tzispa_helpers', '~> 0.1'
24
24
  s.add_dependency 'tzispa_utils', '~> 0.2'
25
- s.add_dependency 'tzispa_rig', '~> 0.4.0'
25
+ s.add_dependency 'tzispa_rig', '~> 0.4.2'
26
26
  s.add_dependency 'tzispa_data', '~> 0.2.0'
27
27
 
28
28
  s.files = Dir.glob("{lib,bin}/**/*") + %w(README.md CHANGELOG.md LICENSE tzispa.gemspec)
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.5.7
4
+ version: 0.5.8
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-10-21 00:00:00.000000000 Z
11
+ date: 2016-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -120,14 +120,14 @@ dependencies:
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: 0.4.0
123
+ version: 0.4.2
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: 0.4.0
130
+ version: 0.4.2
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: tzispa_data
133
133
  requirement: !ruby/object:Gem::Requirement