rails-footnotes 4.0.0 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG +5 -0
- data/README.rdoc +17 -8
- data/lib/generators/templates/rails_footnotes.rb +7 -1
- data/lib/rails-footnotes.rb +6 -0
- data/lib/rails-footnotes/filter.rb +33 -7
- data/lib/rails-footnotes/notes/log_note.rb +7 -3
- data/lib/rails-footnotes/notes/queries_note.rb +12 -5
- data/lib/rails-footnotes/version.rb +1 -1
- metadata +14 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2cef699250d373d045cef743a70b3f49c46fc82c
|
4
|
+
data.tar.gz: e6143856c34a3ae3201a9f0e2ba503b8caecade8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: afb6c7f76465de26af156ee3bce87b54942fd499b3c8c5615b9029406cc517e27385e428bda91784e75eac6fb35029fa4bd9ea3c3ad9be5d15252eda82df5249
|
7
|
+
data.tar.gz: ee1985e69b29e36833dce2dfa455334ff8a981ea9f171a54c2ff5f81de52a8f07616a9fa59c38919ba7e6d23b2a10129ce23c2bffa1cdb90668f3e4fdda3d79c
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== Footnotes v4.0.1
|
2
|
+
* Fix bad count for log note
|
3
|
+
* More robust initializer (thanks kayhide)
|
4
|
+
* Ability to lock the notes on the top right instead of the footer (thanks joshuapaling)
|
5
|
+
* More readable notes (thanks joshuapaling)
|
1
6
|
== Footnotes v4.0.0
|
2
7
|
* Drop support for ruby 1.8
|
3
8
|
* Drop support for rails < 3.2
|
data/README.rdoc
CHANGED
@@ -10,7 +10,7 @@ your backtrace lines.
|
|
10
10
|
|
11
11
|
== Installation
|
12
12
|
|
13
|
-
NOTE: Since this branch aims Rails 3.2+ support, if you want to use footnotes with Rails 2.3 you should use this branch:
|
13
|
+
NOTE: Since this branch aims for Rails 3.2+ support, if you want to use footnotes with Rails 2.3 you should use this branch:
|
14
14
|
|
15
15
|
https://github.com/josevalim/rails-footnotes/tree/rails2
|
16
16
|
|
@@ -36,9 +36,9 @@ This will create an initializer with default config and some examples.
|
|
36
36
|
controller.action_name == 'edit' }
|
37
37
|
end
|
38
38
|
|
39
|
-
===
|
39
|
+
=== Editor links
|
40
40
|
|
41
|
-
|
41
|
+
Textmate, MacVim and Sublime Text 2 are compatible.
|
42
42
|
|
43
43
|
*MacVim*
|
44
44
|
|
@@ -46,9 +46,9 @@ In the rails-footnotes initializer do :
|
|
46
46
|
|
47
47
|
f.prefix = 'mvim://open?url=file://%s&line=%d&column=%d'
|
48
48
|
|
49
|
-
|
49
|
+
Here you need to choose a prefix compatible with your text editor. The %s is
|
50
50
|
replaced by the name of the file, the first %d is replaced by the line number and
|
51
|
-
the second %d is replaced by the column.
|
51
|
+
the second %d is replaced by the column number.
|
52
52
|
|
53
53
|
Take note that the order in which the file name (%s), line number (%d) and column number (%d) appears is important.
|
54
54
|
We assume that they appear in that order. "foo://line=%d&file=%s" (%d precedes %s) would throw out an error.
|
@@ -74,6 +74,15 @@ by turning footnotes stylesheet off:
|
|
74
74
|
|
75
75
|
f.no_style = true
|
76
76
|
|
77
|
+
You can also lock the footnotes to the top of the window, hidden by default, and accessible
|
78
|
+
via a small button fixed to the top-right of your browser:
|
79
|
+
|
80
|
+
f.lock_top_right = true
|
81
|
+
|
82
|
+
To set the font-size for the footnotes:
|
83
|
+
|
84
|
+
f.font_size = '13px'
|
85
|
+
|
77
86
|
Another option is to allow multiple notes to be opened at the same time:
|
78
87
|
|
79
88
|
f.multiple_notes = true
|
@@ -87,7 +96,7 @@ Finally, you can control which notes you want to show. The default are:
|
|
87
96
|
Creating your notes to integrate with Footnotes is easy.
|
88
97
|
|
89
98
|
1. Create a Footnotes::Notes::YourExampleNote class
|
90
|
-
2. Implement the necessary methods (check abstract_note.rb file in lib/
|
99
|
+
2. Implement the necessary methods (check abstract_note.rb[link:lib/rails-footnotes/abstract_note.rb] file in lib/rails-footnotes)
|
91
100
|
3. Append your example note in Footnotes::Filter.notes array (usually at the end of your environment file or in the initializer):
|
92
101
|
|
93
102
|
For example, to create a note that shows info about the user logged in your application you just have to do:
|
@@ -127,10 +136,10 @@ Then put in your environment, add in your initializer:
|
|
127
136
|
|
128
137
|
f.notes += [:current_user]
|
129
138
|
|
130
|
-
==
|
139
|
+
== Footnote position
|
131
140
|
|
132
141
|
By default the notes will be showed at the bottom of your page (appended just before </body>).
|
133
|
-
If you'd like
|
142
|
+
If you'd like the footnote, to be at a different place (perhaps for aesthetical reasons) you can edit one of your views and add:
|
134
143
|
<div id="footnotes_holder"></div>
|
135
144
|
at an appropriate place, your notes will now appear inside div#footnotes_holder
|
136
145
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
Footnotes.setup do |f|
|
1
|
+
defined?(Footnotes) && Footnotes.setup do |f|
|
2
2
|
# Wether or not to enable footnotes
|
3
3
|
f.enabled = Rails.env.development?
|
4
4
|
# You can also use a lambda / proc to conditionally toggle footnotes
|
@@ -16,6 +16,12 @@ Footnotes.setup do |f|
|
|
16
16
|
# Disable style :
|
17
17
|
# f.no_style = true
|
18
18
|
|
19
|
+
# Lock notes to top right :
|
20
|
+
# f.lock_top_right = true
|
21
|
+
|
22
|
+
# Change font size :
|
23
|
+
# f.font_size = '11px'
|
24
|
+
|
19
25
|
# Allow to open multiple notes :
|
20
26
|
# f.multiple_notes = true
|
21
27
|
end
|
data/lib/rails-footnotes.rb
CHANGED
@@ -29,6 +29,12 @@ module Footnotes
|
|
29
29
|
|
30
30
|
delegate :multiple_notes, :to => Filter
|
31
31
|
delegate :multiple_notes=, :to => Filter
|
32
|
+
|
33
|
+
delegate :lock_top_right, :to => Filter
|
34
|
+
delegate :lock_top_right=, :to => Filter
|
35
|
+
|
36
|
+
delegate :font_size, :to => Filter
|
37
|
+
delegate :font_size=, :to => Filter
|
32
38
|
end
|
33
39
|
|
34
40
|
def self.run!
|
@@ -3,6 +3,8 @@ module Footnotes
|
|
3
3
|
@@no_style = false
|
4
4
|
@@multiple_notes = false
|
5
5
|
@@klasses = []
|
6
|
+
@@lock_top_right = false
|
7
|
+
@@font_size = '11px'
|
6
8
|
|
7
9
|
# Default link prefix is textmate
|
8
10
|
@@prefix = 'txmt://open?url=file://%s&line=%d&column=%d'
|
@@ -16,7 +18,9 @@ module Footnotes
|
|
16
18
|
# :notes => Class variable that holds the notes to be processed
|
17
19
|
# :prefix => Prefix appended to FootnotesLinks
|
18
20
|
# :multiple_notes => Set to true if you want to open several notes at the same time
|
19
|
-
|
21
|
+
# :lock_top_right => Lock a btn to toggle notes to the top right of the browser
|
22
|
+
# :font_size => CSS font-size property
|
23
|
+
cattr_accessor :no_style, :notes, :prefix, :multiple_notes, :lock_top_right, :font_size
|
20
24
|
|
21
25
|
class << self
|
22
26
|
include Footnotes::EachWithRescue
|
@@ -136,18 +140,34 @@ module Footnotes
|
|
136
140
|
|
137
141
|
def insert_styles
|
138
142
|
#TODO More customizable(reset.css, from file etc.)
|
143
|
+
if @@lock_top_right
|
144
|
+
extra_styles = <<-STYLES
|
145
|
+
#footnotes_debug {position: fixed; top: 0px; right: 0px; width: 100%; z-index: 10000; margin-top: 0;}
|
146
|
+
#footnotes_debug #toggle_footnotes {position: absolute; right: 0; top: 0; background: #fff; border: 1px solid #ccc; color: #9b1b1b; font-size: 20px; text-align: center; padding: 8px; opacity: 0.9;}
|
147
|
+
#footnotes_debug #toggle_footnotes:hover {opacity: 1;}
|
148
|
+
#footnotes_debug #all_footnotes {display: none; padding: 15px; background: #fff; box-shadow: 0 0 5px rgba(0,0,0,0.4);}
|
149
|
+
#footnotes_debug fieldset > div {max-height: 500px; overflow: scroll;}
|
150
|
+
STYLES
|
151
|
+
else
|
152
|
+
extra_styles = <<-STYLES
|
153
|
+
#footnotes_debug #toggle_footnotes {display: none;}
|
154
|
+
STYLES
|
155
|
+
end
|
139
156
|
insert_text :before, /<\/head>/i, <<-HTML
|
140
157
|
<!-- Footnotes Style -->
|
141
158
|
<style type="text/css">
|
142
|
-
#footnotes_debug {font-size:
|
159
|
+
#footnotes_debug {font-size: #{@@font_size}; font-family: Consolas, monaco, monospace; font-weight: normal; margin: 2em 0 1em 0; text-align: center; color: #444; line-height: 16px; background: #fff;}
|
143
160
|
#footnotes_debug th, #footnotes_debug td {color: #444; line-height: 18px;}
|
144
161
|
#footnotes_debug a {color: #9b1b1b; font-weight: inherit; text-decoration: none; line-height: 18px;}
|
145
|
-
#footnotes_debug table {text-align:
|
146
|
-
#footnotes_debug table td {padding:
|
162
|
+
#footnotes_debug table {text-align: left; width: 100%;table-layout: fixed;}
|
163
|
+
#footnotes_debug table td {padding: 5px; border-bottom: 1px solid #ccc;}
|
164
|
+
#footnotes_debug table th {padding: 5px; border-bottom: 1px solid #ccc;}
|
165
|
+
#footnotes_debug table tr:nth-child(2n) td {background: #eee;}
|
147
166
|
#footnotes_debug tbody {text-align: left;}
|
148
167
|
#footnotes_debug .name_values td {vertical-align: top;}
|
149
168
|
#footnotes_debug legend {background-color: #fff;}
|
150
169
|
#footnotes_debug fieldset {text-align: left; border: 1px dashed #aaa; padding: 0.5em 1em 1em 1em; margin: 1em 2em; color: #444; background-color: #FFF;}
|
170
|
+
#{extra_styles}
|
151
171
|
/* Aditional Stylesheets */
|
152
172
|
#{@notes.map(&:stylesheet).compact.join("\n")}
|
153
173
|
</style>
|
@@ -158,13 +178,19 @@ module Footnotes
|
|
158
178
|
def insert_footnotes
|
159
179
|
# Fieldsets method should be called first
|
160
180
|
content = fieldsets
|
161
|
-
|
181
|
+
element_style = ''
|
182
|
+
if @@lock_top_right
|
183
|
+
element_style = 'style="display: none;"'
|
184
|
+
end
|
162
185
|
footnotes_html = <<-HTML
|
163
186
|
<!-- Footnotes -->
|
164
187
|
<div style="clear:both"></div>
|
165
188
|
<div id="footnotes_debug">
|
166
|
-
#
|
167
|
-
#{
|
189
|
+
<a id="toggle_footnotes" href="#" onclick="Footnotes.toggle('all_footnotes'); return false;">fn</a>
|
190
|
+
<div id="all_footnotes" #{element_style}>
|
191
|
+
#{links}
|
192
|
+
#{content}
|
193
|
+
</div>
|
168
194
|
<script type="text/javascript">
|
169
195
|
var Footnotes = function() {
|
170
196
|
|
@@ -19,18 +19,22 @@ module Footnotes
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def title
|
22
|
-
"Log (#{log.count
|
22
|
+
"Log (#{log.count})"
|
23
23
|
end
|
24
24
|
|
25
25
|
def content
|
26
|
-
result =
|
26
|
+
result = '<table>'
|
27
|
+
log.each do |l|
|
28
|
+
result << "<tr><td>#{l.gsub(/\e\[.+?m/, '')}</td></tr>"
|
29
|
+
end
|
30
|
+
result << '</table>'
|
27
31
|
# Restore formatter
|
28
32
|
Rails.logger = self.class.original_logger
|
29
33
|
result
|
30
34
|
end
|
31
35
|
|
32
36
|
def log
|
33
|
-
self.class.logs
|
37
|
+
self.class.logs
|
34
38
|
end
|
35
39
|
|
36
40
|
end
|
@@ -33,18 +33,25 @@ module Footnotes
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def content
|
36
|
-
html = ''
|
36
|
+
html = '<table>'
|
37
37
|
self.events.each_with_index do |event, index|
|
38
38
|
sql_links = []
|
39
39
|
sql_links << "<a href=\"javascript:Footnotes.toggle('qtrace_#{index}')\" style=\"color:#00A;\">trace</a>"
|
40
40
|
|
41
41
|
html << <<-HTML
|
42
|
-
|
43
|
-
<
|
44
|
-
|
45
|
-
|
42
|
+
<tr>
|
43
|
+
<td>
|
44
|
+
<b id="qtitle_#{index}">#{escape(event.type.to_s.upcase)}</b> (#{sql_links.join(' | ')})
|
45
|
+
<p id="qtrace_#{index}" style="display:none;">#{parse_trace(event.trace)}</p><br />
|
46
|
+
</td>
|
47
|
+
<td>
|
48
|
+
<span id="sql_#{index}">#{print_query(event.payload[:sql])}</span>
|
49
|
+
</td>
|
50
|
+
<td>#{print_name_and_time(event.payload[:name], event.duration / 1000.0)}</td>
|
51
|
+
</tr>
|
46
52
|
HTML
|
47
53
|
end
|
54
|
+
html << '</table>'
|
48
55
|
return html
|
49
56
|
end
|
50
57
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-footnotes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
5
|
-
prerelease:
|
4
|
+
version: 4.0.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Roman V. Babenko
|
@@ -13,54 +12,48 @@ authors:
|
|
13
12
|
autorequire:
|
14
13
|
bindir: bin
|
15
14
|
cert_chain: []
|
16
|
-
date: 2014-
|
15
|
+
date: 2014-05-13 00:00:00.000000000 Z
|
17
16
|
dependencies:
|
18
17
|
- !ruby/object:Gem::Dependency
|
19
18
|
name: rails
|
20
19
|
requirement: !ruby/object:Gem::Requirement
|
21
|
-
none: false
|
22
20
|
requirements:
|
23
|
-
- -
|
21
|
+
- - '>='
|
24
22
|
- !ruby/object:Gem::Version
|
25
23
|
version: '3.2'
|
26
24
|
type: :runtime
|
27
25
|
prerelease: false
|
28
26
|
version_requirements: !ruby/object:Gem::Requirement
|
29
|
-
none: false
|
30
27
|
requirements:
|
31
|
-
- -
|
28
|
+
- - '>='
|
32
29
|
- !ruby/object:Gem::Version
|
33
30
|
version: '3.2'
|
34
31
|
- !ruby/object:Gem::Dependency
|
35
32
|
name: rspec-rails
|
36
33
|
requirement: !ruby/object:Gem::Requirement
|
37
|
-
none: false
|
38
34
|
requirements:
|
39
|
-
- -
|
35
|
+
- - '>='
|
40
36
|
- !ruby/object:Gem::Version
|
41
37
|
version: '0'
|
42
38
|
type: :development
|
43
39
|
prerelease: false
|
44
40
|
version_requirements: !ruby/object:Gem::Requirement
|
45
|
-
none: false
|
46
41
|
requirements:
|
47
|
-
- -
|
42
|
+
- - '>='
|
48
43
|
- !ruby/object:Gem::Version
|
49
44
|
version: '0'
|
50
45
|
- !ruby/object:Gem::Dependency
|
51
46
|
name: capybara
|
52
47
|
requirement: !ruby/object:Gem::Requirement
|
53
|
-
none: false
|
54
48
|
requirements:
|
55
|
-
- -
|
49
|
+
- - '>='
|
56
50
|
- !ruby/object:Gem::Version
|
57
51
|
version: '0'
|
58
52
|
type: :development
|
59
53
|
prerelease: false
|
60
54
|
version_requirements: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
55
|
requirements:
|
63
|
-
- -
|
56
|
+
- - '>='
|
64
57
|
- !ruby/object:Gem::Version
|
65
58
|
version: '0'
|
66
59
|
description: Every Rails page has footnotes that gives information about your application
|
@@ -127,27 +120,26 @@ files:
|
|
127
120
|
- spec/views/partials/index.html.erb
|
128
121
|
homepage: http://github.com/josevalim/rails-footnotes
|
129
122
|
licenses: []
|
123
|
+
metadata: {}
|
130
124
|
post_install_message:
|
131
125
|
rdoc_options: []
|
132
126
|
require_paths:
|
133
127
|
- lib
|
134
128
|
required_ruby_version: !ruby/object:Gem::Requirement
|
135
|
-
none: false
|
136
129
|
requirements:
|
137
|
-
- -
|
130
|
+
- - '>='
|
138
131
|
- !ruby/object:Gem::Version
|
139
132
|
version: '0'
|
140
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
-
none: false
|
142
134
|
requirements:
|
143
|
-
- -
|
135
|
+
- - '>='
|
144
136
|
- !ruby/object:Gem::Version
|
145
137
|
version: '0'
|
146
138
|
requirements: []
|
147
139
|
rubyforge_project: rails-footnotes
|
148
|
-
rubygems_version:
|
140
|
+
rubygems_version: 2.2.2
|
149
141
|
signing_key:
|
150
|
-
specification_version:
|
142
|
+
specification_version: 4
|
151
143
|
summary: Every Rails page has footnotes that gives information about your application
|
152
144
|
and links back to your editor.
|
153
145
|
test_files:
|
@@ -165,3 +157,4 @@ test_files:
|
|
165
157
|
- spec/spec_helper.rb
|
166
158
|
- spec/views/partials/_foo.html.erb
|
167
159
|
- spec/views/partials/index.html.erb
|
160
|
+
has_rdoc:
|