initjs 0.1.3 → 1.0.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.
- data/.gitignore +9 -10
- data/.rvmrc +1 -0
- data/.travis.yml +15 -0
- data/LICENSE.txt +2 -2
- data/README.md +176 -47
- data/initjs.gemspec +11 -4
- data/lib/assets/javascript/init.js.coffee +8 -1
- data/lib/generators/initjs/add/add_generator.rb +57 -0
- data/lib/generators/initjs/add/templates/namespaced_action.coffee +5 -0
- data/lib/generators/initjs/add/templates/simple_action.coffee +3 -0
- data/lib/generators/initjs/install/install_generator.rb +25 -0
- data/lib/generators/initjs/install/templates/app.coffee +15 -0
- data/lib/generators/initjs/resource_helpers.rb +23 -0
- data/lib/initjs/helper.rb +5 -4
- data/lib/initjs/version.rb +1 -1
- data/spec/dummy/.rspec +1 -0
- data/spec/dummy/Gemfile +10 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application-turbolinks.js +12 -0
- data/spec/dummy/app/assets/javascripts/application.js +10 -0
- data/spec/dummy/app/assets/javascripts/application.sample.js +15 -0
- data/spec/dummy/app/assets/javascripts/dummy/blog/.gitkip +0 -0
- data/spec/dummy/app/assets/javascripts/dummy/blog/posts/.gitkip +0 -0
- data/spec/dummy/app/assets/javascripts/dummy/blog/posts/index.js.coffee +6 -0
- data/spec/dummy/app/assets/javascripts/dummy/blog/posts/new.js.coffee +6 -0
- data/spec/dummy/app/assets/javascripts/dummy/blog/posts/show.js.coffee +6 -0
- data/{lib/generators/initjs/templates/app.js.coffee → spec/dummy/app/assets/javascripts/dummy/dummy.js.coffee} +4 -1
- data/spec/dummy/app/assets/javascripts/dummy/home/.gitkip +0 -0
- data/spec/dummy/app/assets/javascripts/dummy/home/index.js.coffee +4 -0
- data/spec/dummy/app/assets/javascripts/dummy/posts/.gitkip +0 -0
- data/spec/dummy/app/assets/javascripts/dummy/posts/index.js.coffee +4 -0
- data/spec/dummy/app/assets/javascripts/dummy/posts/new.js.coffee +4 -0
- data/spec/dummy/app/assets/javascripts/dummy/posts/show.js.coffee +4 -0
- data/spec/dummy/app/assets/stylesheets/application.css +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/controllers/blog/posts_controller.rb +10 -0
- data/spec/dummy/app/controllers/home_controller.rb +4 -0
- data/spec/dummy/app/controllers/posts_controller.rb +10 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/mailers/.gitkeep +0 -0
- data/spec/dummy/app/models/.gitkeep +0 -0
- data/spec/dummy/app/views/blog/posts/index.html.erb +2 -0
- data/spec/dummy/app/views/blog/posts/new.html.erb +2 -0
- data/spec/dummy/app/views/blog/posts/show.html.erb +2 -0
- data/spec/dummy/app/views/home/index.html.erb +10 -0
- data/spec/dummy/app/views/layouts/application.html.erb +24 -0
- data/spec/dummy/app/views/posts/index.html.erb +2 -0
- data/spec/dummy/app/views/posts/new.html.erb +2 -0
- data/spec/dummy/app/views/posts/show.html.erb +2 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +54 -0
- data/spec/dummy/config/boot.rb +6 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +30 -0
- data/spec/dummy/config/environments/production.rb +60 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +8 -0
- data/spec/dummy/db/seeds.rb +7 -0
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/lib/tasks/.gitkeep +0 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/robots.txt +5 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/spec/features/blog_posts_spec.rb +47 -0
- data/spec/dummy/spec/features/home_spec.rb +11 -0
- data/spec/dummy/spec/features/posts_spec.rb +47 -0
- data/spec/dummy/spec/lib/generators/initjs/add_generator_spec.rb +80 -0
- data/spec/dummy/spec/lib/generators/initjs/install_generator_spec.rb +36 -0
- data/spec/dummy/spec/spec_helper.rb +33 -0
- data/spec/tmp/app/assets/javascripts/.gitkip +0 -0
- metadata +278 -10
- data/lib/generators/initjs/initjs_generator.rb +0 -11
data/.gitignore
CHANGED
@@ -2,16 +2,15 @@
|
|
2
2
|
*.rbc
|
3
3
|
.bundle
|
4
4
|
.config
|
5
|
-
.yardoc
|
6
5
|
Gemfile.lock
|
7
|
-
InstalledFiles
|
8
|
-
_yardoc
|
9
|
-
coverage
|
10
|
-
doc/
|
11
|
-
lib/bundler/man
|
12
6
|
pkg
|
13
7
|
rdoc
|
14
|
-
spec/
|
15
|
-
|
16
|
-
|
17
|
-
|
8
|
+
spec/tmp/app/assets/javascripts/application.js
|
9
|
+
spec/tmp/app/assets/javascripts/dummy/
|
10
|
+
|
11
|
+
# Ignore the default SQLite database.
|
12
|
+
spec/dummy/db/*.sqlite3
|
13
|
+
|
14
|
+
# Ignore all logfiles and tempfiles.
|
15
|
+
spec/dummy/log/*.log
|
16
|
+
spec/dummy/tmp
|
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm --create 1.9.3@initjs
|
data/.travis.yml
ADDED
data/LICENSE.txt
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2012 Josemar Davi Luedke
|
1
|
+
Copyright (c) 2012-2013 Josemar Davi Luedke
|
2
2
|
|
3
3
|
MIT License
|
4
4
|
|
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
19
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
20
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
21
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,58 +1,69 @@
|
|
1
|
-
# Initjs
|
1
|
+
# Initjs [](https://travis-ci.org/josemarluedke/initjs) [](https://codeclimate.com/github/josemarluedke/initjs) [](https://gemnasium.com/josemarluedke/initjs) [](http://badge.fury.io/rb/initjs)
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
Along with Rails, you can make a good structure for your javascript.
|
6
|
-
A good example is using the Backbone.js, separating each page into a view of the Backbone.js.
|
3
|
+
Initjs is a RubyGem that helps your organize your javascript files using Rails' asset pipeline. Providing a simple and automatic way to execute your javascript for a specific page.
|
7
4
|
|
8
5
|
Works fine with Turbolinks from Rails.
|
9
6
|
|
10
7
|
|
11
8
|
## Javascript structure example
|
12
9
|
|
13
|
-
The structure you need follow is the same of your controller and
|
10
|
+
The structure you need follow is the same of your controller and actions on a Rails app.
|
14
11
|
You can use a namespace too.
|
15
12
|
|
16
|
-
###
|
13
|
+
### Simple javascript functions
|
17
14
|
|
18
|
-
```
|
19
|
-
|
20
|
-
|
21
|
-
// Javascript for the page "posts/new"
|
22
|
-
}
|
23
|
-
});
|
15
|
+
```coffee
|
16
|
+
# app/assets/javascripts/app_name/posts/new.js.coffee
|
17
|
+
AppName.Posts = {} if AppName.Posts is undefined
|
24
18
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
19
|
+
AppName.Posts.New =->
|
20
|
+
# Javascript for the page "posts/new"
|
21
|
+
```
|
22
|
+
```coffee
|
23
|
+
# app/assets/javascripts/app_name/posts/show.js.coffee
|
24
|
+
AppName.Posts = {} if AppName.Posts is undefined
|
25
|
+
|
26
|
+
AppName.Posts.Show =->
|
27
|
+
# Javascript for the page "posts/1"
|
28
|
+
```
|
29
|
+
```coffee
|
30
|
+
# app/assets/javascripts/app_name/blog/posts/show.js.coffee
|
31
|
+
AppName.Blog = {} if AppName.Blog is undefined
|
32
|
+
AppName.Blog.Posts = {} if AppName.Blog.Posts is undefined
|
30
33
|
|
31
|
-
|
32
|
-
|
33
|
-
initialize: function() {
|
34
|
-
// Javascript for the page "blog/posts/1"
|
35
|
-
}
|
36
|
-
});
|
34
|
+
AppName.Blog.Posts.Show =->
|
35
|
+
# Javascript for the page "blog/posts/1"
|
37
36
|
```
|
38
37
|
|
39
|
-
###
|
38
|
+
### Using Backbone.js
|
40
39
|
|
41
|
-
```
|
42
|
-
|
43
|
-
|
44
|
-
};
|
40
|
+
```coffee
|
41
|
+
# app/assets/javascripts/app_name/posts/new.js.coffee
|
42
|
+
AppName.Posts = {} if AppName.Posts is undefined
|
45
43
|
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
AppName.Posts.New = Backbone.View.extend
|
45
|
+
# Javascript for the page "posts/new"
|
46
|
+
```
|
47
|
+
```coffee
|
48
|
+
# app/assets/javascripts/app_name/posts/show.js.coffee
|
49
|
+
AppName.Posts = {} if AppName.Posts is undefined
|
49
50
|
|
50
|
-
|
51
|
-
|
52
|
-
// Javascript for the page "blog/posts/1"
|
53
|
-
};
|
51
|
+
AppName.Posts.Show = Backbone.View.extend
|
52
|
+
# Javascript for the page "posts/1"
|
54
53
|
```
|
54
|
+
```coffee
|
55
|
+
# app/assets/javascripts/app_name/blog/posts/show.js.coffee
|
56
|
+
AppName.Blog = {} if AppName.Blog is undefined
|
57
|
+
AppName.Blog.Posts = {} if AppName.Blog.Posts is undefined
|
55
58
|
|
59
|
+
AppName.Blog.Posts.Show = Backbone.View.extend
|
60
|
+
# Javascript for the page "blog/posts/1"
|
61
|
+
```
|
62
|
+
|
63
|
+
## Requirements
|
64
|
+
- Rails 3.1 or higher
|
65
|
+
- jQuery (`jquery-rails`)
|
66
|
+
- CoffeeScript (`coffee-rails`)
|
56
67
|
|
57
68
|
## Installation
|
58
69
|
|
@@ -66,10 +77,9 @@ And then execute:
|
|
66
77
|
|
67
78
|
Run the generator:
|
68
79
|
|
69
|
-
rails generate initjs
|
70
|
-
|
71
|
-
Add `//= require init.js` to your Javascript manifest file (usually found at `app/assets/javascripts/application.js`).
|
80
|
+
rails generate initjs:install
|
72
81
|
|
82
|
+
Make sure initjs generator has injected `//= require app_name/app_name.js` and `//= require init.js` to your Javascript manifest file (usually found at `app/assets/javascripts/application.js`).
|
73
83
|
|
74
84
|
|
75
85
|
## Usage
|
@@ -77,17 +87,20 @@ Add `//= require init.js` to your Javascript manifest file (usually found at `ap
|
|
77
87
|
Include the Initjs tag in your application layout (usually found at `app/view/layouts/application.html.erb`) after the body tag.
|
78
88
|
|
79
89
|
```erb
|
80
|
-
<%= initjs_tag %>
|
90
|
+
<%= initjs_tag app_name: "AppName" %>
|
81
91
|
```
|
82
92
|
|
83
|
-
### The app
|
93
|
+
### The app file
|
84
94
|
|
85
|
-
If you have a commom javascript that you need execute every page, you can put in `app/assets/javascripts/
|
95
|
+
If you have a commom javascript that you need execute every page, you can put in `app/assets/javascripts/app_name/app_name.js.coffee`
|
86
96
|
|
87
97
|
#### Structure example
|
88
98
|
|
89
99
|
```coffee
|
90
|
-
|
100
|
+
#= require_self
|
101
|
+
#= require_tree .
|
102
|
+
|
103
|
+
window.AppName =
|
91
104
|
Common:
|
92
105
|
initPage: ->
|
93
106
|
# If you are using the Turbolinks and you need run a code only one time, put something here.
|
@@ -98,16 +111,122 @@ App = window.App =
|
|
98
111
|
# Something here. This is called in every page, with or without Turbolinks.
|
99
112
|
```
|
100
113
|
|
114
|
+
## Recomended directory structure
|
101
115
|
|
102
|
-
|
116
|
+
Here is the app folder `app/assets/javascripts/app_name/`.
|
103
117
|
|
104
|
-
*
|
118
|
+
* app_name
|
119
|
+
* [controller]
|
120
|
+
* [action].js.coffee
|
121
|
+
* [other_action].js.coffee
|
122
|
+
* [other_controller]
|
123
|
+
* [action].js
|
124
|
+
* [other_action].js.coffee
|
125
|
+
* [more_action].js.coffee
|
126
|
+
* [namespace]
|
127
|
+
* [controllers]
|
128
|
+
* [action].js.coffee
|
105
129
|
|
130
|
+
## Generators
|
106
131
|
|
107
|
-
|
132
|
+
1. Generate a controller folder:
|
133
|
+
```
|
134
|
+
rails g initjs:add [controllers]
|
135
|
+
```
|
136
|
+
**Example:**
|
137
|
+
```
|
138
|
+
rails g initjs:add posts
|
139
|
+
```
|
108
140
|
|
109
|
-
|
141
|
+
**Generates:**
|
142
|
+
* /app_name
|
143
|
+
* /posts
|
144
|
+
|
145
|
+
|
146
|
+
2. Generate an action file:
|
147
|
+
```
|
148
|
+
rails g initjs:add [controllers] [action]
|
149
|
+
```
|
150
|
+
**Example:**
|
151
|
+
```
|
152
|
+
rails g initjs:add posts new
|
153
|
+
```
|
154
|
+
|
155
|
+
**Generates:**
|
156
|
+
* /app_name
|
157
|
+
* /posts
|
158
|
+
* new.js.coffee
|
159
|
+
|
160
|
+
|
161
|
+
3. Generate multiple actions files:
|
162
|
+
```
|
163
|
+
rails g initjs:add [controllers] [action_1] [action_2] ... [action_n]
|
164
|
+
```
|
165
|
+
**Example:**
|
166
|
+
```
|
167
|
+
rails g initjs:add posts new create edit update
|
168
|
+
```
|
169
|
+
|
170
|
+
**Generates:**
|
171
|
+
* /app_name
|
172
|
+
* /posts
|
173
|
+
* new.js.coffee
|
174
|
+
* create.js.coffee
|
175
|
+
* edit.js.coffee
|
176
|
+
* update.js.coffee
|
177
|
+
|
178
|
+
4. Generate namespaced controller and action:
|
179
|
+
```
|
180
|
+
rails g initjs:add [namespace]/[controllers] [action_1] [action_2] ... [action_n]
|
181
|
+
```
|
182
|
+
|
183
|
+
**Example:**
|
184
|
+
```
|
185
|
+
rails g initjs:add blog/posts new
|
186
|
+
```
|
187
|
+
|
188
|
+
**Generates:**
|
189
|
+
* /app_name
|
190
|
+
* /blog
|
191
|
+
* /posts
|
192
|
+
* new.js.coffee
|
193
|
+
|
194
|
+
|
195
|
+
## Development environment
|
196
|
+
|
197
|
+
You'll need [RVM](https://rvm.io/) to isolate your development environment.
|
198
|
+
|
199
|
+
Make sure you install `Ruby 1.9.3` on your [RVM](https://rvm.io/).
|
200
|
+
|
201
|
+
Then just checkout the code, configure dependencies and run the tests:
|
202
|
+
|
203
|
+
1. Clone the repository:
|
204
|
+
|
205
|
+
`git clone git://github.com/josemarluedke/initjs.git`
|
206
|
+
|
207
|
+
2. Enter the repo directory and accept the [RVM](https://rvm.io/):
|
208
|
+
|
209
|
+
`cd initjs`
|
210
|
+
|
211
|
+
`yes` if solicited
|
212
|
+
|
213
|
+
3. Install [Bundler](http://gembundler.com/) into our [RVM](https://rvm.io/):
|
110
214
|
|
215
|
+
`gem install bundler`
|
216
|
+
|
217
|
+
4. Install all dependencies from [Gemspec](http://docs.rubygems.org/read/chapter/20):
|
218
|
+
|
219
|
+
`bundler install`
|
220
|
+
|
221
|
+
### Running tests
|
222
|
+
|
223
|
+
1. Go to dummy app folder
|
224
|
+
|
225
|
+
`cd spec/dummy/`
|
226
|
+
|
227
|
+
2. Run the rspec
|
228
|
+
|
229
|
+
`rspec spec/`
|
111
230
|
|
112
231
|
## Contributing
|
113
232
|
|
@@ -116,3 +235,13 @@ I have thanks to @diogob, that is my inspiration for this gem and thanks for cor
|
|
116
235
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
117
236
|
4. Push to the branch (`git push origin my-new-feature`)
|
118
237
|
5. Create new Pull Request
|
238
|
+
|
239
|
+
## Thanks
|
240
|
+
|
241
|
+
I have thanks to @diogob, that is my inspiration for this gem and thanks for core of code ([gist:2321526](https://gist.github.com/2321526))
|
242
|
+
|
243
|
+
# License
|
244
|
+
|
245
|
+
Copyright (c) 2012-2013 Josemar Davi Luedke
|
246
|
+
|
247
|
+
Licensed under the MIT license (see LICENSE.txt file)
|
data/initjs.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
lib = File.expand_path('../lib', __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'initjs/version'
|
@@ -9,9 +8,8 @@ Gem::Specification.new do |gem|
|
|
9
8
|
gem.authors = ["Josemar Davi Luedke"]
|
10
9
|
gem.email = ["josemarluedke@gmail.com"]
|
11
10
|
gem.homepage = "http://github.com/josemarluedke/initjs"
|
12
|
-
gem.description = %q{
|
13
|
-
gem.summary = %q{
|
14
|
-
gem.homepage = ""
|
11
|
+
gem.description = %q{Initjs helps your organize your javascript files using Rails' asset pipeline. Providing a simple and automatic way to execute your javascript for a specific page.}
|
12
|
+
gem.summary = %q{Initjs for your Rails application}
|
15
13
|
|
16
14
|
gem.files = `git ls-files`.split($/)
|
17
15
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -19,4 +17,13 @@ Gem::Specification.new do |gem|
|
|
19
17
|
gem.require_paths = ["lib"]
|
20
18
|
|
21
19
|
gem.add_dependency('rails', '>= 3.1')
|
20
|
+
gem.add_dependency 'jquery-rails'
|
21
|
+
|
22
|
+
gem.add_development_dependency 'rspec-rails', '~> 2.13.0'
|
23
|
+
gem.add_development_dependency 'generator_spec', '~> 0.8.7'
|
24
|
+
gem.add_development_dependency 'capybara', '~> 2.0.2'
|
25
|
+
gem.add_development_dependency 'sqlite3'
|
26
|
+
gem.add_development_dependency 'jquery-rails'
|
27
|
+
gem.add_development_dependency 'coffee-rails'
|
28
|
+
gem.add_development_dependency 'turbolinks'
|
22
29
|
end
|
@@ -7,10 +7,16 @@ window.Initjs =
|
|
7
7
|
this.execFilter('init')
|
8
8
|
this.exec(controllerClass, controllerName, action)
|
9
9
|
this.execFilter('finish')
|
10
|
+
this.appName()
|
11
|
+
|
12
|
+
appName: ->
|
13
|
+
appName = $("#init-js").data('app-name') || "App"
|
14
|
+
window.App = window[appName]
|
15
|
+
if window.App is undefined
|
16
|
+
console.log "Initjs: #{appName} is not defined. Run `rails generate initjs` for generates the app file."
|
10
17
|
|
11
18
|
exec: (controllerClass, controllerName, action) ->
|
12
19
|
namespace = App
|
13
|
-
|
14
20
|
if controllerClass
|
15
21
|
railsNamespace = controllerClass.split("::").slice(0, -1)
|
16
22
|
else
|
@@ -25,6 +31,7 @@ window.Initjs =
|
|
25
31
|
App.currentView = window.view = new View()
|
26
32
|
|
27
33
|
execFilter: (filterName) ->
|
34
|
+
this.appName()
|
28
35
|
if App.Common and typeof App.Common[filterName] == 'function'
|
29
36
|
App.Common[filterName]()
|
30
37
|
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'generators/initjs/resource_helpers'
|
2
|
+
|
3
|
+
module Initjs
|
4
|
+
module Generators
|
5
|
+
class AddGenerator < ::Rails::Generators::Base
|
6
|
+
include Initjs::Generators::ResourceHelpers
|
7
|
+
argument :actions, type: :array
|
8
|
+
|
9
|
+
source_root File.expand_path('../templates', __FILE__)
|
10
|
+
|
11
|
+
def create_files
|
12
|
+
arguments actions.shift
|
13
|
+
|
14
|
+
create_folders
|
15
|
+
generate_action_files(actions) if actions.present?
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def arguments args
|
20
|
+
arg = args.split(' ')
|
21
|
+
controller = arg[0].split('/')
|
22
|
+
@namespace_name = (controller.length > 1) ? controller[0] : ''
|
23
|
+
@controller_name = @namespace_name.present? ? controller[1] : controller[0]
|
24
|
+
end
|
25
|
+
|
26
|
+
def file_path
|
27
|
+
if @namespace_name.present?
|
28
|
+
"#{application_path}/#{@namespace_name.underscore}/#{@controller_name.underscore}"
|
29
|
+
else
|
30
|
+
"#{application_path}/#{@controller_name.underscore}"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def create_folders
|
35
|
+
if @namespace_name.present?
|
36
|
+
create_file "#{application_path}/#{@namespace_name.underscore}/.gitkip"
|
37
|
+
end
|
38
|
+
|
39
|
+
create_file "#{file_path}/.gitkip"
|
40
|
+
end
|
41
|
+
|
42
|
+
def generate_action_files actions
|
43
|
+
actions.each do |action|
|
44
|
+
action_file = "#{file_path}/#{action.underscore}.js.coffee"
|
45
|
+
next if action.nil? || File.exists?(action_file)
|
46
|
+
@action_name = action
|
47
|
+
|
48
|
+
if @namespace_name.present?
|
49
|
+
template "namespaced_action.coffee", action_file
|
50
|
+
else
|
51
|
+
template "simple_action.coffee", action_file
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|