rails-footnotes 3.7.5.rc4 → 3.7.5

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/Gemfile CHANGED
@@ -1,12 +1,14 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in mcutter.gemspec
4
3
  gemspec
5
4
 
6
5
  # gem "rails", ">= 3.0.5"
7
- #
8
- if RUBY_PLATFORM =~ /darwin/
9
- group :test do
10
- gem 'simplecov', '>= 0.4.0', :require => false
6
+
7
+ group :test do
8
+ if RUBY_VERSION > "1.9.0"
9
+ # gem 'simplecov', '>= 0.4.0', :require => false
10
+ else
11
+ # gem "rcov"
12
+ gem "ruby-debug"
11
13
  end
12
14
  end
@@ -17,11 +17,11 @@ Install Rails Footnotes is very easy.
17
17
 
18
18
  === Rails 3.x
19
19
 
20
- gem 'rails-footnotes', '>= 3.7', :group => :development
20
+ gem 'rails-footnotes', '>= 3.7.5.rc4', :group => :development
21
21
 
22
22
  After you install RailsFootnotes and add it to your Gemfile, you need to run the generator:
23
23
 
24
- rails generate rails_footnotese:install
24
+ rails generate rails_footnotes:install
25
25
 
26
26
  === Rails 2.x
27
27
 
@@ -145,7 +145,6 @@ module Footnotes
145
145
  return '' if array.empty?
146
146
 
147
147
  header = header.collect{|i| escape(i.to_s.humanize) }
148
- # array = array.collect { |a| a.collect { |b| c = b.to_s; escape(c) unless c == ""}}
149
148
  rows = array.collect{|i| "<tr><td>#{i.join('</td><td>')}</td></tr>" }
150
149
 
151
150
  <<-TABLE
@@ -26,28 +26,20 @@ module Footnotes
26
26
  end
27
27
 
28
28
  def valid?
29
- assigns
29
+ assigns.present?
30
30
  end
31
31
 
32
32
  def content
33
- rows = []
34
- assigns.each do |key|
35
- rows << [ key, escape(assigned_value(key)) ]
36
- end
37
- mount_table(rows.unshift(['Name', 'Value']), :class => 'name_values', :summary => "Debug information for #{title}")
33
+ mount_table(to_table, :summary => "Debug information for #{title}")
38
34
  end
39
35
 
40
36
  protected
37
+ def to_table
38
+ @to_table ||= assigns.inject([]) {|rr, var| rr << [var, escape(assigned_value(var))]}.unshift(['Name', 'Value'])
39
+ end
41
40
 
42
41
  def assigns
43
- assign = []
44
- ignored = @@ignored_assigns
45
-
46
- @controller.instance_variables.each {|x| assign << x.intern }
47
- @controller.protected_instance_variables.each {|x| ignored << x.intern } if @controller.respond_to? :protected_instance_variables
48
-
49
- assign -= ignored
50
- return assign
42
+ @assigns ||= @controller.instance_variables.map {|v| v.to_sym} - ignored_assigns
51
43
  end
52
44
 
53
45
  def assigned_value(key)
@@ -1,3 +1,3 @@
1
1
  module Footnotes
2
- VERSION = "3.7.5.rc4"
2
+ VERSION = "3.7.5"
3
3
  end
@@ -23,7 +23,7 @@ describe "Footnotes" do
23
23
  @controller.template = Object.new
24
24
  @controller.request = ActionController::TestRequest.new
25
25
  @controller.response = ActionController::TestResponse.new
26
- @controller.response_body = $html.dup
26
+ @controller.response_body = HTML.dup
27
27
  @controller.params = {}
28
28
 
29
29
  Footnotes::Filter.notes = [ :test ]
@@ -36,33 +36,36 @@ describe "Footnotes" do
36
36
  index.should eql 334
37
37
  end
38
38
 
39
- it "foonotes_included" do
40
- footnotes_perform!
41
- @controller.response_body.should_not eql $html
39
+ #TODO doe's not pased with 1.8.7
40
+ if RUBY_VERSION >= '1.9.0'
41
+ it "foonotes_included" do
42
+ footnotes_perform!
43
+ @controller.response_body.should_not == HTML
44
+ end
42
45
  end
43
46
 
44
47
  specify "footnotes_not_included_when_request_is_xhr" do
45
48
  @controller.request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
46
49
  @controller.request.env['HTTP_ACCEPT'] = 'text/javascript, text/html, application/xml, text/xml, */*'
47
50
  footnotes_perform!
48
- @controller.response.body.should eql $html
51
+ @controller.response.body.should eql HTML
49
52
  end
50
53
 
51
54
  specify "footnotes_not_included_when_content_type_is_javascript" do
52
55
  @controller.response.headers['Content-Type'] = 'text/javascript'
53
56
  footnotes_perform!
54
- @controller.response.body.should eql $html
57
+ @controller.response.body.should eql HTML
55
58
  end
56
59
 
57
60
  specify "footnotes_included_when_content_type_is_html" do
58
61
  @controller.response.headers['Content-Type'] = 'text/html'
59
62
  footnotes_perform!
