rack-backbone 0.0.5 → 0.1.0
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/CHANGES.md +6 -0
- data/lib/rack/backbone.rb +7 -2
- data/lib/rack/backbone/version.rb +1 -1
- data/spec/{rack_jquery_spec.rb → rack_backbone_spec.rb} +43 -4
- metadata +4 -4
data/CHANGES.md
CHANGED
data/lib/rack/backbone.rb
CHANGED
@@ -55,11 +55,14 @@ STR
|
|
55
55
|
|
56
56
|
# @param [Hash] env The rack env hash.
|
57
57
|
# @option options [Symbol] organisation Choose which CDN to use, either :jsdelivr, or :cloudflare (the default). This will override anything set via the `use` statement. Pass in `false` to force use of the local Backbonejs script. `nil` will force choosing the default CDN.
|
58
|
+
# @option options [TrueClass] :debug Pass `true` to get the unminified version of the script from the CDN.
|
58
59
|
# @return [String] The HTML script tags to get the CDN.
|
59
60
|
def self.cdn( env, options={} )
|
60
61
|
if env.nil? || env.has_key?(:organisation)
|
61
62
|
fail ArgumentError, "The Rack::Backbone.cdn method needs the Rack environment passed to it, or at the very least, an empty hash."
|
62
63
|
end
|
64
|
+
|
65
|
+
debug = options.fetch :debug, false
|
63
66
|
|
64
67
|
organisation = options[:organisation]
|
65
68
|
if organisation.nil?
|
@@ -68,7 +71,6 @@ STR
|
|
68
71
|
:media_temple
|
69
72
|
end
|
70
73
|
|
71
|
-
warn "organisation = #{organisation.inspect}"
|
72
74
|
unless organisation == false
|
73
75
|
script_src = case organisation
|
74
76
|
when :cloudflare
|
@@ -78,7 +80,10 @@ STR
|
|
78
80
|
else
|
79
81
|
CDN::CLOUDFLARE
|
80
82
|
end
|
81
|
-
|
83
|
+
|
84
|
+
script_src = "#{script_src[0..-8]}.js" if debug
|
85
|
+
|
86
|
+
%Q!<script src='#{script_src}'></script>\n#{FALLBACK_TOP}#{env["rack.backbone.http_path"]}#{FALLBACK_BOTTOM}!
|
82
87
|
else
|
83
88
|
"<script src='#{env["rack.backbone.http_path"]}'></script>"
|
84
89
|
end
|
@@ -5,7 +5,14 @@ require_relative "../lib/rack/backbone.rb"
|
|
5
5
|
|
6
6
|
class Rack::Backbone # for clarity!
|
7
7
|
|
8
|
+
shared_examples "the debug option is set" do
|
9
|
+
it { should_not include expected }
|
10
|
+
it { should include unminified }
|
11
|
+
it { should_not end_with ".min.js" }
|
12
|
+
end
|
13
|
+
|
8
14
|
describe "The class methods" do
|
15
|
+
|
9
16
|
let(:path) {::File.join(DEFAULT_OPTIONS[:http_path],BACKBONE_FILE_NAME)}
|
10
17
|
let(:env) { {"rack.backbone.http_path" => path} }
|
11
18
|
let(:default_options) { {} }
|
@@ -14,19 +21,51 @@ describe "The class methods" do
|
|
14
21
|
context "Given the organisation option" do
|
15
22
|
context "of nil (the default)" do
|
16
23
|
let(:options) { {:organisation => nil } }
|
17
|
-
|
24
|
+
let(:expected){ "<script src='#{CDN::CLOUDFLARE}'></script>\n#{FALLBACK_TOP}#{path}#{FALLBACK_BOTTOM}"}
|
25
|
+
it { should == expected }
|
26
|
+
context "and debug" do
|
27
|
+
let(:unminified) { "#{CDN::CLOUDFLARE[0..-8]}.js" }
|
28
|
+
let(:options) {
|
29
|
+
{:organisation => nil, :debug => true }
|
30
|
+
}
|
31
|
+
it_should_behave_like "the debug option is set"
|
32
|
+
end
|
18
33
|
end
|
19
34
|
context "of :jsdelivr" do
|
20
35
|
let(:options) { {:organisation => :jsdelivr } }
|
21
|
-
|
36
|
+
let(:expected){ "<script src='#{CDN::JSDELIVR}'></script>\n#{FALLBACK_TOP}#{path}#{FALLBACK_BOTTOM}" }
|
37
|
+
it { should == expected }
|
38
|
+
context "and debug" do
|
39
|
+
let(:unminified) { "#{CDN::JSDELIVR[0..-8]}.js" }
|
40
|
+
let(:options) {
|
41
|
+
{:organisation => :jsdelivr, :debug => true }
|
42
|
+
}
|
43
|
+
it_should_behave_like "the debug option is set"
|
44
|
+
end
|
22
45
|
end
|
23
46
|
context "of :cloudflare" do
|
24
47
|
let(:options) { {:organisation => :cloudflare } }
|
25
|
-
|
48
|
+
let(:expected){ "<script src='#{CDN::CLOUDFLARE}'></script>\n#{FALLBACK_TOP}#{path}#{FALLBACK_BOTTOM}"}
|
49
|
+
it { should == expected }
|
50
|
+
context "and debug" do
|
51
|
+
let(:unminified) { "#{CDN::CLOUDFLARE[0..-8]}.js" }
|
52
|
+
let(:options) {
|
53
|
+
{:organisation => nil, :debug => true }
|
54
|
+
}
|
55
|
+
it_should_behave_like "the debug option is set"
|
56
|
+
end
|
26
57
|
end
|
27
58
|
context "of false, to get the fallback script only" do
|
28
59
|
let(:options) { {:organisation => false } }
|
29
|
-
|
60
|
+
let(:expected){ "<script src='#{path}'></script>" }
|
61
|
+
it { should == expected }
|
62
|
+
context "and debug" do
|
63
|
+
let(:unminified) { "#{CDN::CLOUDFLARE[0..-8]}.js" }
|
64
|
+
let(:options) {
|
65
|
+
{:organisation => false, :debug => true }
|
66
|
+
}
|
67
|
+
it { should == expected }
|
68
|
+
end
|
30
69
|
end
|
31
70
|
end
|
32
71
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-backbone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -95,7 +95,7 @@ files:
|
|
95
95
|
- lib/rack/backbone.rb
|
96
96
|
- lib/rack/backbone/version.rb
|
97
97
|
- rack-backbone.gemspec
|
98
|
-
- spec/
|
98
|
+
- spec/rack_backbone_spec.rb
|
99
99
|
- spec/spec_helper.rb
|
100
100
|
- spec/support/shared/all_pages.rb
|
101
101
|
- vendor/assets/javascripts/backbone-1.0.0-min.js
|
@@ -126,6 +126,6 @@ signing_key:
|
|
126
126
|
specification_version: 3
|
127
127
|
summary: The description says it all.
|
128
128
|
test_files:
|
129
|
-
- spec/
|
129
|
+
- spec/rack_backbone_spec.rb
|
130
130
|
- spec/spec_helper.rb
|
131
131
|
- spec/support/shared/all_pages.rb
|