rack-jquery 2.1.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1f8217e954299f15d500ed1770ab57c6cbad54be
4
+ data.tar.gz: df41cb37dd2e07665172fe992c7cc46a24f9ba3d
5
+ SHA512:
6
+ metadata.gz: 6ac69ec9553d8e9338a42563b5938018fbec02ba1a89391a8c22f9a8967e37d47d88867f3b2fb9aafdc9bb6a54bdb4d43d8b9f8dde1749a4da885272931101f5
7
+ data.tar.gz: f43e2244312b1b1c68fd11a6de4aad6185d7ed0cdecee78af8f6881ab0ba259d49937e18bda93e00b554237671bc8669486e1ff1eab6ecb32c31afed211d6e6d
data/.gitignore CHANGED
@@ -8,6 +8,7 @@ InstalledFiles
8
8
  _yardoc
9
9
  coverage
10
10
  doc/
11
+ docs/
11
12
  lib/bundler/man
12
13
  pkg
13
14
  rdoc
@@ -17,4 +18,7 @@ test/version_tmp
17
18
  tmp
18
19
  .rbx/
19
20
  .rspec
21
+ bin/
20
22
  vendor/ruby/
23
+ vendor.noindex/ruby/
24
+ .DS_Store
@@ -1,11 +1,21 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.2
4
- - 1.9.3
5
3
  - 2.0.0
4
+ - 2.1.0
5
+ - 2.2.2
6
+ - jruby-19mode # JRuby in 1.9 mode
7
+ - rbx
8
+ - ruby-head
9
+ - jruby-head
6
10
 
7
11
  # whitelist
8
12
  branches:
9
13
  only:
10
14
  - master
11
15
  - develop
16
+
17
+ matrix:
18
+ allow_failures:
19
+ - rvm: jruby-head
20
+ - rvm: ruby-head
21
+ - rvm: rbx
data/CHANGES.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # CH CH CH CHANGES #
2
2
 
3
+ ## Wednesday the 2nd of September 2015, v2.2.1 ##
4
+
5
+ * Fixed typo that was leading to bug. Organisation set by `use` statement would be ignored in `cdn`. Introduced by commit 801a5a13a. Clarified spec for it.
6
+ * Fixed a different bug that also made setting organisation to `false` via the `use` statement to be ignored.
7
+ * Don't give coverage of the vendor.noindex directory.
8
+
9
+ ----
10
+
11
+
12
+ ## Tuesday the 1st of September 2015, v2.2.0 ##
13
+
14
+ * Google's CDN now serves v2.1.0 of JQuery, changes for that.
15
+ * Added debug and organisation :false options for `cdn`, I want to be able to use the fallback in development.
16
+
17
+ ----
18
+
19
+
3
20
  ## Monday the 27th of January 2014, v2.1.0 ##
4
21
 
5
22
  * Can pass `:raise` as an option to both `use` and `cdn` so that an exception is raised if the chosen organisation isn't running the current version of jQuery on its CDN. It will just warn otherwise.
data/Gemfile CHANGED
@@ -18,7 +18,7 @@ end
18
18
  group :development do
19
19
  gem "wirble"
20
20
  gem "pry"
21
- gem "pry-nav"
21
+ gem "pry-byebug"
22
22
  gem "yard"
23
23
  gem "maruku"
24
24
  end
@@ -15,7 +15,7 @@ module Rack
15
15
  module CDN
16
16
 
17
17
  # Script tags for the Media Temple CDN
18
- MEDIA_TEMPLE = "http://code.jquery.com/#{JQUERY_FILE_NAME}"
18
+ MEDIA_TEMPLE = "//code.jquery.com/#{JQUERY_FILE_NAME}"
19
19
 
20
20
  # Script tags for the Google CDN
21
21
  GOOGLE = "//ajax.googleapis.com/ajax/libs/jquery/#{JQUERY_VERSION}/jquery.min.js"
@@ -28,11 +28,14 @@ module Rack
28
28
 
29
29
  end
30
30
 
31
+ # path to the fallback script
32
+ FALLBACK_PATH = "/js/#{JQUERY_FILE_NAME}"
33
+
31
34
  # This javascript checks if the jQuery object has loaded. If not, that most likely means the CDN is unreachable, so it uses the local minified jQuery.
32
35
  FALLBACK = <<STR
33
36
  <script type="text/javascript">
34
37
  if (typeof jQuery == 'undefined') {
35
- document.write(unescape("%3Cscript src='/js/#{JQUERY_FILE_NAME}' type='text/javascript'%3E%3C/script%3E"))
38
+ document.write(unescape("%3Cscript src='#{FALLBACK_PATH}' type='text/javascript'%3E%3C/script%3E"))
36
39
  };
37
40
  </script>
38
41
  STR
