rack-jquery 2.1.0 → 2.2.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.
@@ -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