superglue 0.54.0 → 1.0.1
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/README.md +32 -0
- data/lib/generators/superglue/install/install_generator.rb +119 -0
- data/lib/{install/templates/web → generators/superglue/install/templates}/application.json.props +2 -2
- data/lib/generators/superglue/install/templates/js/application.jsx +35 -0
- data/lib/generators/superglue/install/templates/js/application_visit.js +113 -0
- data/lib/generators/superglue/install/templates/js/components.js +2 -0
- data/lib/generators/superglue/install/templates/js/flash.js +44 -0
- data/lib/generators/superglue/install/templates/js/inputs.jsx +370 -0
- data/lib/generators/superglue/install/templates/js/jsconfig.json +9 -0
- data/lib/generators/superglue/install/templates/js/layout.jsx +16 -0
- data/lib/generators/superglue/install/templates/js/page_to_page_mapping.js +35 -0
- data/lib/generators/superglue/install/templates/js/store.js +30 -0
- data/lib/{install/templates/web/application.js → generators/superglue/install/templates/ts/application.tsx} +10 -16
- data/lib/generators/superglue/install/templates/ts/application_visit.ts +122 -0
- data/lib/generators/superglue/install/templates/ts/components.ts +2 -0
- data/lib/generators/superglue/install/templates/ts/flash.ts +46 -0
- data/lib/generators/superglue/install/templates/ts/inputs.tsx +554 -0
- data/lib/generators/superglue/install/templates/ts/layout.tsx +16 -0
- data/lib/generators/superglue/install/templates/ts/page_to_page_mapping.ts +34 -0
- data/lib/generators/superglue/install/templates/ts/store.ts +34 -0
- data/lib/generators/superglue/install/templates/ts/tsconfig.json +27 -0
- data/lib/generators/superglue/scaffold/scaffold_generator.rb +16 -0
- data/lib/generators/superglue/scaffold_controller/scaffold_controller_generator.rb +61 -0
- data/lib/generators/superglue/view_collection/templates/js/edit.jsx +40 -0
- data/lib/generators/superglue/view_collection/templates/js/index.jsx +62 -0
- data/lib/generators/superglue/view_collection/templates/js/new.jsx +38 -0
- data/lib/generators/superglue/view_collection/templates/js/show.jsx +26 -0
- data/lib/generators/superglue/view_collection/templates/props/edit.json.props +9 -0
- data/lib/generators/superglue/view_collection/templates/props/index.json.props +14 -0
- data/lib/generators/superglue/view_collection/templates/props/new.json.props +10 -0
- data/lib/generators/superglue/view_collection/templates/props/show.json.props +6 -0
- data/lib/generators/superglue/view_collection/templates/ts/edit.tsx +54 -0
- data/lib/generators/superglue/view_collection/templates/ts/index.tsx +77 -0
- data/lib/generators/superglue/view_collection/templates/ts/new.tsx +50 -0
- data/lib/generators/superglue/view_collection/templates/ts/show.tsx +37 -0
- data/lib/generators/superglue/view_collection/view_collection_generator.rb +180 -0
- data/lib/superglue/helpers.rb +1 -1
- data/lib/superglue.rb +2 -1
- metadata +62 -41
- data/lib/generators/rails/scaffold_controller_generator.rb +0 -12
- data/lib/generators/rails/superglue_generator.rb +0 -98
- data/lib/generators/rails/templates/controller.rb.tt +0 -68
- data/lib/generators/rails/templates/edit.json.props +0 -12
- data/lib/generators/rails/templates/index.json.props +0 -14
- data/lib/generators/rails/templates/new.json.props +0 -13
- data/lib/generators/rails/templates/show.json.props +0 -6
- data/lib/generators/rails/templates/web/edit.js +0 -35
- data/lib/generators/rails/templates/web/index.js +0 -56
- data/lib/generators/rails/templates/web/new.js +0 -33
- data/lib/generators/rails/templates/web/show.js +0 -28
- data/lib/install/templates/web/actions.js +0 -6
- data/lib/install/templates/web/application_visit.js +0 -65
- data/lib/install/templates/web/flash.js +0 -19
- data/lib/install/templates/web/page_to_page_mapping.js +0 -12
- data/lib/install/templates/web/pages.js +0 -15
- data/lib/install/templates/web/store.js +0 -32
- data/lib/install/web.rb +0 -55
- data/lib/tasks/install.rake +0 -9
- /data/lib/{install/templates/web → generators/superglue/install/templates}/initializer.rb +0 -0
- /data/lib/generators/{rails/templates/web → superglue/view_collection/templates/erb}/edit.html.erb +0 -0
- /data/lib/generators/{rails/templates/web → superglue/view_collection/templates/erb}/index.html.erb +0 -0
- /data/lib/generators/{rails/templates/web → superglue/view_collection/templates/erb}/new.html.erb +0 -0
- /data/lib/generators/{rails/templates/web → superglue/view_collection/templates/erb}/show.html.erb +0 -0
- /data/lib/generators/{rails/templates → superglue/view_collection/templates/props}/_form.json.props +0 -0
@@ -1,19 +0,0 @@
|
|
1
|
-
import { createSlice } from '@reduxjs/toolkit'
|
2
|
-
import { saveResponse, beforeVisit } from '../actions'
|
3
|
-
|
4
|
-
export const flashSlice = createSlice({
|
5
|
-
name: 'flash',
|
6
|
-
initialState: {},
|
7
|
-
extraReducers: (builder) => {
|
8
|
-
builder.addCase(beforeVisit, (state, action) => {
|
9
|
-
return {}
|
10
|
-
})
|
11
|
-
builder.addCase(saveResponse, (state, action) => {
|
12
|
-
const { page } = action.payload;
|
13
|
-
|
14
|
-
return {
|
15
|
-
...state, ...page.slices.flash
|
16
|
-
}
|
17
|
-
})
|
18
|
-
}
|
19
|
-
})
|
@@ -1,12 +0,0 @@
|
|
1
|
-
// import your page component
|
2
|
-
// e.g import PostsEdit from '../views/posts/edit'
|
3
|
-
|
4
|
-
|
5
|
-
// Mapping between your props template to Component, you must add to this
|
6
|
-
// to register any new page level component you create. If you are using the
|
7
|
-
// scaffold, it will auto append the identifers for you.
|
8
|
-
//
|
9
|
-
// e.g {'posts/new': PostNew}
|
10
|
-
export const pageIdentifierToPageComponent = {
|
11
|
-
};
|
12
|
-
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import { createSlice } from '@reduxjs/toolkit'
|
2
|
-
import { saveResponse, beforeVisit } from '../actions'
|
3
|
-
|
4
|
-
export const pagesSlice = createSlice({
|
5
|
-
name: 'pages',
|
6
|
-
// extraReducers: (builder) => {
|
7
|
-
// builder.addCase(beforeVisit, (state, action) => {
|
8
|
-
// const {currentPageKey} = action.payload
|
9
|
-
//
|
10
|
-
// const currentPage = draft[currentPageKey]
|
11
|
-
// delete currentPage.error
|
12
|
-
// })
|
13
|
-
// }
|
14
|
-
})
|
15
|
-
|
@@ -1,32 +0,0 @@
|
|
1
|
-
import { configureStore } from '@reduxjs/toolkit'
|
2
|
-
import { pagesSlice } from "./slices/pages"
|
3
|
-
import { flashSlice } from "./slices/flash"
|
4
|
-
import {
|
5
|
-
BEFORE_VISIT,
|
6
|
-
BEFORE_FETCH,
|
7
|
-
BEFORE_REMOTE,
|
8
|
-
fragmentMiddleware
|
9
|
-
} from '@thoughtbot/superglue'
|
10
|
-
|
11
|
-
export const buildStore = (initialState, superglueReducer, supergluePagesReducer) => {
|
12
|
-
|
13
|
-
return configureStore({
|
14
|
-
preloadedState: initialState,
|
15
|
-
devTools: process.env.NODE_ENV !== 'production',
|
16
|
-
middleware: (getDefaultMiddleware) =>
|
17
|
-
getDefaultMiddleware({
|
18
|
-
serializableCheck: {
|
19
|
-
ignoredActions: [BEFORE_VISIT, BEFORE_FETCH, BEFORE_REMOTE],
|
20
|
-
},
|
21
|
-
}).concat(fragmentMiddleware),
|
22
|
-
reducer: {
|
23
|
-
superglue: superglueReducer,
|
24
|
-
pages: (state, action) => {
|
25
|
-
const nextState = supergluePagesReducer(state, action)
|
26
|
-
return pagesSlice.reducer(nextState, action)
|
27
|
-
},
|
28
|
-
flash: flashSlice.reducer
|
29
|
-
},
|
30
|
-
});
|
31
|
-
};
|
32
|
-
|
data/lib/install/web.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
def add_member_methods
|
2
|
-
inject_into_file "app/models/application_record.rb", after: "class ApplicationRecord < ActiveRecord::Base\n" do
|
3
|
-
<<-RUBY
|
4
|
-
def self.member_at(index)
|
5
|
-
offset(index).limit(1).first
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.member_by(attr, value)
|
9
|
-
find_by(Hash[attr, value])
|
10
|
-
end
|
11
|
-
RUBY
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def app_js_path
|
16
|
-
"app/javascript/"
|
17
|
-
end
|
18
|
-
|
19
|
-
say "Copying application.js file to #{app_js_path}"
|
20
|
-
copy_file "#{__dir__}/templates/web/application.js", "#{app_js_path}/application.js"
|
21
|
-
|
22
|
-
say "Copying page_to_page_mapping.js file to #{app_js_path}"
|
23
|
-
copy_file "#{__dir__}/templates/web/page_to_page_mapping.js", "#{app_js_path}/page_to_page_mapping.js"
|
24
|
-
|
25
|
-
say "Copying flash.js file to #{app_js_path}"
|
26
|
-
copy_file "#{__dir__}/templates/web/flash.js", "#{app_js_path}/slices/flash.js"
|
27
|
-
|
28
|
-
say "Copying pages.js file to #{app_js_path}"
|
29
|
-
copy_file "#{__dir__}/templates/web/pages.js", "#{app_js_path}/slices/pages.js"
|
30
|
-
|
31
|
-
say "Copying store.js file to #{app_js_path}"
|
32
|
-
copy_file "#{__dir__}/templates/web/store.js", "#{app_js_path}/store.js"
|
33
|
-
|
34
|
-
say "Copying actions.js file to #{app_js_path}"
|
35
|
-
copy_file "#{__dir__}/templates/web/actions.js", "#{app_js_path}/actions.js"
|
36
|
-
|
37
|
-
say "Copying application_visit.js file to #{app_js_path}"
|
38
|
-
copy_file "#{__dir__}/templates/web/application_visit.js", "#{app_js_path}/application_visit.js"
|
39
|
-
|
40
|
-
say "Copying Superglue initializer"
|
41
|
-
copy_file "#{__dir__}/templates/web/initializer.rb", "config/initializers/superglue.rb"
|
42
|
-
|
43
|
-
say "Copying application.json.props"
|
44
|
-
copy_file "#{__dir__}/templates/web/application.json.props", "app/views/layouts/application.json.props"
|
45
|
-
|
46
|
-
say "Adding required member methods to ApplicationRecord"
|
47
|
-
add_member_methods
|
48
|
-
|
49
|
-
say "Installing FormProps"
|
50
|
-
run "bundle add form_props"
|
51
|
-
|
52
|
-
say "Installing Superglue and friends"
|
53
|
-
run "yarn add history react react-dom @reduxjs/toolkit react-redux @thoughtbot/superglue --save"
|
54
|
-
|
55
|
-
say "Superglue is Installed! 🎉", :green
|
data/lib/tasks/install.rake
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
namespace :superglue do
|
2
|
-
namespace :install do
|
3
|
-
desc "Install everything needed for superglue web"
|
4
|
-
task "web" do
|
5
|
-
template = File.expand_path("../install/web.rb", __dir__)
|
6
|
-
exec "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{template}"
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
File without changes
|
/data/lib/generators/{rails/templates/web → superglue/view_collection/templates/erb}/edit.html.erb
RENAMED
File without changes
|
/data/lib/generators/{rails/templates/web → superglue/view_collection/templates/erb}/index.html.erb
RENAMED
File without changes
|
/data/lib/generators/{rails/templates/web → superglue/view_collection/templates/erb}/new.html.erb
RENAMED
File without changes
|
/data/lib/generators/{rails/templates/web → superglue/view_collection/templates/erb}/show.html.erb
RENAMED
File without changes
|
/data/lib/generators/{rails/templates → superglue/view_collection/templates/props}/_form.json.props
RENAMED
File without changes
|