rails_script 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b863825eaf502b0fe59a592d6288c65b9b227f9d
4
- data.tar.gz: 7c0d246d78e0d5ccf0a4ff3b14e114f04e82475f
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MWIxY2ZiNzBjYjVkMTU4MGMzZmIyN2Q5ZGVmZTgzNjE5NGRmOGFlMg==
5
+ data.tar.gz: !binary |-
6
+ MjQ2M2VkZjY5NDgxNjk1ZTE2OGFhMjMwZmI1YjU1MzE2M2MzNTRhMA==
5
7
  SHA512:
6
- metadata.gz: 4b8a2ac4612b90c9e133e80f19a5d06e644c67b53921798b5082528897dd8b26488d2381d917d0ea82bdc24bf0798615c97a742ba9c91b1a3feaa93f4b63f5ac
7
- data.tar.gz: 178f4c5a371cbe3c949d2da8946222340c9bb5d22703762b97ed3e071dc5ab8d6cc1223954756d66e7dd2003cd766d626bf8842092da50c1fb19b5a405f2caac
8
+ metadata.gz: !binary |-
9
+ M2M4NmI0NDc5Y2Q3ZjRiNGVjZWRmODg4NzQ2OWQ2Yjk1ZTZiMDk1Yzg3MTBl
10
+ ZjI5NTA1NWExMmQ2OGY5NDAzNjAxOWFhMWY4ZmFmN2ZmYTk2ZDlmN2QxNDdl
11
+ Y2U3ZDE0M2M2NGEwMTc0MDZkYTlmMjc4Y2U1Zjc4ZmQyYjk2NWM=
12
+ data.tar.gz: !binary |-
13
+ ZWJlYTZlNGIyNjdhYTMzNWNhMGQxNzNlYTM0MWViYWNiZjEwMTRkZjA4Zjgw
14
+ ZmMyMDU0ODBjMWJmNmQ0ZTU1ZjdkYTJkOGZlNGY1N2E4ODJkZjhiNDFkY2E0
15
+ OWY4ZmE4OTJiZGMyMDgxOTI2NzhhYjU5YmQyZTRiZjUzZTQ5YTE=
data/README.md CHANGED
@@ -6,7 +6,7 @@ RailsScript is a Rails-centric, object oriented, featherweight framework for wri
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
- gem 'rails_script', '~> 0.6.0'
9
+ gem 'rails_script', '~> 0.6.1'
10
10
 
11
11
  And then execute:
12
12
 
@@ -22,13 +22,18 @@ After the generator finishes, you will be prompted to add helper call to your ap
22
22
  <%= include_rails_script %>
23
23
  ```
24
24
 
25
+ NOTE: Your JS files needed have been included before `include_rails_script`. In other words, you still need `<%= javascript_include_tag "application" %>` in your application layout.
26
+
27
+ ## Configuration
28
+ You can configure name of your application in config/initializers/rails_script.rb file.
29
+
25
30
  ## Usage
26
31
 
27
32
  ### Page (Action) Specific JavaScript
28
33
 
29
34
  Your JavaScript class is named after your Controller and there is a method for each Controller action. Whenever you generate a Controller, the CoffeeScript file that is generated will define the new JavaScript class and the basic REST actions. The example below would print 'users#show' in the console for the ```Users#show``` action.
30
35
 
31
- ```
36
+ ```coffeescript
32
37
  # app/assets/javascripts/users.js.coffee
33
38
 
34
39
  window.App ||= {}
@@ -42,9 +47,9 @@ class App.Users extends App.Base
42
47
 
43
48
  ### Controller Specific JavaScript
44
49
 
45
- Executing some JavaScript to run on all controller actions is just a matter of adding it to the ```beforeAction``` or ```afterAction``` function. ```beforeAction``` is run before all controller action functions and ```afterAction``` is run after all controller action functions. The before and after action functions have an optional argument ```action``` which is string containing the current action name. The example below would print 'before ACTION action' and 'after ACTION action' for each ```Users``` controller action.
50
+ Executing some JavaScript to run on all controller actions is just a matter of adding it to the ```beforeAction``` or ```afterAction``` function. ```beforeAction``` is run before all controller action functions and ```afterAction``` is run after all controller action functions. The before and after action functions have an optional argument ```action``` which is a string containing the current action name. The example below would print 'before ACTION action' and 'after ACTION action' for each ```Users``` controller action.
46
51
 
