reactive_rails_generator 0.1.4 → 0.1.5
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb7a49b852c9ae54932e33c50bad1c656e7a48d8
|
4
|
+
data.tar.gz: e3a63831077b57f88bdd6d76073f3f63520d3b94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27043fb182f71f7c1422f4e1dff86be27722eaeb4bcc1e47a697beba8278f1a8e2b46d1a612d5ee93b0069589abbe238edb3d582f4f97d760e5d13750b75a844
|
7
|
+
data.tar.gz: 0d6ca20a140ce8fded5d60648782e4e77509b7678f6ae6f3ba86a53a4e065f577706eff94953fd9c4e4b60220eb8ae6dad624ef2e4c6aa3365110e2abe62f05f
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "rails/generators"
|
2
|
+
module Reactrb
|
3
|
+
class Router < Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../templates", __FILE__)
|
5
|
+
argument :components, :type => :array
|
6
|
+
def create_component_file()
|
7
|
+
self.components.each do |component|
|
8
|
+
component_array = component.split("::")
|
9
|
+
@modules = component_array[0..-2]
|
10
|
+
@file_name = component_array.last
|
11
|
+
@indet = 1
|
12
|
+
template "router_template.rb", File.join('app/react/components', @modules.map(&:downcase).join("/"), "#{@file_name.underscore}.rb")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Components
|
2
|
+
<%- @modules.each do |module_name| %><%= " "* @indet %>module <%= module_name.camelize %><%- @indet += 1 %>
|
3
|
+
<%- end %><%=" "* @indet %>class <%= @file_name %>
|
4
|
+
|
5
|
+
<%=" "* @indet %>include React::Router
|
6
|
+
|
7
|
+
<%=" "* @indet %>routes(path: "/") do # change path to be the base path
|
8
|
+
<%=" "* @indet %> # you will probably want to update your config/routes.rb file so that it matches all
|
9
|
+
<%=" "* @indet %> # subroutes: i.e. get '(*subroutes)' => "<%= (@modules.last || 'home').underscore %>#<%= @file_name.underscore %>"
|
10
|
+
<%=" "* @indet %> # basic route has:
|
11
|
+
<%=" "* @indet %> # a path
|
12
|
+
<%=" "* @indet %> # a name - used to reference the route in methods like redirect, and link)
|
13
|
+
<%=" "* @indet %> # a handler - the component that will be mounted on this route
|
14
|
+
<%=" "* @indet %> route(path: "subroute1-path", name: :subroute1, handler: Subroute1Component)
|
15
|
+
<%=" "* @indet %> route(path: "subroute2-path", name: :subroute2, handler: Subroute2Component)
|
16
|
+
<%=" "* @indet %> # routes can take parameters designated with a colon:
|
17
|
+
<%=" "* @indet %> route(path: "subroute3-path/:user_id", name: subroute3, handler: Subroute3Component)
|
18
|
+
<%=" "* @indet %> # the redirect method will transition any incoming matching routes to a new route
|
19
|
+
<%=" "* @indet %> redirect(from: "/", to: :subroute1)
|
20
|
+
<%=" "* @indet %> # the not_found method indicates which component to load if no route matches:
|
21
|
+
<%=" "* @indet %> not_found(handler: NotFound)
|
22
|
+
<%=" "* @indet %>end
|
23
|
+
|
24
|
+
<%=" "* @indet %>router_param :user_id, as: :user do |id|
|
25
|
+
<%=" "* @indet %> # Translate incoming route params to internal values.
|
26
|
+
<%=" "* @indet %> # In this case we will refer to the translated user_id as user.
|
27
|
+
<%=" "* @indet %> # The block param (id) will have the value of the param.
|
28
|
+
<%=" "* @indet %> # This is useful for looking up ActiveRecord models by ids, etc.
|
29
|
+
<%=" "* @indet %>end
|
30
|
+
|
31
|
+
<%=" "* @indet %>def show # note that the top level router has a show method NOT render
|
32
|
+
<%=" "* @indet %> div do
|
33
|
+
<%=" "* @indet %> # content to display on every route
|
34
|
+
<%=" "* @indet %> # link generates an anchor tag.
|
35
|
+
<%=" "* @indet %> link(to: :subroute3, params: {user_id: 12}, class: "link-class") { "Click to go to subroute3" }
|
36
|
+
<%=" "* @indet %> # within an event handler use transition_to to move to a new route
|
37
|
+
<%=" "* @indet %> # the route_handler method will display the current route, it can be called in the
|
38
|
+
<%=" "* @indet %> # router, or in some child component.
|
39
|
+
<%=" "* @indet %> route_handler
|
40
|
+
<%=" "* @indet %> end
|
41
|
+
<%=" "* @indet %>end
|
42
|
+
<%=" "* @indet %>end
|
43
|
+
<%- @modules.each do %><%- @indet -= 1 %><%=" "* @indet %>end
|
44
|
+
<%- end %>end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reactive_rails_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Loic Boutet
|
@@ -32,9 +32,11 @@ extra_rdoc_files: []
|
|
32
32
|
files:
|
33
33
|
- lib/generators/reactrb/component_generator.rb
|
34
34
|
- lib/generators/reactrb/install_generator.rb
|
35
|
+
- lib/generators/reactrb/router_generator.rb
|
35
36
|
- lib/generators/reactrb/templates/component_template.rb
|
37
|
+
- lib/generators/reactrb/templates/router_template.rb
|
36
38
|
- lib/reactive_rails_generator.rb
|
37
|
-
homepage:
|
39
|
+
homepage: https://github.com/loicboutet/reactive-rails-generator
|
38
40
|
licenses:
|
39
41
|
- MIT
|
40
42
|
metadata: {}
|