@@ -59,40 +62,56 @@ STR
59
62
  # Rack::JQuery.cdn env
60
63
  #
61
64
  # # Choose the organisation
62
- #
63
- # # Choose the organisation
64
65
  # Rack::JQuery.cdn env, :organisation => :cloudflare
65
66
  #
67
+ # # Choose to use the fallback path instead
68
+ # Rack::JQuery.cdn env, :organisation => false
69
+ #
66
70
  # # Raise an error if the organisation doesn't
67
71
  # # support this version of jQuery
68
72
  # Rack::JQuery.cdn env, :raise => true
69
73
  #
74
+ # # Use the unminified version from the CDN
75
+ # Rack::JQuery.cdn env, :debug => true
70
76
  def self.cdn( env, options={} )
71
77
  if env.nil? || env.has_key?(:organisation)
72
78
  fail ArgumentError, "The Rack::JQuery.cdn method needs the Rack environment passed to it, or at the very least, an empty hash."
73
79
  end
74
80
 
75
- organisation = options[:organisation] ||
76
- env["rack.jquery.organisation"] ||
77
- :media_temple
81
+
82
+ organisation = options[:organisation]
83
+ if organisation.nil? # because false is valid
84
+ organisation = env["rack.jquery.organisation"].nil? ?
85
+ :media_temple :
86
+ env["rack.jquery.organisation"]
87
+ end
78
88
 
79
89
  raise = raiser?( env, options )
80
90
 
81
- script = case organisation
82
- when :media_temple
83
- CDN::MEDIA_TEMPLE
84
- when :microsoft
85
- CDN::MICROSOFT
86
- when :cloudflare
87
- CDN::CLOUDFLARE
88
- when :google
89
- meth = raise ? :fail : :warn
90
- send meth, "#{organisation.to_s.gsub('_', ' ').capitalize}'s #{WARNING}"
91
- CDN::GOOGLE
92
- else
93
- CDN::MEDIA_TEMPLE
91
+ unless organisation == false
92
+ script_src =
93
+ case organisation
94
+ when :media_temple
95
+ CDN::MEDIA_TEMPLE
96
+ when :microsoft
97
+ CDN::MICROSOFT
98
+ when :cloudflare
99
+ CDN::CLOUDFLARE
100
+ when :google
101
+ # meth = raise ? :fail : :warn
102
+ # send meth, "#{organisation.to_s.gsub('_', ' ').capitalize}'s #{WARNING}"
103
+ CDN::GOOGLE
104
+ else
105
+ CDN::MEDIA_TEMPLE
106
+ end
107
+
108
+ debug = options.fetch :debug, false
109
+
110
+ script_src = "#{script_src[0..-7]}js" if debug
111
+ "<script src='#{script_src}'></script>\n#{FALLBACK}"
112
+ else
113
+ "<script src='#{FALLBACK_PATH}'></script>"
94
114
  end
95
- "<script src='#{script}'></script>\n#{FALLBACK}"
96
115
  end
97
116
 
98
117
 
@@ -119,7 +138,7 @@ STR
119
138
  # use Rack::JQuery, :organisation => :cloudflare
120
139
  #
121
140
  # # Raise if CDN does not support this version of the jQuery library.
122
- # use Rack::JQuery, :raise => :true
141
+ # use Rack::JQuery, :raise => true
123
142
  def initialize( app, options={} )
124
143
  @app, @options = app, DEFAULT_OPTIONS.merge(options)
125
144
  @http_path_to_jquery = ::File.join @options[:http_path], JQUERY_FILE_NAME
@@ -2,7 +2,7 @@ module Rack
2
2
  class JQuery
3
3
 
4
4
  # the version of this library
5
- VERSION = "2.1.0"
5
+ VERSION = "2.2.1"
6
6
 
7
7
  # the version of jQuery it supports.
8
8
  JQUERY_VERSION = "2.1.0"
@@ -20,6 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.2"
22
22
  spec.add_development_dependency "rake"
23
- spec.add_dependency("rack")
23
+ spec.add_dependency("rack", "~> 1.5.0")
24
24
  spec.add_dependency("rack-jquery-helpers")
25
25
  end
@@ -65,27 +65,63 @@ describe "The class methods" do
65
65
  context "#cdn" do
66
66
  let(:env) { {} }
67
67
  subject { Rack::JQuery.cdn env, :organisation => organisation }
68
-
68
+ let(:expected) { "<script src='#{src}'></script>\n#{Rack::JQuery::FALLBACK}" }
69
+ let(:unminified) { "#{src[0..-7]}js" }
69
70
  context "Given the organisation option" do
70
71
  context "of nil (the default)" do
71
72
  let(:organisation) { nil }