47
- ```
52
+ ```coffeescript
48
53
  # app/assets/javascripts/users.js.coffee
49
54
  window.App ||= {}
50
55
  class App.Users extends App.Base
@@ -53,7 +58,7 @@ class App.Users extends App.Base
53
58
  console.log "before #{action} action"
54
59
 
55
60
  afterAction: (action) =>
56
- console.log "after #{action} action"
61
+ console.log "after #{action} action"
57
62
  ```
58
63
 
59
64
 
@@ -61,7 +66,7 @@ class App.Users extends App.Base
61
66
 
62
67
  Running some JavaScript on every page of an Application is a common need. For example, we may want to create a site credit rollover in the footer of every page.
63
68
 
64
- ```
69
+ ```coffeescript
65
70
  # app/assets/javascripts/base.js.coffee
66
71
  window.App ||= {}
67
72
  class App.Base
@@ -87,18 +92,16 @@ In this example we extracted the rollover action into a new function. Doing so
87
92
 
88
93
  Any functions that need to be accessible in the global scope should be defined in ```global.js.coffee``` using the ```App``` namespace. Below is an example of one of our favorite functions that we use to submit a form using AJAX as a JSON request.
89
94
 
90
- ```
95
+ ```coffeescript
91
96
  # app/assets/javascripts/global.js.coffee
92
97
  window.App ||= {}
93
98
 
94
99
  App.remoteSubmission = ($form) ->
95
- $.ajax
100
+ return $.ajax
96
101
  url: $form.attr('action')
97
102
  type: $form.attr('method')
98
103
  data: $form.serialize()
99
104
  dataType: 'json'
100
-
101
- return
102
105
  ```
103
106
 
104
107
  Now you can access this function from anywhere in the application by just calling ```App.remoteSubmission($('#myForm'))```
@@ -115,7 +118,7 @@ First, generate the ```Utility```
115
118
 
116
119
  This will create the following in ```/app/assets/javascripts/utilities/modal.js.coffee```:
117
120
 
118
- ```
121
+ ```coffeescript
119
122
  # /app/assets/javascripts/utilities/modal.js.coffee
120
123
  window.Utility ||= {}
121
124
  class Utility.Modal
@@ -126,7 +129,7 @@ class Utility.Modal
126
129
 
127
130
  Let's add some basic functionality:
128
131
 
129
- ```
132
+ ```coffeescript
130
133
  # /app/assets/javascripts/utilities/modal.js.coffee
131
134
  window.Utility ||= {}
132
135
  class Utility.Modal
@@ -156,7 +159,7 @@ class Utility.Modal
156
159
 
157
160
  Now, here's how we use the utility from ```users#show```
158
161
 
159
- ```
162
+ ```coffeescript
160
163
  # app/assets/javascripts/users.js.coffee
161
164
 
162
165
  window.App ||= {}
@@ -179,7 +182,7 @@ First generate the ```Element```
179
182
 
180
183
  This will create the following in ```/app/assets/javascripts/elements/main_menu.js.coffee```
181
184
 
182
- ```
185
+ ```coffeescript
183
186
  # /app/assets/javascripts/elements/main_menu.js.coffee```
184
187
 
185
188
  window.Element ||= {}
@@ -191,7 +194,7 @@ class Element.MainMenu
191
194
 
192
195
  We can now add all the logic for the main menu in a separate class and call it on every page like so:
193
196
 
194
- ```
197
+ ```coffeescript
195
198
  # app/assets/javascripts/base.js.coffee
196
199
 
197
200
  window.App ||= {}
@@ -212,7 +215,7 @@ Inheritance is another key tool for reusability. Let's say our ```Element.MainM
212
215
 
213
216
  Which generates:
214
217
 
215
- ````
218
+ ````coffeescript
216
219
  # /app/assets/javascripts/elements/main_menu.js.coffee