60
- @controller.response.body.should_not eql $html
63
+ @controller.response.body.should_not eql HTML
61
64
  end
62
65
 
63
66
  specify "footnotes_included_when_content_type_is_nil" do
64
67
  footnotes_perform!
65
- @controller.response.body.should_not eql $html
68
+ @controller.response.body.should_not eql HTML
66
69
  end
67
70
 
68
71
  specify "not_included_when_body_is_not_a_string" do
@@ -195,7 +198,7 @@ describe "Footnotes" do
195
198
  end
196
199
  end
197
200
 
198
- $html = <<HTML
201
+ HTML = <<EOF
199
202
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
200
203
  <html>
201
204
  <head>
@@ -210,6 +213,6 @@ $html = <<HTML
210
213
  <p>You will be glad to know that no changes need to be made to any of your CSS files.</p>
211
214
  </body>
212
215
  </html>
213
- HTML
216
+ EOF
214
217
 
215
218
  end
@@ -2,23 +2,32 @@ require "spec_helper"
2
2
  require 'action_controller'
3
3
  require "rails-footnotes/notes/assigns_note"
4
4
 
5
- class FootnotesController < ActionController::Base
6
- end
7
-
8
5
  describe Footnotes::Notes::AssignsNote do
9
6
  let(:note) do
10
- @controller = FootnotesController.new
7
+ @controller = mock
8
+ @controller.stub(:instance_variables).and_return([:@action_has_layout, :@_status])
9
+ @controller.instance_variable_set(:@action_has_layout, true)
10
+ @controller.instance_variable_set(:@_status, 200)
11
11
  Footnotes::Notes::AssignsNote.new(@controller)
12
12
  end
13
13
  subject {note}
14
14
 
15
15
  before(:each) {Footnotes::Notes::AssignsNote.ignored_assigns = []}
16
+
16
17
  it {should be_valid}
17
- its(:title) {should eql 'Assigns (3)'}
18
- specify {note.send(:assigns).should eql [:@action_has_layout, :@view_context_class, :@_status] }
18
+ its(:title) {should eql 'Assigns (2)'}
19
+
20
+ specify {note.send(:assigns).should eql [:@action_has_layout, :@_status]}
21
+ specify {note.send(:to_table).should eql [['Name', 'Value'], [:@action_has_layout, "true"], [:@_status, "200"]]}
19
22
 
20
23
  describe "Ignored Assigns" do
21
24
  before(:each) {Footnotes::Notes::AssignsNote.ignored_assigns = [:@_status]}
22
25
  it {note.send(:assigns).should_not include :@_status}
23
26
  end
27
+
28
+ it "should call #mount_table method with correct params" do
29
+ note.should_receive(:mount_table).with(
30
+ [['Name', 'Value'], [:@action_has_layout, "true"], [:@_status, "200"]], {:summary=>"Debug information for Assigns (2)"})
31
+ note.content
32
+ end
24
33
  end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+ require 'action_controller'
3
+ require "rails-footnotes/notes/files_note"
4
+
5
+ describe Footnotes::Notes::FilesNote do
6
+ let(:note) {Footnotes::Notes::FilesNote.new(mock('controller', :response => mock('', :body => '')))}
7
+ subject {note}
8
+
9
+ it {should be_valid}
10
+ its(:row) {should eql :edit}
11
+ end
@@ -2,5 +2,17 @@ require 'spec_helper'
2
2
  require "rails-footnotes/notes/javascripts_note"
3
3
 
4
4
  describe Footnotes::Notes::JavascriptsNote do
5
- pending
5
+ let(:note) {described_class.new(mock('controller', :response => mock('body', :body => '')))}
6
+ subject {note}
7
+
8
+ it {should be_valid}
9
+
10
+ it "should return js links from html after #scan_text mehtod call" do
11
+ subject.send(:scan_text, HTML_WITH_JS).should eql ['/javascripts/all.js', '/javascripts/jquery.js']
12
+ end
6
13
  end
14
+
15
+ HTML_WITH_JS = <<-EOF
16
+ <script cache="false" src="/javascripts/all.js?1315913920" type="text/javascript"></script>
17
+ <script cache="false" src="/javascripts/jquery.js?1315913920" type="text/javascript"></script>
18
+ EOF
@@ -2,5 +2,8 @@ require "spec_helper"
2
2
  require "rails-footnotes/notes/partials_note"
3
3
 
4
4
  describe Footnotes::Notes::PartialsNote do
5
- pending
5
+ let(:note) {described_class.new(mock())}
6
+ subject {note}
7
+
8
+ it {should be_valid}
6
9
  end
@@ -2,5 +2,18 @@ require 'spec_helper'
2
2
  require "rails-footnotes/notes/stylesheets_note"
3
3
 
4
4
  describe Footnotes::Notes::StylesheetsNote do
5
- pending
5
+
6
+ let(:note) {described_class.new(mock('controller', :response => mock('body', :body => '')))}
7
+ subject {note}
8
+
9
+ it {should be_valid}
10
+
11
+ it "should return css link from html text after #scan_text call" do
12
+ subject.send(:scan_text, HTML_WITH_CSS).should eql ['/stylesheets/compiled/print.css', '/stylesheets/compiled/print.css']
13
+ end
6
14
  end
