tzispa 0.5.7 → 0.5.8

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