217
220
 
218
221
  window.Element ||= {}
@@ -234,7 +237,7 @@ When a new controller is generated, the JavaScript asset file will be generated
234
237
 
235
238
  Since the above example includes a namespace, it would generate:
236
239
 
237
- ```
240
+ ```coffeescript
238
241
  # app/assets/javascripts/some/new_controller.js.coffee
239
242
 
240
243
  window.App ||= {}
@@ -276,7 +279,7 @@ To generate a generic class that isn't a Utility, Element or Controller, just us
276
279
 
277
280
  Which generates:
278
281
 
279
- ```
282
+ ```coffeescript
280
283
  # /app/assets/javascripts/my/class_name.js.coffee
281
284
 
282
285
  window.App ||= {}
@@ -294,7 +297,7 @@ class App.MyClassName
294
297
  To pass data from Rails to JavaScript, just call ```to_javascript``` along with a hash of your data. This is then converted to a JSON object with ```to_javascript.to_json``` and can be accessed with ```Utility.RailsVars```. The ```to_javascript``` helper may be called from multiple points in the application, all data is merged together.
295
298
 
296
299
  Here's an example where ```to_javascript``` is used in a ```before_filter``` to pass the current user and their friends:
297
- ```
300
+ ```ruby
298
301
  # /app/controllers/application_controller.rb
299
302
 
300
303
  class ApplicationController
@@ -312,7 +315,7 @@ end
312
315
 
313
316
  And here's how we print that data to the console on the ```users#index``` action:
314
317
 
315
- ```
318
+ ```coffeescript
316
319
  # /app/assets/javascripts/users.js.coffee
317
320
 
318
321
  window.App ||= {}
@@ -331,6 +334,11 @@ Since Turbolinks doesn't refresh the page and only replaces the body, event list
331
334
 
332
335
 
333
336
 
337
+ ### Page Transitions
338
+
339
+ Full page transitions are super easy with RailsScript and Turbolinks. Checkout the wiki for more information on how to add these to your RailsScript application, https://github.com/gemgento/rails_script/wiki/Turbolinks-Page-Transitions.
340
+
341
+
334
342
 
335
343
  ## Contributing
336
344
 
@@ -1,5 +1,5 @@
1
- window.App ||= {}
2
- class App.<%= class_name.gsub('::', '') %>
1
+ window.<%= RailsScript.app_namespace %> ||= {}
2
+ class <%= RailsScript.app_namespace %>.<%= class_name.gsub('::', '') %>
3
3
 
4
4
  constructor: ->
5
- return this
5
+ return this
@@ -1,5 +1,5 @@
1
- window.App ||= {}
2
- class App.<%= controller.gsub('::', '') %> extends App.Base
1
+ window.<%= RailsScript.app_namespace %> ||= {}
2
+ class <%= RailsScript.app_namespace %>.<%= controller.gsub('::', '') %> extends <%= RailsScript.app_namespace %>.Base
3
3
 
4
4
  beforeAction: (action) =>
5
5
  return
@@ -22,4 +22,4 @@ class App.<%= controller.gsub('::', '') %> extends App.Base
22
22
 
23
23
 
24
24
  edit: =>
25
- return
25
+ return
@@ -6,6 +6,7 @@ module RailsScript
6
6
  def copy_files
7
7
  template 'base.js.coffee', 'app/assets/javascripts/base.js.coffee'
8
8
  template 'global.js.coffee', 'app/assets/javascripts/global.js.coffee'
9
+ template 'rails_script.rb', 'config/initializers/rails_script.rb'
9
10
  end
10
11
 
11
12
  def create_directories
@@ -1,5 +1,5 @@
1
- window.App ||= {}
2
- class App.Base
1
+ window.<%= RailsScript.app_namespace %> ||= {}
2
+ class <%= RailsScript.app_namespace %>.Base
3
3
 
4
4
  constructor: ->
5
5
  if (window.jQuery) then @setClearEventHandlers() # clearing application event handlers only possible with jQuery
