repack 2.4.5 → 2.4.6

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: 4dddd4f86a84a71e0772c3358f49778275790406
4
- data.tar.gz: ba58125c4df9427321ffce56224bd620b24c1c50
3
+ metadata.gz: 3fab8aaa9ae24afdc4e14d927127db9c4c82f9a9
4
+ data.tar.gz: 3bac01c904f00cff49182a71257fdfd7d1d6e275
5
5
  SHA512:
6
- metadata.gz: 37143eb51c791f4791d8ee20b9032ce1b72d79d57f8d20aef9fd6e091588f0e9319fcfd48942a699eeb1532ef2387325963e1c2c5e811280740a3fa12badefe1
7
- data.tar.gz: 84e8c735aa86959f9e6509a6681fcb7f5ecd7f8bef5cf4bc0afd4bb64c512cd9d2237ea67b736ba12b6d5eaa215c1453861c78d9007b6151164a956c60a3952c
6
+ metadata.gz: 2b8cce958e30c5de7c0e56e088d2a41c56af0eec86b0c03abc9633ece20374b90b55511806f8c5f5b4b51ab77f1e1240c0144f7249e582eb05b4a0273217ca32
7
+ data.tar.gz: 6f9ca0dc8d7f752eff6c250b3a2eff1b7ae7306715e6374e250553672a4635e41ea7d333afe19943d84fa787af42ab4fd8b6694fde2f7d55a91fc2f568aa29a2
data/README.md CHANGED
@@ -17,6 +17,7 @@ This gem has been tested against Rails 4.2 and Ruby 2.2. Earlier versions of Rai
17
17
  2. --router -> Webpack / React / React Router Boilerplate
18
18
  3. --redux -> Webpack / React / Redux Boilerplate
19
19
  4. --router --redux -> Webpack / React / Router / Redux Boilerplate
20
+ 5. --god -> Webpack / React / Router / Redux / Devise / Auth
20
21
 
21
22
  ### Installation
22
23
 
@@ -56,6 +57,32 @@ If you're using the webpack dev server's live reload feature (not the React hot
56
57
  * Webpacked assets will be compiled to `public/client`
57
58
  * The manifest file is named `manifest.json`
58
59
 
60
+ ## View Generator
61
+ 1. Generate a controller
62
+ 2. Add at least an index route for the controller
63
+ 3. rails g repack:view name_of_view (should match controller name)
64
+
65
+ EXAMPLE:
66
+ ``` bash
67
+ rails g controller Admin index
68
+ rails g repack:view admin
69
+ ```
70
+
71
+ NOTE: The view generator will try to match its argument to a currently existing controller name, but if a controller cannot be found with that name, the generator will follow typical Rails convention and pluralize the view directory being created.
72
+
73
+ In an example where I have an AdminController & SessionsController:
74
+
75
+ ``` bash
76
+ rails g repack:view admin
77
+ (will find the AdminController and create views/admin/index.html.erb)
78
+
79
+ rails g repack:view sessions
80
+ (will find the SessionsController and create views/sessions/index.html.erb)
81
+
82
+ rails g repack:view user
83
+ (will not find a controller, will follow Rails controller naming convention and create views/users/index.html.erb)
84
+ ```
85
+
59
86
  ### Working with browser tests
60
87
 
61
88
  In development, we make sure that the `webpack-dev-server` is running when browser tests are running.
@@ -108,13 +135,6 @@ If you're using `[chunkhash]` in your build asset filenames (which you should be
108
135
  * Port example apps to Repack
109
136
 
110
137
 
111
- ## Experimental
112
- A view generator has been added.
113
-
114
- 1.Generate a controller
115
- 2.Add at least an index route for the controller
116
- 3.rails g repack:view name_of_view (should be singular and match controller)
117
-
118
138
 
119
139
  ## Contributing
120
140
 
@@ -1,6 +1,5 @@
1
1
  .alert {
2
- position: fixed;
3
- top: 65px;
2
+ top: 0px;
4
3
  left: 0px;
5
4
  right: 0px;
6
5
  padding: 15px 0px;
@@ -10,8 +10,9 @@ module Repack
10
10
  @view = args[0]
11
11
  end
12
12
 
13
+ # ASSUMPTION: entry file will be snake_cased
13
14
  def update_webpack_entry
14
- name = @view.downcase.gsub(/ /, "_")
15
+ name = @view.underscore
15
16
  path = "'#{name}': './client/#{name}.js',"
16
17
  insert_into_file 'config/webpack.config.js', after: /entry: {\n/ do
17
18
  <<-CONFIG
@@ -21,12 +22,13 @@ module Repack
21
22
  end
22
23
 
23
24
  def create_entry_file
24
- file = "client/#{@view.gsub(/ /, '')}.js"
25
+ file = "client/#{@view.underscore}.js"
25
26
  name = @view.titleize.gsub(/ /, '')
26
27
  copy_file "boilerplate/views/ViewTemplate.js", file
27
28
  gsub_file file, /Placeholder/, name
28
29
  end
29
30
 
31
+ # ASSUMPTION: container will be PascalCased
30
32
  def create_container
31
33
  name = @view.titleize.gsub(/ /, '')
32
34
  file = "client/containers/#{name}.js"
@@ -34,15 +36,19 @@ module Repack
34
36
  gsub_file file, /Placeholder/, name
35
37
  end
36
38
 
39
+ # ASSUMPTION: Rails controllers will be PascalCased, file & directory names will be snake_cased
37
40
  def create_rails_view
38
- name = @view.downcase.gsub(/ /, '_')
39
- empty_directory "app/views/#{name.pluralize}"
41
+ name = @view.underscore
42
+ Rails.application.eager_load! if ApplicationController.descendants.length == 0
43
+ controllers = ApplicationController.descendants.map { |cont| cont.name.gsub('Controller', '').underscore }
44
+ dirname = controllers.include?(name) ? name : name.pluralize
45
+ empty_directory "app/views/#{dirname}"
40
46
  if Gem.loaded_specs.has_key? 'haml-rails'
41
- file = "app/views/#{name.pluralize}/index.html.haml"
47
+ file = "app/views/#{dirname}/index.html.haml"
42
48
  copy_file "boilerplate/views/rails_view.html.haml", file
43
49
  gsub_file file, /placeholder/, name
44
50
  else
45
- file = "app/views/#{name.pluralize}/index.html.erb"
51
+ file = "app/views/#{dirname}/index.html.erb"
46
52
  copy_file "boilerplate/views/rails_view.html.erb", file
47
53
  gsub_file file, /placeholder/, name
48
54
  end
@@ -1,3 +1,3 @@
1
1
  module Repack
2
- VERSION = "2.4.5"
2
+ VERSION = "2.4.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: repack
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.5
4
+ version: 2.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Jungst
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-03-13 00:00:00.000000000 Z
12
+ date: 2017-04-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails