pluggable_js 2.0.4 → 2.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +6 -4
- data/features/pluggable_js.feature +0 -1
- data/lib/pluggable_js/config.rb +3 -3
- data/lib/pluggable_js/helpers.rb +8 -21
- data/lib/pluggable_js/version.rb +1 -1
- data/pluggable_js.gemspec +3 -2
- data/test/dummy/app/assets/javascripts/application.js +1 -0
- data/test/dummy/app/views/layouts/application.html.erb +3 -3
- data/test/dummy/app/views/pluggable_js/posts/index.html.erb +2 -0
- data/test/dummy/app/views/pluggable_js/posts/new.html.erb +2 -0
- data/test/dummy/config/application.rb +1 -0
- metadata +34 -25
- data/lib/generators/pluggable_js/USAGE +0 -8
- data/lib/generators/pluggable_js/pluggable_js_generator.rb +0 -19
- data/lib/generators/pluggable_js/templates/large_piece_of_code.js.coffee +0 -9
- data/test/dummy/app/assets/javascripts/pluggable/pluggable_js/posts/new.js.coffee +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 042a86301eb3629ddde7da5e4601b20bc1bbf8a2
|
4
|
+
data.tar.gz: ce6aee1cd8a3d65d9c89e9f46a98e6e1f0a545d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96c4ee114de5a06a5d576dbb5390c6899bef8b43144cb7cd76c51fd718517cada5e68b9d6a8940a10f9593d63b0f5a34817ff5a7844c715c31f560ea23b2c4c1
|
7
|
+
data.tar.gz: 3c1a316e6125e8754cc6789be4a2c1fe68a46631112f9dacdbecde1c8a18ab9e1815ed24944d3f1841dd58585eeebd6e55c23eed968f2f8ae58d74ec7c3ea9a9
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# PluggableJs
|
1
|
+
# PluggableJs
|
2
2
|
|
3
3
|
[](http://badge.fury.io/rb/pluggable_js)
|
4
4
|
|
@@ -6,8 +6,8 @@ This gem provides simple functionality of loading page specific javascript and a
|
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
9
|
-
1. Add `gem 'pluggable_js', '~> 2.0
|
10
|
-
2. Add `<%= javascript_pluggable_tag %>` helper to application layout file
|
9
|
+
1. Add `gem 'pluggable_js', '~> 2.1.0'` to Gemfile and run `bundle` command to install it
|
10
|
+
2. Add `<%= javascript_pluggable_tag %>` helper to application layout file above the closing `</body>` tag
|
11
11
|
|
12
12
|
## Usage
|
13
13
|
|
@@ -67,6 +67,7 @@ If you are passing data, move `pluggable_js` helper into a separate private meth
|
|
67
67
|
|
68
68
|
* [from <= v0.0.6 to v1.0.0](https://github.com/peresleguine/pluggable_js/wiki/Upgrade-from-v0.0.6-or-less-to-v1.0.0)
|
69
69
|
* [from v1.0 to v2.0](https://github.com/peresleguine/pluggable_js/wiki/Upgrade-from-v1.0-to-v2.0)
|
70
|
+
* [from v2.0 to v2.1](https://github.com/peresleguine/pluggable_js/wiki/Upgrade-from-v2.0-to-v2.1)
|
70
71
|
|
71
72
|
## Sublime Text Snippet
|
72
73
|
|
@@ -75,7 +76,8 @@ Go to `Sublime Text > Preferences > Browse Packages...` and save under `User` di
|
|
75
76
|
```xml
|
76
77
|
<snippet>
|
77
78
|
<content><![CDATA[
|
78
|
-
@['$
|
79
|
+
@['$1#$2'] = (data) ->
|
80
|
+
$0
|
79
81
|
]]></content>
|
80
82
|
<tabTrigger>pjs</tabTrigger>
|
81
83
|
<scope>source.coffee</scope>
|
data/lib/pluggable_js/config.rb
CHANGED
@@ -3,8 +3,8 @@ module PluggableJs
|
|
3
3
|
DEFAULT_PAIR_ACTIONS = { 'create' => 'new', 'update' => 'edit' }
|
4
4
|
|
5
5
|
class << self
|
6
|
-
def pair_actions=(
|
7
|
-
@pair_actions = DEFAULT_PAIR_ACTIONS.merge
|
6
|
+
def pair_actions=(actions = {})
|
7
|
+
@pair_actions = DEFAULT_PAIR_ACTIONS.merge(actions)
|
8
8
|
end
|
9
9
|
|
10
10
|
def pair_actions
|
@@ -13,4 +13,4 @@ module PluggableJs
|
|
13
13
|
end
|
14
14
|
|
15
15
|
end
|
16
|
-
end
|
16
|
+
end
|
data/lib/pluggable_js/helpers.rb
CHANGED
@@ -5,26 +5,13 @@ module PluggableJs
|
|
5
5
|
def javascript_pluggable_tag
|
6
6
|
controller = params[:controller]
|
7
7
|
action = define_pair_action
|
8
|
-
sc_var_name = "__should_call_#{controller.gsub(/\//, '__')}_#{action}"
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
$(function() {
|
17
|
-
#{sc_var_name} = false;
|
18
|
-
return window[function_name](#{@pluggable_js_data});
|
19
|
-
});
|
20
|
-
}
|
21
|
-
}).call(window);"
|
22
|
-
)
|
23
|
-
|
24
|
-
if File.exist?(Rails.root + "app/assets/javascripts/pluggable/#{controller}/#{action}.js.coffee")
|
25
|
-
content << (javascript_include_tag "pluggable/#{controller}/#{action}")
|
26
|
-
end
|
27
|
-
end.html_safe
|
9
|
+
javascript_tag(
|
10
|
+
"(function() {
|
11
|
+
var pluggableFunction = window['#{controller}##{action}'];
|
12
|
+
if (typeof(pluggableFunction) === 'function') { pluggableFunction(#{@pluggable_js_data}); }
|
13
|
+
}).call();"
|
14
|
+
)
|
28
15
|
end
|
29
16
|
|
30
17
|
private
|
@@ -41,8 +28,8 @@ module PluggableJs
|
|
41
28
|
end
|
42
29
|
|
43
30
|
module Controller
|
44
|
-
def pluggable_js(
|
45
|
-
@pluggable_js_data =
|
31
|
+
def pluggable_js(data)
|
32
|
+
@pluggable_js_data = data.to_json
|
46
33
|
end
|
47
34
|
alias_method :pjs, :pluggable_js
|
48
35
|
end
|
data/lib/pluggable_js/version.rb
CHANGED
data/pluggable_js.gemspec
CHANGED
@@ -18,12 +18,13 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'coffee-rails'
|
22
|
-
spec.add_dependency 'jquery-rails'
|
23
21
|
spec.add_dependency 'rails', '>= 3.1'
|
24
22
|
|
25
23
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
26
24
|
spec.add_development_dependency 'cucumber-rails'
|
27
25
|
spec.add_development_dependency 'rspec'
|
28
26
|
spec.add_development_dependency 'capybara-webkit'
|
27
|
+
spec.add_development_dependency 'turbolinks'
|
28
|
+
spec.add_development_dependency 'jquery-rails'
|
29
|
+
spec.add_development_dependency 'coffee-rails'
|
29
30
|
end
|
@@ -2,12 +2,12 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Dummy</title>
|
5
|
-
<%= stylesheet_link_tag "application", media: "all" %>
|
6
|
-
<%= javascript_include_tag "application" %>
|
7
|
-
<%= javascript_pluggable_tag %>
|
5
|
+
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
6
|
+
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
8
7
|
<%= csrf_meta_tags %>
|
9
8
|
</head>
|
10
9
|
<body>
|
11
10
|
<%= yield %>
|
11
|
+
<%= javascript_pluggable_tag %>
|
12
12
|
</body>
|
13
13
|
</html>
|
metadata
CHANGED
@@ -1,37 +1,51 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pluggable_js
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Peresleguine
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '3.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: cucumber-rails
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - ">="
|
32
46
|
- !ruby/object:Gem::Version
|
33
47
|
version: '0'
|
34
|
-
type: :
|
48
|
+
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
@@ -39,35 +53,35 @@ dependencies:
|
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
56
|
+
name: rspec
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
48
|
-
type: :
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
70
|
+
name: capybara-webkit
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- - "
|
73
|
+
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- - "
|
80
|
+
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: turbolinks
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - ">="
|
@@ -81,7 +95,7 @@ dependencies:
|
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: jquery-rails
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - ">="
|
@@ -95,7 +109,7 @@ dependencies:
|
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: coffee-rails
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - ">="
|
@@ -125,9 +139,6 @@ files:
|
|
125
139
|
- features/pluggable_js.feature
|
126
140
|
- features/step_definitions/pluggable_js_steps.rb
|
127
141
|
- features/support/env.rb
|
128
|
-
- lib/generators/pluggable_js/USAGE
|
129
|
-
- lib/generators/pluggable_js/pluggable_js_generator.rb
|
130
|
-
- lib/generators/pluggable_js/templates/large_piece_of_code.js.coffee
|
131
142
|
- lib/pluggable_js.rb
|
132
143
|
- lib/pluggable_js/config.rb
|
133
144
|
- lib/pluggable_js/helpers.rb
|
@@ -138,7 +149,6 @@ files:
|
|
138
149
|
- test/dummy/Rakefile
|
139
150
|
- test/dummy/app/assets/images/.keep
|
140
151
|
- test/dummy/app/assets/javascripts/application.js
|
141
|
-
- test/dummy/app/assets/javascripts/pluggable/pluggable_js/posts/new.js.coffee
|
142
152
|
- test/dummy/app/assets/javascripts/posts.js.coffee
|
143
153
|
- test/dummy/app/assets/stylesheets/application.css
|
144
154
|
- test/dummy/app/controllers/application_controller.rb
|
@@ -196,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
196
206
|
version: '0'
|
197
207
|
requirements: []
|
198
208
|
rubyforge_project:
|
199
|
-
rubygems_version: 2.
|
209
|
+
rubygems_version: 2.4.8
|
200
210
|
signing_key:
|
201
211
|
specification_version: 4
|
202
212
|
summary: Page-specific javascript for Rails.
|
@@ -208,7 +218,6 @@ test_files:
|
|
208
218
|
- test/dummy/Rakefile
|
209
219
|
- test/dummy/app/assets/images/.keep
|
210
220
|
- test/dummy/app/assets/javascripts/application.js
|
211
|
-
- test/dummy/app/assets/javascripts/pluggable/pluggable_js/posts/new.js.coffee
|
212
221
|
- test/dummy/app/assets/javascripts/posts.js.coffee
|
213
222
|
- test/dummy/app/assets/stylesheets/application.css
|
214
223
|
- test/dummy/app/controllers/application_controller.rb
|
@@ -1,8 +0,0 @@
|
|
1
|
-
Description:
|
2
|
-
Creates coffeescript files based on controller and action parameters.
|
3
|
-
|
4
|
-
Example:
|
5
|
-
$ rails generate pluggable_js Posts index new
|
6
|
-
|
7
|
-
create app/assets/javascripts/pluggable/posts/index.js.coffee
|
8
|
-
create app/assets/javascripts/pluggable/posts/show.js.coffee
|
@@ -1,19 +0,0 @@
|
|
1
|
-
class PluggableJsGenerator < Rails::Generators::Base
|
2
|
-
source_root File.expand_path('../templates', __FILE__)
|
3
|
-
argument :controller, type: :string
|
4
|
-
argument :actions, type: :array, default: [], banner: 'action action'
|
5
|
-
|
6
|
-
def create_pluggable_js_files
|
7
|
-
actions.each do |action|
|
8
|
-
@action = action
|
9
|
-
template 'large_piece_of_code.js.coffee', File.join('app/assets/javascripts/pluggable', controller_name, "#{action}.js.coffee")
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def controller_name
|
16
|
-
controller.tableize
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
# This file is used only for large piece of js code that you
|
2
|
-
# don't want to define as a function in controller related js file.
|
3
|
-
|
4
|
-
# Add pluggable/* to assets precompile configuration in production.rb (and staging.rb if you have one),
|
5
|
-
# e.g.: config.assets.precompile += %w(pluggable/*)
|
6
|
-
# Be sure that pluggable folder is out of require_tree statement in application.js
|
7
|
-
|
8
|
-
# jQuery ->
|
9
|
-
# # your code goes here
|