nanoc-toolbox 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -21,6 +21,7 @@ If you feel something's missing, feel free to contribute.
|
|
21
21
|
* **Blogging Extra**: Add extra blog post behavior
|
22
22
|
* **Tagging Extra**: Add extra tagging behavior
|
23
23
|
* **Disqus**: Disqus comments helper
|
24
|
+
* **Github Gist**: Github Gist helper
|
24
25
|
|
25
26
|
### Filters
|
26
27
|
|
@@ -5,6 +5,7 @@ require 'nanoc/toolbox/helpers/disqus'
|
|
5
5
|
require 'nanoc/toolbox/helpers/blogging_extra'
|
6
6
|
require 'nanoc/toolbox/helpers/tagging_extra'
|
7
7
|
require 'nanoc/toolbox/helpers/google_analytics'
|
8
|
+
require 'nanoc/toolbox/helpers/github_gist'
|
8
9
|
|
9
10
|
# This module will regroup all the helpers for nanoc
|
10
11
|
module Nanoc::Toolbox::Helpers
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Nanoc::Toolbox::Helpers
|
2
|
+
|
3
|
+
# NANOC Helper for Github Gists
|
4
|
+
#
|
5
|
+
# This module contains helper functions to embed gists to your content
|
6
|
+
#
|
7
|
+
# @see https://gist.github.com/
|
8
|
+
#
|
9
|
+
# @author Anouar ADLANI <anouar@adlani.com>
|
10
|
+
module GithubGist
|
11
|
+
include Nanoc::Toolbox::Helpers::HtmlTag
|
12
|
+
|
13
|
+
# GIST script base URL
|
14
|
+
GIST_HOST = "https://gist.github.com"
|
15
|
+
GIST_EXT = "js"
|
16
|
+
|
17
|
+
# Generates the script tag for the supplied Gist ID
|
18
|
+
# optionaly displays only the specified file
|
19
|
+
#
|
20
|
+
# @example
|
21
|
+
# gist(1)
|
22
|
+
# #=> <script src="https://gist.github.com/1.js"> </script>
|
23
|
+
# gist(1, "gistfile1.txt")
|
24
|
+
# #=> <script src="https://gist.github.com/1.js?file=gistfile1.txt"></script>
|
25
|
+
#
|
26
|
+
# @param [Integer] gist_id - the ID of the Gist
|
27
|
+
# @param [String] filename - the optional filename to display
|
28
|
+
def gist(gist_id, filename=nil)
|
29
|
+
raise ArgumentError, "Gist ID should be a Integer" unless gist_id.is_a? Integer
|
30
|
+
url = "#{GIST_HOST}/#{gist_id}.#{GIST_EXT}"
|
31
|
+
|
32
|
+
if filename
|
33
|
+
raise ArgumentError, "Filename should be a string" unless filename.is_a? String
|
34
|
+
url += "?file=#{filename}"
|
35
|
+
end
|
36
|
+
|
37
|
+
content_tag :script, "", :src => url
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
class GithubGistDummyClass
|
4
|
+
include Nanoc::Toolbox::Helpers::GithubGist
|
5
|
+
end
|
6
|
+
|
7
|
+
describe Nanoc::Toolbox::Helpers::GithubGist do
|
8
|
+
subject { GithubGistDummyClass.new }
|
9
|
+
it {should respond_to(:gist) }
|
10
|
+
|
11
|
+
describe "#gist" do
|
12
|
+
context "without a filename" do
|
13
|
+
it "takes at list a Gist ID as parameter" do
|
14
|
+
lambda{ subject.gist }.should raise_error(ArgumentError)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "ensures that Gist ID is an Integer" do
|
18
|
+
lambda{ subject.gist('abc') }.should raise_error(ArgumentError)
|
19
|
+
lambda{ subject.gist('123') }.should raise_error(ArgumentError)
|
20
|
+
lambda{ subject.gist(12345) }.should_not raise_error(ArgumentError)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns the script tag for a gist" do
|
24
|
+
src = "https://gist.github.com/123.js"
|
25
|
+
subject.gist(123).should eq %Q{<script src="#{src}"></script>}
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "with a filename" do
|
30
|
+
it "ensures that the file name is an String" do
|
31
|
+
lambda{ subject.gist(12345, 12345) }.should raise_error(ArgumentError)
|
32
|
+
lambda{ subject.gist(12345, 'index.html') }.should_not raise_error(ArgumentError)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "returns the script tag for a specific file if specified" do
|
36
|
+
src = "https://gist.github.com/123.js?file=README.md"
|
37
|
+
subject.gist(123, "README.md").should eq %Q{<script src="#{src}"></script>}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nanoc-toolbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
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: 2012-
|
12
|
+
date: 2012-11-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nanoc
|
@@ -134,6 +134,7 @@ files:
|
|
134
134
|
- lib/nanoc/toolbox/helpers.rb
|
135
135
|
- lib/nanoc/toolbox/helpers/blogging_extra.rb
|
136
136
|
- lib/nanoc/toolbox/helpers/disqus.rb
|
137
|
+
- lib/nanoc/toolbox/helpers/github_gist.rb
|
137
138
|
- lib/nanoc/toolbox/helpers/google_analytics.rb
|
138
139
|
- lib/nanoc/toolbox/helpers/gravatar.rb
|
139
140
|
- lib/nanoc/toolbox/helpers/html_tag.rb
|
@@ -147,6 +148,7 @@ files:
|
|
147
148
|
- spec/filters/js_minify_spec.rb
|
148
149
|
- spec/helpers/blogging_extra_spec.rb
|
149
150
|
- spec/helpers/disqus_spec.rb
|
151
|
+
- spec/helpers/github_gist_spec.rb
|
150
152
|
- spec/helpers/google_analytics_spec.rb
|
151
153
|
- spec/helpers/gravatar_spec.rb
|
152
154
|
- spec/helpers/html_tag_spec.rb
|