rails-footnotes 7.1.0 → 7.1.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rails-footnotes/notes/log_note/note_logger.rb +1 -0
  3. data/lib/rails-footnotes/version.rb +1 -1
  4. metadata +7 -71
  5. data/.github/dependabot.yml +0 -10
  6. data/.github/workflows/ci.yml +0 -19
  7. data/.github/workflows/merge-dependabot.yml +0 -33
  8. data/.gitignore +0 -10
  9. data/.rspec.example +0 -1
  10. data/.ruby-version +0 -1
  11. data/Gemfile +0 -15
  12. data/Gemfile.lock +0 -256
  13. data/Rakefile +0 -18
  14. data/bin/rake +0 -29
  15. data/bin/rspec +0 -29
  16. data/gemfiles/Gemfile.rails-3.2.22 +0 -5
  17. data/gemfiles/Gemfile.rails-4.0.x +0 -6
  18. data/gemfiles/Gemfile.rails-4.1.x +0 -5
  19. data/gemfiles/Gemfile.rails-4.2.x +0 -5
  20. data/gemfiles/Gemfile.rails-edge +0 -5
  21. data/rails-footnotes.gemspec +0 -19
  22. data/renovate.json +0 -5
  23. data/spec/abstract_note_spec.rb +0 -89
  24. data/spec/app/assets/config/manifest.js +0 -2
  25. data/spec/app/assets/javascripts/foobar.js +0 -1
  26. data/spec/app/assets/stylesheets/foobar.css +0 -0
  27. data/spec/app/views/files/index.html.erb +0 -1
  28. data/spec/app/views/layouts/application.html.erb +0 -12
  29. data/spec/app/views/partials/_foo.html.erb +0 -1
  30. data/spec/app/views/partials/index.html.erb +0 -1
  31. data/spec/controllers/files_note_controller_spec.rb +0 -38
  32. data/spec/controllers/footnotes_controller_spec.rb +0 -128
  33. data/spec/controllers/log_note_controller_spec.rb +0 -32
  34. data/spec/controllers/partials_note_controller_spec.rb +0 -28
  35. data/spec/env_note_spec.rb +0 -73
  36. data/spec/fixtures/html_download.html +0 -5
  37. data/spec/footnotes_spec.rb +0 -267
  38. data/spec/notes/assigns_note_spec.rb +0 -68
  39. data/spec/notes/controller_note_spec.rb +0 -12
  40. data/spec/notes/files_note_spec.rb +0 -26
  41. data/spec/notes/javascripts_note_spec.rb +0 -18
  42. data/spec/notes/stylesheets_note_spec.rb +0 -19
  43. data/spec/notes/view_note_spec.rb +0 -18
  44. data/spec/spec_helper.rb +0 -68
  45. data/spec/support/active_record.rb +0 -22
