volt 0.9.4.pre2 → 0.9.4.pre3
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 +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/volt/controllers/http_controller.rb +28 -6
- data/lib/volt/controllers/http_controller/http_cookie_persistor.rb +22 -0
- data/lib/volt/models/url.rb +6 -2
- data/lib/volt/page/page.rb +0 -2
- data/lib/volt/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbb8632dc480ad8c3e725df22fc50513d967aca8
|
4
|
+
data.tar.gz: 7378a263f455ca95b60a04a75fa04409f9e0111f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 248aa3a47ef194d783dfd47c9ff794663170cccdd06aa66eb2bd4fb197ade72fac333f777d55134bc42d08fb65e25d525dbb9cf91ceb6c5ef53e20f25b7847af
|
7
|
+
data.tar.gz: 09b7f6c57f8296c2079788e64372f3422b373d00b0ce9e64f351f36d640806961ec11df176ef302430d01e0cb9957e81a606fb2b1014a742d30ed7242d44a88d
|
data/CHANGELOG.md
CHANGED
@@ -4,10 +4,13 @@
|
|
4
4
|
### Added
|
5
5
|
- ```root``` can now be called from a model to get the root model on the collection. (So if the model is on store, it will return ```store```)
|
6
6
|
- ```store``` can now be called from inside of a model
|
7
|
+
- before_save was added to models.
|
8
|
+
- added ```cookies``` model for HttpController
|
7
9
|
|
8
10
|
### Changed
|
9
11
|
- fixed bug with ReactiveHash#to_json
|
10
12
|
- fixed bug with field Numeric coersion
|
13
|
+
- fixed issue with initializers not loading on client sometimes.
|
11
14
|
|
12
15
|
## 0.9.3
|
13
16
|
[0.9.3 Update Blog Post](http://blog.voltframework.com/post/121128931859/0-9-3-stuff-you-asked-for)
|
@@ -1,15 +1,12 @@
|
|
1
1
|
require 'volt/server/rack/http_response_header'
|
2
2
|
require 'volt/server/rack/http_response_renderer'
|
3
|
+
require 'volt/controllers/http_controller/http_cookie_persistor'
|
3
4
|
require 'volt/utils/lifecycle_callbacks'
|
4
5
|
|
5
6
|
module Volt
|
6
7
|
# Allow you to create controllers that act as http endpoints
|
7
8
|
class HttpController
|
8
9
|
include LifecycleCallbacks
|
9
|
-
|
10
|
-
#TODO params is only public for testing
|
11
|
-
attr_accessor :params
|
12
|
-
|
13
10
|
# Setup before_action and after_action
|
14
11
|
setup_action_helpers_in_class(:before_action, :after_action)
|
15
12
|
|
@@ -19,7 +16,18 @@ module Volt
|
|
19
16
|
@response_headers = HttpResponseHeader.new
|
20
17
|
@response_body = []
|
21
18
|
@request = request
|
22
|
-
@
|
19
|
+
@initial_params = params
|
20
|
+
end
|
21
|
+
|
22
|
+
def params
|
23
|
+
@params ||= begin
|
24
|
+
params = request.params.symbolize_keys.merge(@initial_params)
|
25
|
+
Volt::Model.new(params, persistor: Volt::Persistors::Params)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def cookies
|
30
|
+
@cookies ||= Volt::Model.new(request.cookies, persistor: Volt::Persistors::HttpCookiePersistor)
|
23
31
|
end
|
24
32
|
|
25
33
|
def perform(action='index')
|
@@ -61,7 +69,21 @@ module Volt
|
|
61
69
|
@response_status = 500
|
62
70
|
end
|
63
71
|
|
64
|
-
Rack::Response.new(response_body, response_status, response_headers)
|
72
|
+
resp = Rack::Response.new(response_body, response_status, response_headers)
|
73
|
+
|
74
|
+
# Update any changed cookies
|
75
|
+
new_cookies = cookies.persistor.changed_cookies
|
76
|
+
|
77
|
+
new_cookies.each_pair do |key, value|
|
78
|
+
if value.is_a?(String)
|
79
|
+
value = {value: value}
|
80
|
+
end
|
81
|
+
value[:path] = '/'
|
82
|
+
|
83
|
+
resp.set_cookie(key.to_s, value)
|
84
|
+
end
|
85
|
+
|
86
|
+
resp
|
65
87
|
end
|
66
88
|
|
67
89
|
# Returns the http status code as integer
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'volt/models/persistors/base'
|
2
|
+
|
3
|
+
module Volt
|
4
|
+
module Persistors
|
5
|
+
class HttpCookiePersistor < Base
|
6
|
+
attr_reader :changed_cookies
|
7
|
+
|
8
|
+
def initialize(*args)
|
9
|
+
super
|
10
|
+
|
11
|
+
@changed_cookies = {}
|
12
|
+
end
|
13
|
+
|
14
|
+
def changed(attribute_name)
|
15
|
+
value = @model.get(attribute_name)
|
16
|
+
value = value.to_h if value.is_a?(Volt::Model)
|
17
|
+
|
18
|
+
@changed_cookies[attribute_name] = value
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/volt/models/url.rb
CHANGED
@@ -56,12 +56,12 @@ module Volt
|
|
56
56
|
self.fragment = fragment
|
57
57
|
self.query = query
|
58
58
|
|
59
|
-
assign_query_hash_to_params
|
59
|
+
result = assign_query_hash_to_params
|
60
60
|
end
|
61
61
|
|
62
62
|
scroll
|
63
63
|
|
64
|
-
|
64
|
+
result
|
65
65
|
end
|
66
66
|
|
67
67
|
# Full url rebuilds the url from it's constituent parts.
|
@@ -158,12 +158,16 @@ module Volt
|
|
158
158
|
|
159
159
|
fail "no routes match path: #{path}" if new_params == false
|
160
160
|
|
161
|
+
return false if new_params == nil
|
162
|
+
|
161
163
|
query_hash.merge!(new_params)
|
162
164
|
|
163
165
|
# Loop through the .params we already have assigned.
|
164
166
|
lparams = params
|
165
167
|
assign_from_old(lparams, query_hash)
|
166
168
|
assign_new(lparams, query_hash)
|
169
|
+
|
170
|
+
true
|
167
171
|
end
|
168
172
|
|
169
173
|
# Loop through the old params, and overwrite any existing values,
|
data/lib/volt/page/page.rb
CHANGED
@@ -72,7 +72,6 @@ module Volt
|
|
72
72
|
return false if url.blank?
|
73
73
|
|
74
74
|
# Normalize url
|
75
|
-
# Benchmark.bm(1) do
|
76
75
|
if @url.parse(url)
|
77
76
|
if event
|
78
77
|
# Handled new url
|
@@ -85,7 +84,6 @@ module Volt
|
|
85
84
|
# return false to stop the event propigation
|
86
85
|
return false
|
87
86
|
end
|
88
|
-
# end
|
89
87
|
|
90
88
|
# Not stopping, process link normally
|
91
89
|
true
|
data/lib/volt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: volt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.4.
|
4
|
+
version: 0.9.4.pre3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Stout
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -411,6 +411,7 @@ files:
|
|
411
411
|
- lib/volt/config.rb
|
412
412
|
- lib/volt/controllers/collection_helpers.rb
|
413
413
|
- lib/volt/controllers/http_controller.rb
|
414
|
+
- lib/volt/controllers/http_controller/http_cookie_persistor.rb
|
414
415
|
- lib/volt/controllers/model_controller.rb
|
415
416
|
- lib/volt/controllers/template_helpers.rb
|
416
417
|
- lib/volt/data_stores/base_adaptor_client.rb
|