maiha-include_for 0.1
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/README +108 -0
- data/Rakefile +22 -0
- data/init.rb +5 -0
- data/install.rb +1 -0
- data/lib/include_for.rb +33 -0
- data/spec/models/application.rb +4 -0
- data/spec/models/grouping.rb +111 -0
- data/spec/models/include_for.rb +101 -0
- data/spec/models/option.rb +35 -0
- data/spec/models/special.rb +21 -0
- data/spec/schema.rb +30 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +65 -0
- data/tasks/include_for_tasks.rake +4 -0
- data/test/include_for_test.rb +8 -0
- data/uninstall.rb +1 -0
- metadata +68 -0
data/README
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
IncludeFor
|
2
|
+
==========
|
3
|
+
|
4
|
+
create include or link tags automatically according to the given file names
|
5
|
+
|
6
|
+
|
7
|
+
Usage
|
8
|
+
=====
|
9
|
+
|
10
|
+
include_for "prototype.js"
|
11
|
+
# => '<script type="text/javascript" src="/javascripts/prototype.js"></script>'
|
12
|
+
|
13
|
+
include_for "application.css"
|
14
|
+
# => '<link type="text/css" rel="Stylesheet" media="screen" href="/stylesheets/application.css"/>'
|
15
|
+
|
16
|
+
|
17
|
+
Example
|
18
|
+
=======
|
19
|
+
|
20
|
+
We can simpliy use the replacement of existing methods.
|
21
|
+
|
22
|
+
1. includes one file
|
23
|
+
|
24
|
+
<%= include_for "prototype.js" %>
|
25
|
+
# generates
|
26
|
+
<script type="text/javascript" src="/javascripts/prototype.js"></script>
|
27
|
+
|
28
|
+
2. plural files
|
29
|
+
|
30
|
+
<%= include_for "prototype.js", "controls.js" %>
|
31
|
+
# generates
|
32
|
+
<script type="text/javascript" src="/javascripts/prototype.js"></script>
|
33
|
+
<script type="text/javascript" src="/javascripts/controls.js"></script>
|
34
|
+
|
35
|
+
3. and css files
|
36
|
+
|
37
|
+
<%= include_for "prototype.js", "controls.js", "application.css" %>
|
38
|
+
# generates
|
39
|
+
<script type="text/javascript" src="/javascripts/prototype.js"></script>
|
40
|
+
<script type="text/javascript" src="/javascripts/controls.js"></script>
|
41
|
+
<link type="text/css" rel="Stylesheet" media="screen" href="/stylesheets/application.css"/>
|
42
|
+
|
43
|
+
4. avoid from including same file twice
|
44
|
+
|
45
|
+
<%= include_for "prototype.js", "prototype.js", "prototype.js" %>
|
46
|
+
# generates
|
47
|
+
<script type="text/javascript" src="/javascripts/prototype.js"></script>
|
48
|
+
|
49
|
+
5. pass an option to the functions (:to is reserved key)
|
50
|
+
|
51
|
+
<%= include_for "application.js", :charset=>"UTF-8" %>
|
52
|
+
# generates
|
53
|
+
<script charset="UTF-8" type="text/javascript" src="/javascripts/application.js"></script>
|
54
|
+
|
55
|
+
Advanced Usage
|
56
|
+
==============
|
57
|
+
|
58
|
+
And this plugin can also separate declaration and inclusion
|
59
|
+
by using '<%' rather than '<%=' for declaration purpose.
|
60
|
+
|
61
|
+
* declaration for using some scripts
|
62
|
+
<% include_for "prototype.js" %>
|
63
|
+
# or in some your helpers
|
64
|
+
def auto_complete_zipcode(record, ...)
|
65
|
+
include_for "prototype.js"
|
66
|
+
|
67
|
+
* inclusion by using content_for mechanism
|
68
|
+
|
69
|
+
# in your layout file
|
70
|
+
<head>
|
71
|
+
<%= yield :header %>
|
72
|
+
</head>
|
73
|
+
|
74
|
+
We'll get following code only in the case that we use "auto_complete_zipcode" method.
|
75
|
+
|
76
|
+
<head>
|
77
|
+
<script type="text/javascript" src="/javascripts/prototype.js"></script>
|
78
|
+
</head>
|
79
|
+
|
80
|
+
And, We can avoid to force wasted javascripts when that method is not used.
|
81
|
+
|
82
|
+
<head>
|
83
|
+
</head>
|
84
|
+
|
85
|
+
Of course, you can modify the grouping name in +to+ option. (default :header)
|
86
|
+
|
87
|
+
include_for "prototype.js" # stored to @content_for_header
|
88
|
+
include_for "powered-by.js", :to=>:footer # stored to @content_for_footer
|
89
|
+
|
90
|
+
# in your layout file
|
91
|
+
<head>
|
92
|
+
<%= yield :header %>
|
93
|
+
</head>
|
94
|
+
<body>
|
95
|
+
<%= yield %>
|
96
|
+
<%= yield :footer %>
|
97
|
+
</body>
|
98
|
+
|
99
|
+
|
100
|
+
Install
|
101
|
+
=======
|
102
|
+
|
103
|
+
git://github.com/maiha/include_for.git
|
104
|
+
|
105
|
+
|
106
|
+
Author
|
107
|
+
======
|
108
|
+
Maiha <maiha@wota.jp>
|
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
|
5
|
+
desc 'Default: run unit tests.'
|
6
|
+
task :default => :test
|
7
|
+
|
8
|
+
desc 'Test the include_for plugin.'
|
9
|
+
Rake::TestTask.new(:test) do |t|
|
10
|
+
t.libs << 'lib'
|
11
|
+
t.pattern = 'test/**/*_test.rb'
|
12
|
+
t.verbose = true
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'Generate documentation for the include_for plugin.'
|
16
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
17
|
+
rdoc.rdoc_dir = 'rdoc'
|
18
|
+
rdoc.title = 'IncludeFor'
|
19
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
20
|
+
rdoc.rdoc_files.include('README')
|
21
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
22
|
+
end
|
data/init.rb
ADDED
data/install.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Install hook code here
|
data/lib/include_for.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# IncludeFor
|
2
|
+
module IncludeFor
|
3
|
+
def include_for(*sources)
|
4
|
+
sources = sources.flatten
|
5
|
+
options = sources.last.is_a?(Hash) ? sources.pop.symbolize_keys : {}
|
6
|
+
group = options.delete(:to) || :header
|
7
|
+
global_cache = eval("@_include_for_#{options[:to]}_ ||= {}")
|
8
|
+
private_cache = {}
|
9
|
+
|
10
|
+
loadeds = sources.map do |source|
|
11
|
+
include_for_cache_or_find(group, source, options, global_cache, private_cache)
|
12
|
+
end
|
13
|
+
loadeds.compact
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
def include_for_source(source, options)
|
18
|
+
case source
|
19
|
+
when :defaults, /\.js$/ then javascript_include_tag(source, options)
|
20
|
+
when /\.css$/ then stylesheet_link_tag(source, options)
|
21
|
+
else source.to_s
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def include_for_cache_or_find(group, source, options, global_cache, private_cache)
|
26
|
+
if private_cache[source]
|
27
|
+
nil
|
28
|
+
else
|
29
|
+
private_cache[source] ||= global_cache[source] ||=
|
30
|
+
returning(erb = include_for_source(source, options)) {content_for(group){erb}}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe IncludeFor, 'ファイルはデフォルトで :header グループ' do
|
5
|
+
before(:each) do
|
6
|
+
@helper = Helper.new
|
7
|
+
end
|
8
|
+
|
9
|
+
it '1ファイルの指定' do
|
10
|
+
@helper.include_for('prototype.js')
|
11
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
12
|
+
'javascript_include_tag:"prototype.js"'
|
13
|
+
end
|
14
|
+
|
15
|
+
it '複数のファイルを指定した場合' do
|
16
|
+
@helper.include_for('prototype.js', 'controls.js')
|
17
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
18
|
+
['javascript_include_tag:"prototype.js"',
|
19
|
+
'javascript_include_tag:"controls.js"'].join
|
20
|
+
end
|
21
|
+
|
22
|
+
it '複数のファイルを指定した場合(JSとCSS混在)' do
|
23
|
+
@helper.include_for('prototype.js', 'application.css', 'controls.js')
|
24
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
25
|
+
['javascript_include_tag:"prototype.js"',
|
26
|
+
'stylesheet_link_tag:"application.css"',
|
27
|
+
'javascript_include_tag:"controls.js"'].join
|
28
|
+
end
|
29
|
+
|
30
|
+
it '重複分は無視される' do
|
31
|
+
@helper.include_for('prototype.js', 'application.css', 'controls.js', 'application.css', 'prototype.js')
|
32
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
33
|
+
['javascript_include_tag:"prototype.js"',
|
34
|
+
'stylesheet_link_tag:"application.css"',
|
35
|
+
'javascript_include_tag:"controls.js"'].join
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
describe IncludeFor, ':header グループの明示' do
|
41
|
+
before(:each) do
|
42
|
+
@helper = Helper.new
|
43
|
+
end
|
44
|
+
|
45
|
+
it '1ファイルの指定' do
|
46
|
+
@helper.include_for('prototype.js', :to=>:header)
|
47
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
48
|
+
'javascript_include_tag:"prototype.js"'
|
49
|
+
end
|
50
|
+
|
51
|
+
it '複数のファイルを指定した場合' do
|
52
|
+
@helper.include_for('prototype.js', 'controls.js', :to=>:header)
|
53
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
54
|
+
['javascript_include_tag:"prototype.js"',
|
55
|
+
'javascript_include_tag:"controls.js"'].join
|
56
|
+
end
|
57
|
+
|
58
|
+
it '複数のファイルを指定した場合(JSとCSS混在)' do
|
59
|
+
@helper.include_for('prototype.js', 'application.css', 'controls.js', :to=>:header)
|
60
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
61
|
+
['javascript_include_tag:"prototype.js"',
|
62
|
+
'stylesheet_link_tag:"application.css"',
|
63
|
+
'javascript_include_tag:"controls.js"'].join
|
64
|
+
end
|
65
|
+
|
66
|
+
it '重複分は無視される' do
|
67
|
+
@helper.include_for('prototype.js', 'application.css', 'controls.js', 'application.css', 'prototype.js', :to=>:header)
|
68
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
69
|
+
['javascript_include_tag:"prototype.js"',
|
70
|
+
'stylesheet_link_tag:"application.css"',
|
71
|
+
'javascript_include_tag:"controls.js"'].join
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe IncludeFor, '別のグループ名の場合' do
|
76
|
+
before(:each) do
|
77
|
+
@helper = Helper.new
|
78
|
+
end
|
79
|
+
|
80
|
+
it ':footerに追加しても同じ出力を得る' do
|
81
|
+
@helper.include_for('prototype.js', :to=>:footer).should ==
|
82
|
+
['javascript_include_tag:"prototype.js"']
|
83
|
+
end
|
84
|
+
|
85
|
+
it ':footerに追加したものは:footerに入る' do
|
86
|
+
@helper.include_for('prototype.js', :to=>:footer)
|
87
|
+
@helper.instance_variable_get('@content_for_footer').should ==
|
88
|
+
['javascript_include_tag:"prototype.js"'].join
|
89
|
+
end
|
90
|
+
|
91
|
+
it ':footerに追加したものは:headerには影響を与えない' do
|
92
|
+
@helper.include_for('prototype.js', :to=>:footer)
|
93
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
94
|
+
nil
|
95
|
+
end
|
96
|
+
|
97
|
+
it ':headerと:footerにそれぞれ追加しても出力は独立している' do
|
98
|
+
@helper.include_for('prototype.js', :to=>:header)
|
99
|
+
@helper.include_for('controls.js', :to=>:footer)
|
100
|
+
@helper.include_for('application.css', :to=>:header)
|
101
|
+
@helper.include_for('defaults.css', :to=>:footer)
|
102
|
+
|
103
|
+
@helper.instance_variable_get('@content_for_header').should ==
|
104
|
+
['javascript_include_tag:"prototype.js"',
|
105
|
+
'stylesheet_link_tag:"application.css"'].join
|
106
|
+
|
107
|
+
@helper.instance_variable_get('@content_for_footer').should ==
|
108
|
+
['javascript_include_tag:"controls.js"',
|
109
|
+
'stylesheet_link_tag:"defaults.css"'].join
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe IncludeFor, '直接JSファイル名を指定すると' do
|
4
|
+
before(:each) do
|
5
|
+
@helper = Helper.new
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'javascript_include_tag の実行結果が配列で返る' do
|
9
|
+
@result = @helper.include_for('application.js')
|
10
|
+
@result.should ==
|
11
|
+
['javascript_include_tag:"application.js"']
|
12
|
+
end
|
13
|
+
|
14
|
+
it '複数のファイルを指定できる' do
|
15
|
+
@result = @helper.include_for('prototype.js', 'controls.js')
|
16
|
+
@result.should ==
|
17
|
+
['javascript_include_tag:"prototype.js"',
|
18
|
+
'javascript_include_tag:"controls.js"']
|
19
|
+
end
|
20
|
+
|
21
|
+
it '複数のファイルの順序も保存される' do
|
22
|
+
@result = @helper.include_for('controls.js', 'prototype.js')
|
23
|
+
@result.should ==
|
24
|
+
['javascript_include_tag:"controls.js"',
|
25
|
+
'javascript_include_tag:"prototype.js"']
|
26
|
+
end
|
27
|
+
|
28
|
+
it '重複するファイルは最初の1つだけが有効になる' do
|
29
|
+
@result = @helper.include_for('controls.js', 'prototype.js', 'prototype.js')
|
30
|
+
@result.should ==
|
31
|
+
['javascript_include_tag:"controls.js"',
|
32
|
+
'javascript_include_tag:"prototype.js"']
|
33
|
+
end
|
34
|
+
|
35
|
+
it '複数回に分割して実行すると最後だけが有効' do
|
36
|
+
@result = @helper.include_for('controls.js')
|
37
|
+
@result = @helper.include_for('prototype.js')
|
38
|
+
@result.should ==
|
39
|
+
['javascript_include_tag:"prototype.js"']
|
40
|
+
end
|
41
|
+
|
42
|
+
it '複数回に分割して実行して最後が重複している場合でも返される' do
|
43
|
+
@result = @helper.include_for('prototype.js')
|
44
|
+
@result = @helper.include_for('controls.js')
|
45
|
+
@result = @helper.include_for('prototype.js')
|
46
|
+
@result.should ==
|
47
|
+
['javascript_include_tag:"prototype.js"']
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
describe IncludeFor, '直接CSSファイル名を指定すると' do
|
53
|
+
before(:each) do
|
54
|
+
@helper = Helper.new
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'stylesheet_link_tag の実行結果が配列で返る' do
|
58
|
+
@result = @helper.include_for('application.css')
|
59
|
+
@result.should ==
|
60
|
+
['stylesheet_link_tag:"application.css"']
|
61
|
+
end
|
62
|
+
|
63
|
+
it '複数のファイルを指定できる' do
|
64
|
+
@result = @helper.include_for('prototype.css', 'controls.css')
|
65
|
+
@result.should ==
|
66
|
+
['stylesheet_link_tag:"prototype.css"',
|
67
|
+
'stylesheet_link_tag:"controls.css"']
|
68
|
+
end
|
69
|
+
|
70
|
+
it '複数のファイルの順序も保存される' do
|
71
|
+
@result = @helper.include_for('controls.css', 'prototype.css')
|
72
|
+
@result.should ==
|
73
|
+
['stylesheet_link_tag:"controls.css"',
|
74
|
+
'stylesheet_link_tag:"prototype.css"']
|
75
|
+
end
|
76
|
+
|
77
|
+
it '重複するファイルは最初の1つだけが有効になる' do
|
78
|
+
@result = @helper.include_for('controls.css', 'prototype.css', 'prototype.css')
|
79
|
+
@result.should ==
|
80
|
+
['stylesheet_link_tag:"controls.css"',
|
81
|
+
'stylesheet_link_tag:"prototype.css"']
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
describe IncludeFor, '直接JSとCSSファイル名を指定すると' do
|
87
|
+
before(:each) do
|
88
|
+
@helper = Helper.new
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'それぞれの結果が配列で返る' do
|
92
|
+
@result = @helper.include_for('prototype.js', 'application.css', 'controls.js', 'application.js')
|
93
|
+
@result.should ==
|
94
|
+
['javascript_include_tag:"prototype.js"',
|
95
|
+
'stylesheet_link_tag:"application.css"',
|
96
|
+
'javascript_include_tag:"controls.js"',
|
97
|
+
'javascript_include_tag:"application.js"']
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe IncludeFor, 'option付きのjs呼び出し' do
|
5
|
+
before(:each) do
|
6
|
+
@helper = Helper.new
|
7
|
+
end
|
8
|
+
|
9
|
+
it '1属性を指定' do
|
10
|
+
@result = @helper.include_for('application.js', :language=>"JavaScript")
|
11
|
+
@result.should == ['javascript_include_tag:"application.js",{:language=>"JavaScript"}']
|
12
|
+
end
|
13
|
+
|
14
|
+
it '2属性を指定' do
|
15
|
+
@result = @helper.include_for('application.js', :language=>"JavaScript", :charset=>"UTF-8")
|
16
|
+
@result.should == ['javascript_include_tag:"application.js",{:charset=>"UTF-8", :language=>"JavaScript"}']
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
describe IncludeFor, 'option付きのcss呼び出し' do
|
22
|
+
before(:each) do
|
23
|
+
@helper = Helper.new
|
24
|
+
end
|
25
|
+
|
26
|
+
it '1属性を指定' do
|
27
|
+
@result = @helper.include_for('application.css', :media=>"all")
|
28
|
+
@result.should == ['stylesheet_link_tag:"application.css",{:media=>"all"}']
|
29
|
+
end
|
30
|
+
|
31
|
+
it '2属性を指定' do
|
32
|
+
@result = @helper.include_for('application.css', :media=>"all", :charset=>"UTF-8")
|
33
|
+
@result.should == ['stylesheet_link_tag:"application.css",{:charset=>"UTF-8", :media=>"all"}']
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe IncludeFor, '例外的な指定' do
|
5
|
+
before(:each) do
|
6
|
+
@helper = Helper.new
|
7
|
+
end
|
8
|
+
|
9
|
+
it ':defaults はシンボルとして受理される' do
|
10
|
+
@result = @helper.include_for(:defaults)
|
11
|
+
@result.should ==
|
12
|
+
['javascript_include_tag::defaults']
|
13
|
+
end
|
14
|
+
|
15
|
+
it '末尾が js,css でない文字列はそのまま出力される' do
|
16
|
+
@result = @helper.include_for("alert('ok')")
|
17
|
+
@result.should ==
|
18
|
+
["alert('ok')"]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
data/spec/schema.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# This file is autogenerated. Instead of editing this file, please use the
|
2
|
+
# migrations feature of ActiveRecord to incrementally modify your database, and
|
3
|
+
# then regenerate this schema definition.
|
4
|
+
|
5
|
+
ActiveRecord::Schema.define(:version => 2) do
|
6
|
+
|
7
|
+
create_table "cards", :force => true do |t|
|
8
|
+
t.column "type", :string
|
9
|
+
t.column "no", :integer
|
10
|
+
t.column "name", :string
|
11
|
+
t.column "cost", :integer
|
12
|
+
t.column "kind", :string
|
13
|
+
t.column "hp", :integer
|
14
|
+
t.column "power", :integer
|
15
|
+
t.column "block", :integer
|
16
|
+
t.column "counter", :integer
|
17
|
+
t.column "capacity", :integer
|
18
|
+
t.column "skill_name", :string
|
19
|
+
t.column "skill_cost", :integer
|
20
|
+
t.column "member", :string
|
21
|
+
t.column "help", :string
|
22
|
+
end
|
23
|
+
|
24
|
+
create_table "decks", :force => true do |t|
|
25
|
+
t.column "name", :string
|
26
|
+
t.column "kind", :string
|
27
|
+
t.column "word", :string
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
|
2
|
+
# This file is copied to ~/spec when you run 'ruby script/generate rspec'
|
3
|
+
# from the project root directory.
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
|
7
|
+
ENV["RAILS_ENV"] = "test"
|
8
|
+
# require File.expand_path(File.dirname(__FILE__) + "/../../../../config/environment")
|
9
|
+
gem 'activesupport'
|
10
|
+
require 'active_support'
|
11
|
+
|
12
|
+
gem 'actionpack'
|
13
|
+
require 'action_controller'
|
14
|
+
require 'action_view'
|
15
|
+
|
16
|
+
gem 'rspec'
|
17
|
+
# require 'autotest'
|
18
|
+
# require 'autotest/redgreen'
|
19
|
+
|
20
|
+
require File.expand_path(File.dirname(__FILE__) + "/../lib/include_for")
|
21
|
+
$: << File.expand_path(File.dirname(__FILE__) + "/models")
|
22
|
+
|
23
|
+
|
24
|
+
class Helper
|
25
|
+
include IncludeFor
|
26
|
+
include ActionView::Helpers::CaptureHelper
|
27
|
+
|
28
|
+
def initialize
|
29
|
+
@counts = Hash.new(){0}
|
30
|
+
end
|
31
|
+
|
32
|
+
def count_for(type)
|
33
|
+
@counts[type]
|
34
|
+
end
|
35
|
+
|
36
|
+
######################################################################
|
37
|
+
### Mocks
|
38
|
+
|
39
|
+
def javascript_include_tag(*args)
|
40
|
+
@counts[:js] += 1
|
41
|
+
"javascript_include_tag:" + inspect_args(args)
|
42
|
+
end
|
43
|
+
|
44
|
+
def stylesheet_link_tag(*args)
|
45
|
+
@counts[:css] += 1
|
46
|
+
"stylesheet_link_tag:" + inspect_args(args)
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
def inspect_args(args)
|
51
|
+
options = args.last
|
52
|
+
if options.is_a?(Hash)
|
53
|
+
if options.blank?
|
54
|
+
# strip an empty hash argument
|
55
|
+
args.pop
|
56
|
+
else
|
57
|
+
# sort hash keys in inspect (dirty hack)
|
58
|
+
sorted = options.inspect.sub(/^\{/, '').sub(/\}$/, '').split(/, /).sort.join(', ')
|
59
|
+
return (args[0..-2].map(&:inspect) + ["{%s}" % sorted]).join(',')
|
60
|
+
end
|
61
|
+
end
|
62
|
+
args.map(&:inspect).join(',')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
data/uninstall.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Uninstall hook code here
|
metadata
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: maiha-include_for
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: "0.1"
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- maiha
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-06-05 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: ""
|
17
|
+
email: maiha@wota.jp
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- README
|
26
|
+
- Rakefile
|
27
|
+
- init.rb
|
28
|
+
- install.rb
|
29
|
+
- lib/include_for.rb
|
30
|
+
- spec/models/application.rb
|
31
|
+
- spec/models/grouping.rb
|
32
|
+
- spec/models/include_for.rb
|
33
|
+
- spec/models/option.rb
|
34
|
+
- spec/models/special.rb
|
35
|
+
- spec/schema.rb
|
36
|
+
- spec/spec.opts
|
37
|
+
- spec/spec_helper.rb
|
38
|
+
- tasks/include_for_tasks.rake
|
39
|
+
- test/include_for_test.rb
|
40
|
+
- uninstall.rb
|
41
|
+
has_rdoc: true
|
42
|
+
homepage: http://github.com/maiha/include_for
|
43
|
+
post_install_message:
|
44
|
+
rdoc_options: []
|
45
|
+
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: "0"
|
53
|
+
version:
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: "0"
|
59
|
+
version:
|
60
|
+
requirements: []
|
61
|
+
|
62
|
+
rubyforge_project:
|
63
|
+
rubygems_version: 1.0.1
|
64
|
+
signing_key:
|
65
|
+
specification_version: 2
|
66
|
+
summary: ""
|
67
|
+
test_files: []
|
68
|
+
|