@@ -1,89 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Footnotes::Notes::AbstractNote do
4
- before do
5
- @note = Footnotes::Notes::AbstractNote.new
6
- @notes = Footnotes::Filter.notes
7
- Footnotes::Filter.notes = [:abstract]
8
- end
9
-
10
- after do
11
- Footnotes::Filter.notes = @notes
12
- end
13
-
14
- it {expect(described_class).to respond_to :start!}
15
- it {expect(described_class).to respond_to :close!}
16
- it {expect(described_class).to respond_to :title}
17
-
18
- it {should respond_to :to_sym}
19
-
20
- describe '#to_sym' do
21
- subject { super().to_sym }
22
- it {should eql :abstract}
23
- end
24
-
25
- it { expect(described_class).to be_included }
26
- specify do
27
- Footnotes::Filter.notes = []
28
- expect(described_class).not_to be_included
29
- end
30
-
31
- it { should respond_to :row }
32
- it { should respond_to :legend }
33
- it { should respond_to :link }
34
- it { should respond_to :onclick }
35
- it { should respond_to :stylesheet }
36
- it { should respond_to :javascript }
37
-
38
- it { should respond_to :valid? }
39
- it { should be_valid }
40
-
41
- it { should respond_to :has_fieldset? }
42
- it { should_not have_fieldset }
43
-
44
- specify { Footnotes::Filter.prefix = ''; should_not be_prefix }
45
- specify do
46
- Footnotes::Filter.prefix = 'txmt://open?url=file://%s&line=%d&column=%d'
47
- should be_prefix
48
- end
49
-
50
- #TODO should be moved to builder
51
- #helpers
52
- specify { expect(subject.escape('<')).to eql '&lt;' }
53
- specify { expect(subject.escape('&')).to eql '&amp;' }
54
- specify { expect(subject.escape('>')).to eql '&gt;' }
55
-
56
- specify { expect(subject.mount_table([])).to be_blank }
57
- specify { expect(subject.mount_table([['h1', 'h2', 'h3']], :class => 'table')).to be_blank }
58
-
59
- specify {
60
- tab = <<-TABLE
61
- <table class="table" >
62
- <thead><tr><th>H1</th></tr></thead>
63
- <tbody><tr><td>r1c1</td></tr></tbody>
64
- </table>
65
- TABLE
66
-
67
- expect(subject.mount_table([['h1'],['r1c1']], :class => 'table')).to eql tab
68
- }
69
-
70
- specify {
71
- tab = <<-TABLE
72
- <table >
73
- <thead><tr><th>H1</th><th>H2</th><th>H3</th></tr></thead>
74
- <tbody><tr><td>r1c1</td><td>r1c2</td><td>r1c3</td></tr></tbody>
75
- </table>
76
- TABLE
77
- expect(subject.mount_table([['h1', 'h2', 'h3'],['r1c1', 'r1c2', 'r1c3']])).to eql tab
78
- }
79
-
80
- specify {
81
- tab = <<-TABLE
82
- <table >
83
- <thead><tr><th>H1</th><th>H2</th><th>H3</th></tr></thead>
84
- <tbody><tr><td>r1c1</td><td>r1c2</td><td>r1c3</td></tr><tr><td>r2c1</td><td>r2c2</td><td>r2c3</td></tr></tbody>
85
- </table>
86
- TABLE
87
- subject.mount_table([['h1', 'h2', 'h3'], ['r1c1', 'r1c2', 'r1c3'], ['r2c1', 'r2c2', 'r2c3']])
88
- }
89
- end
@@ -1,2 +0,0 @@
1
- //= link_directory ../javascripts .js
2
- //= link_directory ../stylesheets .css
@@ -1 +0,0 @@
1
- // Foobar
File without changes
@@ -1 +0,0 @@
1
- FILES INDEX
@@ -1,12 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <%= javascript_include_tag 'foobar' %>
5
- <%= javascript_include_tag 'http://google.com/whatever.js' %>
6
- <%= stylesheet_link_tag 'foobar' %>
7
- <%= stylesheet_link_tag 'http://google.com/whatever.css' %>
8
- </head>
9
- <body>
10
- <%= yield %>
11
- </body>
12
- </html>
@@ -1 +0,0 @@
1
- bar
@@ -1 +0,0 @@
1
- <%= render 'foo' %>
@@ -1,38 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class FilesController < ApplicationController
4
- def index
5
- end
6
- end
7
-
8
- describe FilesController, type: :controller do
9
- render_views
10
-
11
- before :all do
12
- Footnotes.enabled = true
13
- end
14
-
15
- after :all do
16
- Footnotes.enabled = false
17
- end
18
-
19
- it 'includes stylesheets assets in the response' do
20
- get :index
21
- expect(response.body).to include("FILES INDEX")
22
- js_debug = first('fieldset#javascripts_debug_info div', visible: false)
23
- expect(js_debug).to have_selector('li a', visible: false, count: 1)
24
- expect(js_debug).to have_selector('li a', text: /foobar\.js/, visible: false)
25
- link = js_debug.first('a', visible: false)
26
- expect(link['href']).to eq("txmt://open?url=file://#{Rails.root.join('app', 'assets', 'javascripts', 'foobar.js')}&line=1&column=1")
27
- end
28
-
29
- it 'includes css assets in the response' do
30
- get :index
31
- css_debug = first('fieldset#stylesheets_debug_info div', visible: false)
32
- expect(css_debug).to have_selector('li a', visible: false, count: 1)
33
- expect(css_debug).to have_selector('li a', text: /foobar\.css/, visible: false)
34
- link = css_debug.first('a', visible: false)
35
- expect(link['href']).to eq("txmt://open?url=file://#{Rails.root.join('app', 'assets', 'stylesheets', 'foobar.css')}&line=1&column=1")
36
- end
37
-
38
- end
@@ -1,128 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class FootnotesController < ActionController::Base
4
-
5
- def foo
6
- render inline: HTML_DOCUMENT, content_type: 'text/html'
7
- end
8
-
9
- def foo_holder
10
- render inline: '<html><body><div id="footnotes_holder"></div></body></html>'
11
- end
12
-
13
- def foo_js
14
- render inline: '<script></script>', content_type: 'text/javascript'
15
- end
16
-
17
- def foo_download
18
- send_file Rails.root.join('fixtures', 'html_download.html'), :disposition => 'attachment'
19
- end
20
-
21
- end
22
-
23
- describe FootnotesController, type: :controller do
24
-
25
- shared_examples 'has_footnotes' do
26
- it 'includes footnotes' do
27
- get :foo
28
- expect(response.body).to have_selector('#footnotes_debug')
29
- end
30
- end
31
-
32
- shared_examples 'has_no_footnotes' do
33
- it 'does not include footnotes' do
34
- expect(response.body).not_to have_selector('#footnotes_debug')
35
- end
36
- end
37
-
38
- it 'does not alter the page by default' do
39
- get :foo
40
- expect(response.body).to eq(HTML_DOCUMENT)
41
- end
42
-
43
- context 'with footnotes' do
44
-
45
- before :all do
46
- Footnotes.enabled = true
47
- end
48
-
49
- after :all do
50
- Footnotes.enabled = false
51
- end
52
-
53
- describe 'by default' do
54
- include_context 'has_footnotes'
55
-
56
- before do
57
- get :foo
58
- end
59
-
60
- it 'includes footnotes in the last div in body' do
61
- expect(all('body > :last-child')[0][:id]).to eq('footnotes_debug')
62
- end
63
-
64
- it 'includes footnotes in the footnoted_holder div if present' do
65
- get :foo_holder
66
- expect(response.body).to have_selector('#footnotes_holder > #footnotes_debug')
67
- end
68
-
69
- it 'does not alter a html file download' do
70
- get :foo_download
71
- expect(response.body).to eq(File.open(Rails.root.join('fixtures', 'html_download.html')).read)
72
- end
73
- end
74
-
75
- describe 'when request is xhr' do
76
- include_context 'has_no_footnotes'
77
- before do
78
- get :foo, xhr: true
79
- end
80
- end
81
-
82
- describe 'when content type is javascript' do
83
- include_context 'has_no_footnotes'
84
- before do
85
- get :foo_js
86
- end
87
- end
88
-
89
- describe 'when footnotes is disabled' do
90
- include_context 'has_no_footnotes'
91
- before do
92
- Footnotes.enabled = false
93
- get :foo
94
- end
95
- end
96
-
97
- describe 'with a proc' do
98
-
99
- it 'yields the controller' do
100
- c = nil
101
- Footnotes.enabled = lambda { |controller| c = controller}
102
- get :foo
103
- expect(c).to be_kind_of(ActionController::Base)
104
- end
105
-
106
- context 'returning true' do
107
- include_context 'has_footnotes'
108
-
109
- before do
110
- Footnotes.enabled = lambda { true }
111
- get :foo
112
- end
113
- end
114
-
115
- context 'returning false' do
116
- include_context 'has_no_footnotes'
117
-
118
- before do
119
- Footnotes.enabled = lambda { false }
120
- get :foo
121
- end
122
- end
123
-
124
- end
125
-
126
- end
127
-
128
- end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
- require 'stringio'
3
-
4
- describe 'log note', type: :controller do
5
-
6
- class ApplicationController < ActionController::Base
7
- end
8
-
9
- controller do
10
- def index
11
- Rails.logger.error 'foo'
12
- Rails.logger.warn 'bar'
13
- render inline: '<html><head></head><body></body></html>', content_type: 'text/html'
14
- end
15
- end
16
-
17
- before :all do
18
- Footnotes.enabled = true
19
- end
20
-
21
- after :all do
22
- Footnotes.enabled = false
23
- end
24
-
25
- it 'Includes the log in the response' do
26
- get :index
27
- log_debug = first('fieldset#log_debug_info div', :visible => false)
28
- expect(log_debug).to have_content('foo')
29
- expect(log_debug).to have_content('bar')
30
- end
31
-
32
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class PartialsController < ActionController::Base
4
-
5
- def index
6
- end
7
-
8
- end
9
-
10
- describe PartialsController, type: :controller do
11
-
12
- render_views
13
-
14
- before :all do
15
- Footnotes.enabled = true
16
- end
17
-
18
- after :all do
19
- Footnotes.enabled = false
20
- end
21
-
22
- it 'lists the rendered partials' do
23
- get :index
24
- expect(response.body).to have_selector('#footnotes_debug #partials_debug_info table tr', :visible => false, :count => 2)
25
- end
26
-
27
-
28
- end
@@ -1,73 +0,0 @@
1
- require 'spec_helper'
2
- require 'action_controller'
3
- require 'action_controller/test_case'
4
-
5
- class FootnotesEnvController < ActionController::Base
6
- attr_accessor :template, :performed_render
7
- end
8
-
9
- describe Footnotes::Notes::EnvNote do
10
- let(:controller) {
11
- FootnotesEnvController.new.tap { |c|
12
- c.template = Object.new
13
- c.request = ActionDispatch::TestRequest.create
14
- c.response = ActionDispatch::TestResponse.new
15
- c.response_body = %Q(<html><body></body></html>)
16
- c.params = {}
17
- }
18
- }
19
-
20
- subject { described_class.new(controller) }
21
-
22
- before do
23
- @notes = Footnotes::Filter.notes
24
- Footnotes::Filter.notes = [ :env ]
25
- end
26
-
27
- after do
28
- Footnotes::Filter.notes = @notes
29
- end
30
-
31
- it '#to_sym is :env' do
32
- expect(subject.to_sym).to eq(:env)
33
- end
34
-
35
- context 'with non-spec env keys' do
36
- before :each do
37
- controller.request.env.replace(:non_spec => 'symbol_env')
38
- end
39
-
40
- it 'does not raise an exception' do
41
- expect { subject.content }.not_to raise_error
42
- end
43
-
44
- it 'includes the environment row' do
45
- expect(subject).to receive(:mount_table).
46
- with([ [ :key, 'value' ], [ 'non_spec', 'symbol_env' ] ])
47
- subject.content
48
- end
49
- end
50
-
51
- it 'includes values for all of the keys except HTTP_COOKIE' do
52
- env = controller.request.env.dup
53
- env.delete('HTTP_COOKIE')
54
-
55
- env_data = env.map { |k, v| [ k.to_s, subject.escape(v.to_s) ] }.
56
- sort.
57
- unshift([ :key, 'value' ])
58
-
59
- expect(subject).to receive(:mount_table).with(env_data)
60
- subject.content
61
- end
62
-
63
- it 'gets a link for HTTP_COOKIE' do
64
- controller.request.env.replace('HTTP_COOKIE' => 'foo')
65
- expect(subject).to receive(:mount_table).
66
- with([
67
- [ :key, 'value' ],
68
- [ 'HTTP_COOKIE',
69
- '<a href="#" style="color:#009" onclick="Footnotes.hideAllAndToggle(\'cookies_debug_info\');return false;">See cookies on its tab</a>' ]
70
- ])
71
- subject.content
72
- end
73
- end
@@ -1,5 +0,0 @@
1
- <html>
2
- <body>
3
- <p>Hello world</p>
4
- </body>
5
- </html>