72
- it { should == "<script src='#{Rack::JQuery::CDN::MEDIA_TEMPLE}'></script>\n#{Rack::JQuery::FALLBACK}" }
73
+ let(:src){ Rack::JQuery::CDN::MEDIA_TEMPLE }
74
+ it { should == expected }
75
+ context "and debug" do
76
+ subject { Rack::JQuery.cdn env, :organisation => organisation, :debug => true }
77
+ it { should_not include expected }
78
+ it { should include unminified }
79
+ end
73
80
  end
74
81
  context "of :google" do
75
82
  let(:organisation) { :google }
76
- it { should == "<script src='#{Rack::JQuery::CDN::GOOGLE}'></script>\n#{Rack::JQuery::FALLBACK}" }
83
+ let(:src){ Rack::JQuery::CDN::GOOGLE }
84
+ it { should == expected }
85
+ context "and debug" do
86
+ subject { Rack::JQuery.cdn env, :organisation => organisation, :debug => true }
87
+ it { should_not include expected }
88
+ it { should include unminified }
89
+ end
77
90
  end
78
91
  context "of :microsoft" do
79
92
  let(:organisation) { :microsoft }
80
- it { should == "<script src='#{Rack::JQuery::CDN::MICROSOFT}'></script>\n#{Rack::JQuery::FALLBACK}" }
93
+ let(:src){ Rack::JQuery::CDN::MICROSOFT }
94
+ it { should == expected }
95
+ context "and debug" do
96
+ subject { Rack::JQuery.cdn env, :organisation => organisation, :debug => true }
97
+ it { should_not include expected }
98
+ it { should include unminified }
99
+ end
81
100
  end
82
101
  context "of :media_temple" do
83
102
  let(:organisation) { :media_temple }
84
- it { should == "<script src='#{Rack::JQuery::CDN::MEDIA_TEMPLE}'></script>\n#{Rack::JQuery::FALLBACK}" }
103
+ let(:src){ Rack::JQuery::CDN::MEDIA_TEMPLE }
104
+ it { should == expected }
105
+ context "and debug" do
106
+ subject { Rack::JQuery.cdn env, :organisation => organisation, :debug => true }
107
+ it { should_not include expected }
108
+ it { should include unminified }
109
+ end
85
110
  end
86
111
  context "of :cloudflare" do
87
112
  let(:organisation) { :cloudflare }
88
- it { should == "<script src='#{Rack::JQuery::CDN::CLOUDFLARE}'></script>\n#{Rack::JQuery::FALLBACK}" }
113
+ let(:src){ Rack::JQuery::CDN::CLOUDFLARE }
114
+ it { should == expected }
115
+ context "and debug" do
116
+ subject { Rack::JQuery.cdn env, :organisation => organisation, :debug => true }
117
+ it { should_not include expected }
118
+ it { should include unminified }
119
+ end
120
+ end
121
+ context "of false" do
122
+ let(:organisation) { false }
123
+ let(:expected) { "<script src='/js/#{Rack::JQuery::JQUERY_FILE_NAME}'></script>"}
124
+ it { should == expected }
89
125
  end
90
126
  end
91
127
 
@@ -119,44 +155,55 @@ describe "Inserting the CDN" do
119
155
  it_should_behave_like "Any route"
120
156
  end
121
157
  context "Google CDN" do
122
- context "With :raise set to false (the default)" do
158
+ context "With :raise set" do
123
159
  let(:expected) { Rack::JQuery::CDN::GOOGLE }
124
- before do
125
- get "/google-cdn"
160
+ context "to false (the default)" do
161
+ before do
162
+ get "/google-cdn"
163
+ end
164
+ it_should_behave_like "Any route"
165
+ subject { last_response.body }
166
+ it { should include expected }
126
167
  end
127
- it_should_behave_like "Any route"
128
- subject { last_response.body }
129
- it { should include expected }
130
- end
131
- context "With :raise set to true" do
132
- context "via `use`" do
133
- let(:app) {
134
- Sinatra.new do
135
- use Rack::JQuery, :raise => true
136
- get "/google-cdn" do
137
- Rack::JQuery.cdn( env, :organisation => :google )
168
+ context "to true" do
169
+ context "via `use`" do
170
+ let(:app) {
171
+ Sinatra.new do
172
+ use Rack::JQuery, :raise => true
173
+ get "/google-cdn" do
174
+ Rack::JQuery.cdn( env, :organisation => :google )
175
+ end
138
176
  end
177
+ }
178
+ # it "should raise error as it's not supported for this version" do
179
+ # expect { get "/google-cdn" }.to raise_error
180
+ # end
181
+ before do
182
+ get "/google-cdn"
139
183
  end
140
- }
141
- it "should raise error as it's not supported for this version" do
142
- expect { get "/google-cdn" }.to raise_error
184
+ it_should_behave_like "Any route"
185
+ subject { last_response.body }
186
+ it { should include expected }
143
187
  end
