rails-footnotes 3.7.5.rc4 → 3.7.5

Sign up to get free protection for your applications and to get access to all the features.
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