15
+
16
+ HTML_WITH_CSS = <<-EOF
17
+ <link href="/stylesheets/compiled/print.css?1315913920" media="print" rel="stylesheet" type="text/css" />'
18
+ '<link href="/stylesheets/compiled/print.css?1315913920" media="print" rel="stylesheet" type="text/css" />'
19
+ EOF
@@ -1,5 +1,8 @@
1
- require 'simplecov'
2
- SimpleCov.start
1
+ begin
2
+ require 'simplecov'
3
+ SimpleCov.start
4
+ rescue LoadError
5
+ end
3
6
 
4
7
  require 'rubygems'
5
8
 
metadata CHANGED
@@ -1,68 +1,92 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rails-footnotes
3
- version: !ruby/object:Gem::Version
4
- version: 3.7.5.rc4
5
- prerelease: 6
3
+ version: !ruby/object:Gem::Version
4
+ hash: 17
5
+ prerelease:
6
+ segments:
7
+ - 3
8
+ - 7
9
+ - 5
10
+ version: 3.7.5
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Keenan Brock
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-09-10 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-09-30 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: rails
16
- requirement: &2157023740 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 7
29
+ segments:
30
+ - 3
31
+ - 0
32
+ - 0
21
33
  version: 3.0.0
22
34
  type: :runtime
23
- prerelease: false
24
- version_requirements: *2157023740
25
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
26
37
  name: rails
27
- requirement: &2157023120 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
28
40
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 7
45
+ segments:
46
+ - 3
47
+ - 0
48
+ - 0
32
49
  version: 3.0.0
33
50
  type: :development
34
- prerelease: false
35
- version_requirements: *2157023120
36
- - !ruby/object:Gem::Dependency
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
37
53
  name: rspec
38
- requirement: &2157022740 !ruby/object:Gem::Requirement
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
39
56
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
44
64
  type: :development
45
- prerelease: false
46
- version_requirements: *2157022740
47
- - !ruby/object:Gem::Dependency
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
48
67
  name: watchr
49
- requirement: &2157022180 !ruby/object:Gem::Requirement
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
50
70
  none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
55
78
  type: :development
56
- prerelease: false
57
- version_requirements: *2157022180
58
- description: Every Rails page has footnotes that gives information about your application
59
- and links back to your editor.
60
- email:
79
+ version_requirements: *id004
80
+ description: Every Rails page has footnotes that gives information about your application and links back to your editor.
81
+ email:
61
82
  - keenan@thebrocks.net
62
83
  executables: []
84
+
63
85
  extensions: []
86
+
64
87
  extra_rdoc_files: []
65
- files:
88
+
89
+ files:
66
90
  - .gitignore
67
91
  - .rspec.example
68
92
  - .watchr.example
@@ -102,39 +126,49 @@ files:
102
126
  - spec/abstract_note_spec.rb
103
127
  - spec/footnotes_spec.rb
104
128
  - spec/notes/assigns_note_spec.rb
129
+ - spec/notes/files_note_spec.rb
105
130
  - spec/notes/javascripts_note_spec.rb
106
131
  - spec/notes/partials_notes_spec.rb
107
132
  - spec/notes/stylesheets_note_spec.rb
108
133
  - spec/spec_helper.rb
109
134
  homepage: http://github.com/josevalim/rails-footnotes
110
135
  licenses: []
136
+
111
137
  post_install_message:
112
138
  rdoc_options: []
113
- require_paths:
139
+
140
+ require_paths:
114
141
  - lib
115
- required_ruby_version: !ruby/object:Gem::Requirement
142
+ required_ruby_version: !ruby/object:Gem::Requirement
116
143
  none: false
117
- requirements:
118
- - - ! '>='
119
- - !ruby/object:Gem::Version
120
- version: '0'
121
- required_rubygems_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ hash: 3
148
+ segments:
149
+ - 0
150
+ version: "0"
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
122
152
  none: false
123
- requirements:
124
- - - ! '>'
125
- - !ruby/object:Gem::Version
126
- version: 1.3.1
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ hash: 3
157
+ segments:
158
+ - 0
159
+ version: "0"
127
160
  requirements: []
161
+
128
162
  rubyforge_project: rails-footnotes
129
- rubygems_version: 1.8.5
163
+ rubygems_version: 1.8.10
130
164
  signing_key:
131
165
  specification_version: 3
132
- summary: Every Rails page has footnotes that gives information about your application
133
- and links back to your editor.
134
- test_files:
166
+ summary: Every Rails page has footnotes that gives information about your application and links back to your editor.
167
+ test_files:
135
168
  - spec/abstract_note_spec.rb
136
169
  - spec/footnotes_spec.rb
137
170
  - spec/notes/assigns_note_spec.rb
171
+ - spec/notes/files_note_spec.rb
138
172
  - spec/notes/javascripts_note_spec.rb
139
173
  - spec/notes/partials_notes_spec.rb
140
174
  - spec/notes/stylesheets_note_spec.rb