@@ -1 +1 @@
1
- window.App ||= {}
1
+ window.<%= RailsScript.app_namespace %> ||= {}
@@ -0,0 +1,4 @@
1
+ RailsScript.config do |c|
2
+ # Configure name that will be used to namespace the javascript classes
3
+ c.app_namespace = "App"
4
+ end
@@ -7,7 +7,7 @@ window.Utility || (window.Utility = {});
7
7
  Utility.RailsVars = #{@to_javascript.nil? ? '{}' : @to_javascript.to_json};
8
8
 
9
9
  (function() {
10
- window.$this = new (App.#{ controller_path.split(/\/|_/).map(&:capitalize).join('') } || App.Base)();
10
+ window.$this = new (#{RailsScript.app_namespace}.#{ controller_path.split(/\/|_/).map(&:capitalize).join('') } || #{RailsScript.app_namespace}.Base)();
11
11
  if (typeof $this.beforeAction === 'function') {
12
12
  $this.beforeAction("#{action_name}");
13
13
  }
@@ -18,8 +18,8 @@ Utility.RailsVars = #{@to_javascript.nil? ? '{}' : @to_javascript.to_json};
18
18
  $this.afterAction("#{action_name}");
19
19
  }
20
20
  })();
21
- RUBY
21
+ RUBY
22
22
  end
23
23
 
24
24
  end
25
- end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module RailsScript
2
- VERSION = '0.6.1'
2
+ VERSION = '0.7.0'
3
3
  end
data/lib/rails_script.rb CHANGED
@@ -4,4 +4,10 @@ require 'rails_script/to_javascript'
4
4
  require 'rails_script/railtie' if defined?(Rails)
5
5
 
6
6
  module RailsScript
7
+ mattr_accessor :app_namespace
8
+ @@app_namespace = 'App'
9
+
10
+ def self.config
11
+ yield self
12
+ end
7
13
  end
metadata CHANGED
@@ -1,61 +1,61 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_script
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Pheasey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-03 00:00:00.000000000 Z
11
+ date: 2016-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: coffee-rails
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '4.0'
48
- - - ">="
48
+ - - ! '>='
49
49
  - !ruby/object:Gem::Version
50
50
  version: 4.0.0
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - "~>"
55
+ - - ~>
56
56
  - !ruby/object:Gem::Version
57
57
  version: '4.0'
58
- - - ">="
58
+ - - ! '>='
59
59
  - !ruby/object:Gem::Version
60
60
  version: 4.0.0
61
61
  description: Rails Script is a Rails-centric, object oriented, featherweight framework
@@ -68,7 +68,7 @@ executables: []
68
68
  extensions: []
69
69
  extra_rdoc_files: []
70
70
  files:
71
- - ".gitignore"
71
+ - .gitignore
72
72
  - Gemfile
73
73
  - LICENSE.txt
74
74
  - README.md
@@ -88,6 +88,7 @@ files:
88
88
  - lib/generators/rails_script/install/templates/base.js.coffee
89
89
  - lib/generators/rails_script/install/templates/elements/.keep
90
90
  - lib/generators/rails_script/install/templates/global.js.coffee
91
+ - lib/generators/rails_script/install/templates/rails_script.rb
91
92
  - lib/generators/rails_script/install/templates/utilities/.keep
92
93
  - lib/generators/rails_script/utility/USAGE
93
94
  - lib/generators/rails_script/utility/templates/javascript.js.coffee
@@ -109,17 +110,17 @@ require_paths:
109
110
  - lib
110
111
  required_ruby_version: !ruby/object:Gem::Requirement
111
112
  requirements:
112
- - - ">="
113
+ - - ! '>='
113
114
  - !ruby/object:Gem::Version
114
115
  version: '0'
115
116
  required_rubygems_version: !ruby/object:Gem::Requirement
116
117
  requirements:
117
- - - ">="
118
+ - - ! '>='
118
119
  - !ruby/object:Gem::Version
119
120
  version: '0'
120
121
  requirements: []
121
122
  rubyforge_project:
122
- rubygems_version: 2.2.2
123
+ rubygems_version: 2.4.8
123
124
  signing_key:
124
125
  specification_version: 4
125
126
  summary: A Rails-centric, object oriented, featherweight framework for writting CoffeeScript