breezy 0.18.1 → 0.20.0
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/lib/breezy.rb +1 -23
- data/lib/generators/rails/breezy_generator.rb +3 -3
- data/lib/generators/rails/templates/web/edit.html.erb +6 -1
- data/lib/generators/rails/templates/web/{edit.jsx → edit.js} +0 -0
- data/lib/generators/rails/templates/web/{index.jsx → index.js} +0 -0
- data/lib/generators/rails/templates/web/{new.jsx → new.js} +0 -0
- data/lib/generators/rails/templates/web/{show.jsx → show.js} +0 -0
- data/lib/install/templates/web/reducer.js +1 -1
- data/lib/install/web.rb +1 -3
- metadata +7 -10
- data/lib/breezy/x_domain_blocker.rb +0 -22
- data/lib/breezy/xhr_headers.rb +0 -23
- data/lib/breezy/xhr_url_for.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fcc4cf35ca92806333f48649d4b91ee05fe5a83a78196495c7be8092082c0b90
|
4
|
+
data.tar.gz: 232a74c14a615a93e226b277823d1f53fe4bb68460b21585b6685dd9cf78e998
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edcc8bbd2087fd0e9c9520c3e7fe466786ca8d901b97eacbcc167ae5773bd34067917029c101c0300c6c986c9c0375d30f34725e210d23af4640b6b62809c345
|
7
|
+
data.tar.gz: c54a93e9bbe4e0bffa490fa219a0ba2dff705f9424d63b13ff6731b5f0353f011e057b38c53e5061ef8257c5076f2377fb2980223484fe9d2dcb7041325bbc7c
|
data/lib/breezy.rb
CHANGED
@@ -1,21 +1,12 @@
|
|
1
|
-
require 'breezy/xhr_headers'
|
2
|
-
require 'breezy/xhr_url_for'
|
3
|
-
require 'breezy/x_domain_blocker'
|
4
1
|
require 'breezy/helpers'
|
5
2
|
require 'breezy/redirection'
|
6
3
|
require 'props_template'
|
7
4
|
|
8
5
|
module Breezy
|
9
6
|
module Controller
|
10
|
-
include
|
7
|
+
include Helpers, Redirection
|
11
8
|
|
12
9
|
def self.included(base)
|
13
|
-
if base.respond_to?(:before_action)
|
14
|
-
base.after_action :abort_xdomain_redirect
|
15
|
-
else
|
16
|
-
base.after_filter :abort_xdomain_redirect
|
17
|
-
end
|
18
|
-
|
19
10
|
if base.respond_to?(:helper_method)
|
20
11
|
base.helper_method :param_to_search_path
|
21
12
|
base.helper_method :props_from_form_with
|
@@ -41,19 +32,6 @@ module Breezy
|
|
41
32
|
if app.config.breezy.auto_include
|
42
33
|
include Controller
|
43
34
|
end
|
44
|
-
|
45
|
-
ActionDispatch::Request.class_eval do
|
46
|
-
def referer
|
47
|
-
self.headers['X-XHR-Referer'] || super
|
48
|
-
end
|
49
|
-
alias referrer referer
|
50
|
-
end
|
51
|
-
|
52
|
-
require 'action_dispatch/routing/redirection'
|
53
|
-
|
54
|
-
(ActionView::RoutingUrlFor rescue ActionView::Helpers::UrlHelper).module_eval do
|
55
|
-
prepend XHRUrlFor
|
56
|
-
end
|
57
35
|
end
|
58
36
|
end
|
59
37
|
end
|
@@ -25,7 +25,7 @@ module Rails
|
|
25
25
|
|
26
26
|
%w(index show new edit).each do |view|
|
27
27
|
@action_name = view
|
28
|
-
filename =
|
28
|
+
filename = filename_with_js_extensions(view)
|
29
29
|
template 'web/' + filename, File.join('app/views', controller_file_path, filename)
|
30
30
|
end
|
31
31
|
|
@@ -68,8 +68,8 @@ module Rails
|
|
68
68
|
[name, :json, :props] * '.'
|
69
69
|
end
|
70
70
|
|
71
|
-
def
|
72
|
-
[name, :
|
71
|
+
def filename_with_js_extensions(name)
|
72
|
+
[name, :js] * '.'
|
73
73
|
end
|
74
74
|
|
75
75
|
def filename_with_html_extensions(name)
|
@@ -4,4 +4,9 @@
|
|
4
4
|
window.BREEZY_INITIAL_PAGE_STATE=<%%= initial_state.html_safe %>;
|
5
5
|
</script>
|
6
6
|
|
7
|
-
<div id="app"
|
7
|
+
<div id="app">
|
8
|
+
<%%# If you need SSR follow instructions at %>
|
9
|
+
<%%# https://github.com/thoughtbot/breezy/blob/main/docs/recipes/server-side-rendering.md %>
|
10
|
+
<%%# and uncomment the following line %>
|
11
|
+
<%%#= Humid.render(initial_state).html_safe %>
|
12
|
+
</div>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -5,7 +5,7 @@
|
|
5
5
|
// } from './actions'
|
6
6
|
// import produce from "immer"
|
7
7
|
//
|
8
|
-
// export
|
8
|
+
// export const applicationPagesReducer = (state = {}, action) => {
|
9
9
|
// switch(action.type) {
|
10
10
|
// case CLEAR_FORM_ERRORS: {
|
11
11
|
// const {pageKey} = action.payload
|
data/lib/install/web.rb
CHANGED
@@ -56,10 +56,8 @@ say "Adding required member methods to ApplicationRecord"
|
|
56
56
|
add_member_methods
|
57
57
|
|
58
58
|
say "Installing React, Redux, and Breezy"
|
59
|
-
run "yarn add babel-plugin-module-resolver history@\"^4\" html-react-parser
|
59
|
+
run "yarn add babel-plugin-module-resolver history@\"^4\" html-react-parser react-redux redux-thunk redux redux-persist reduce-reducers immer @jho406/breezy --save"
|
60
60
|
|
61
|
-
say "Updating webpack config to include .jsx file extension and resolved_paths"
|
62
|
-
insert_into_file Webpacker.config.config_path, " - .jsx\n", after: /\bextensions:\n/
|
63
61
|
# For newer webpacker
|
64
62
|
insert_into_file Webpacker.config.config_path, "'app/views', 'app/components'", after: /additional_paths: \[/
|
65
63
|
# For older webpacker
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: breezy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Johny Ho
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -159,9 +159,6 @@ files:
|
|
159
159
|
- lib/breezy.rb
|
160
160
|
- lib/breezy/helpers.rb
|
161
161
|
- lib/breezy/redirection.rb
|
162
|
-
- lib/breezy/x_domain_blocker.rb
|
163
|
-
- lib/breezy/xhr_headers.rb
|
164
|
-
- lib/breezy/xhr_url_for.rb
|
165
162
|
- lib/generators/rails/breezy_generator.rb
|
166
163
|
- lib/generators/rails/scaffold_controller_generator.rb
|
167
164
|
- lib/generators/rails/templates/_form.json.props
|
@@ -171,13 +168,13 @@ files:
|
|
171
168
|
- lib/generators/rails/templates/new.json.props
|
172
169
|
- lib/generators/rails/templates/show.json.props
|
173
170
|
- lib/generators/rails/templates/web/edit.html.erb
|
174
|
-
- lib/generators/rails/templates/web/edit.
|
171
|
+
- lib/generators/rails/templates/web/edit.js
|
175
172
|
- lib/generators/rails/templates/web/index.html.erb
|
176
|
-
- lib/generators/rails/templates/web/index.
|
173
|
+
- lib/generators/rails/templates/web/index.js
|
177
174
|
- lib/generators/rails/templates/web/new.html.erb
|
178
|
-
- lib/generators/rails/templates/web/new.
|
175
|
+
- lib/generators/rails/templates/web/new.js
|
179
176
|
- lib/generators/rails/templates/web/show.html.erb
|
180
|
-
- lib/generators/rails/templates/web/show.
|
177
|
+
- lib/generators/rails/templates/web/show.js
|
181
178
|
- lib/install/templates/web/action_creators.js
|
182
179
|
- lib/install/templates/web/actions.js
|
183
180
|
- lib/install/templates/web/application.js
|
@@ -210,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
207
|
- !ruby/object:Gem::Version
|
211
208
|
version: '0'
|
212
209
|
requirements: []
|
213
|
-
rubygems_version: 3.
|
210
|
+
rubygems_version: 3.0.3
|
214
211
|
signing_key:
|
215
212
|
specification_version: 4
|
216
213
|
summary: Rails integration for BreezyJS
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Breezy
|
2
|
-
# Changes the response status to 403 Forbidden if all of these conditions are true:
|
3
|
-
# - The current request originated from Breezy
|
4
|
-
# - The request is being redirected to a different domain
|
5
|
-
module XDomainBlocker
|
6
|
-
private
|
7
|
-
def same_origin?(a, b)
|
8
|
-
a = URI.parse URI.escape(a)
|
9
|
-
b = URI.parse URI.escape(b)
|
10
|
-
[a.scheme, a.host, a.port] == [b.scheme, b.host, b.port]
|
11
|
-
end
|
12
|
-
|
13
|
-
def abort_xdomain_redirect
|
14
|
-
to_uri = response.headers['Location']
|
15
|
-
current = request.headers['X-XHR-Referer']
|
16
|
-
unless to_uri.blank? || current.blank? || same_origin?(current, to_uri)
|
17
|
-
self.status = 403
|
18
|
-
end
|
19
|
-
rescue URI::InvalidURIError
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
data/lib/breezy/xhr_headers.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Breezy
|
2
|
-
module XHRHeaders
|
3
|
-
def redirect_back(fallback_location:, **args)
|
4
|
-
if referer = request.headers["X-XHR-Referer"]
|
5
|
-
redirect_to referer, **args
|
6
|
-
else
|
7
|
-
super
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def _compute_redirect_to_location(request, options)
|
12
|
-
url = begin
|
13
|
-
if options == :back && request.headers["X-XHR-Referer"]
|
14
|
-
super(request, request.headers["X-XHR-Referer"])
|
15
|
-
else
|
16
|
-
super
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
url
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/breezy/xhr_url_for.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
module Breezy
|
2
|
-
# Corrects the behavior of url_for (and link_to, which uses url_for) with the :back
|
3
|
-
# option by using the X-XHR-Referer request header instead of the standard Referer
|
4
|
-
# request header.
|
5
|
-
module XHRUrlFor
|
6
|
-
def url_for(options = {})
|
7
|
-
options = (controller.request.headers["X-XHR-Referer"] || options) if options == :back
|
8
|
-
super
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|