144
- # it { should include expected }
145
- end
146
- context "via the method options" do
147
- let(:app) {
148
- Sinatra.new do
149
- use Rack::JQuery, :raise => false
150
- get "/google-cdn" do
151
- Rack::JQuery.cdn( env, :organisation => :google, :raise => true )
188
+ context "via the method options" do
189
+ let(:app) {
190
+ Sinatra.new do
191
+ use Rack::JQuery
192
+ get "/google-cdn" do
193
+ Rack::JQuery.cdn( env, :organisation => :google, :raise => true )
194
+ end
152
195
  end
196
+ }
197
+ # it "should raise error as it's not supported for this version" do
198
+ # expect { subject }.to raise_error
199
+ # end
200
+ before do
201
+ get "/google-cdn"
153
202
  end
154
- }
155
- subject { get "/google-cdn" }
156
- it "should raise error as it's not supported for this version" do
157
- expect { subject }.to raise_error
203
+ it_should_behave_like "Any route"
204
+ subject { last_response.body }
205
+ it { should include expected }
158
206
  end
159
- # it { should include expected }
160
207
  end
161
208
  end
162
209
  end
@@ -184,6 +231,9 @@ describe "Inserting the CDN" do
184
231
  end
185
232
  it_should_behave_like "Any route"
186
233
  subject { last_response.body }
234
+ # The cloudflare CDN is specified in the app
235
+ # via the `use` statement, so it will be the one
236
+ # picked when unspecified via `cdn`
187
237
  let(:expected) { Rack::JQuery::CDN::CLOUDFLARE }
188
238
  it { should include expected }
189
239
  end
@@ -206,9 +256,16 @@ describe "Inserting the CDN" do
206
256
  it_should_behave_like "Any route"
207
257
  end
208
258
  context "Google CDN" do
209
- it "Should fail" do
210
- expect { get "/google-cdn" }.to raise_error
259
+ # it "Should fail" do
260
+ # expect { get "/google-cdn" }.to raise_error
261
+ # end
262
+ before do
263
+ get "/google-cdn"
211
264
  end
265
+ it_should_behave_like "Any route"
266
+ subject { last_response.body }
267
+ let(:expected) { Rack::JQuery::CDN::GOOGLE }
268
+ it { should include expected }
212
269
  end
213
270
  context "Microsoft CDN" do
214
271
  before do
@@ -8,6 +8,7 @@ Spec_dir = File.expand_path( File.dirname __FILE__ )
8
8
  require 'simplecov'
9
9
  SimpleCov.start do
10
10
  add_filter "/vendor/"
11
+ add_filter "/vendor.noindex/"
11
12
  add_filter "/bin/"
12
13
  add_filter "/spec/"
13
14
  end
metadata CHANGED
@@ -1,78 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-jquery
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
5
- prerelease:
4
+ version: 2.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Iain Barnett
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-27 00:00:00.000000000 Z
11
+ date: 2015-09-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '1.2'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.2'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rack
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '0'
47
+ version: 1.5.0
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
- version: '0'
54
+ version: 1.5.0
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rack-jquery-helpers
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  description: jQuery CDN script tags and fallback in one neat package. Current version
@@ -83,8 +74,8 @@ executables: []
83
74
  extensions: []
84
75
  extra_rdoc_files: []
85
76
  files:
86
- - .gitignore
87
- - .travis.yml
77
+ - ".gitignore"
78
+ - ".travis.yml"
88
79
  - CHANGES.md
89
80
  - Gemfile
90
81
  - JQUERY-LICENCE.txt
@@ -103,27 +94,26 @@ files:
103
94
  homepage: https://github.com/yb66/rack-jquery
104
95
  licenses:
105
96
  - MIT
97
+ metadata: {}
106
98
  post_install_message:
107
99
  rdoc_options: []
108
100
  require_paths:
109
101
  - lib
110
102
  required_ruby_version: !ruby/object:Gem::Requirement
111
- none: false
112
103
  requirements:
113
- - - ! '>='
104
+ - - ">="
114
105
  - !ruby/object:Gem::Version
115
106
  version: '0'
116
107
  required_rubygems_version: !ruby/object:Gem::Requirement
117
- none: false
118
108
  requirements:
119
- - - ! '>='
109
+ - - ">="
120
110
  - !ruby/object:Gem::Version
121
111
  version: '0'
122
112
  requirements: []
123
113
  rubyforge_project:
124
- rubygems_version: 1.8.25
114
+ rubygems_version: 2.4.5
125
115
  signing_key:
126
- specification_version: 3
116
+ specification_version: 4
127
117
  summary: The description says it all.
128
118
  test_files:
129
119
  - spec/rack_jquery_spec.rb