jekyll-code-example-tag 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3d2568731b120b0d05ce63de4c9eb9b5491359bf
4
- data.tar.gz: e79cee683707cfa4fb444d8ba24d15516406e3d3
3
+ metadata.gz: 271a0085affcfa80d82b34157ff70007cbda6db5
4
+ data.tar.gz: adb5ee89ce47a1a63981d7dfc7a2f39b18de72e7
5
5
  SHA512:
6
- metadata.gz: c6fce169023e9390a079856ee410830e61cdf68d1a0684a0cff2d550d477bddcff1c45241ffce919d830f851389f0881961fcb094579845bbdb3cc6af2ba1937
7
- data.tar.gz: fdf58c54050e0b968b7e46a53862114188c9d0525b56b896b05fe28162f3c9e3572f9597d2f1cb1ec9d448d5fc1ad1aadcc703246571ee5e394a59373fd261c0
6
+ metadata.gz: f6a5c56e9af55ef23b5c36557fd52bd046069848c6b3933b4c32346a44da47245ec7b8856e7b5e8dfc8069af70800cffa85e70317db1793f61d513a4e0657b2e
7
+ data.tar.gz: dbbe4a7bc8f2bd7d46440c0031781db957818a9a10885a9f582466e0952b942e18b5ee0822621bb532ce75387ef6d4aa376e56c1b4b8dcfa62b54f98f1ac903e
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.2.0
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3-p547
4
+ - 2.1.5
5
+ - 2.2.0
6
+ script: "bundle exec rspec"
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in jekyll-swfobject.gemspec
4
+ gemspec
5
+
6
+ group :test do
7
+ gem "fakefs", require: "fakefs/safe"
8
+ gem 'pry'
9
+ gem 'rspec'
10
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,101 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ jekyll-code-example-tag (0.0.3)
5
+ jekyll
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ blankslate (2.1.2.4)
11
+ celluloid (0.16.0)
12
+ timers (~> 4.0.0)
13
+ classifier-reborn (2.0.3)
14
+ fast-stemmer (~> 1.0)
15
+ coderay (1.1.0)
16
+ coffee-script (2.3.0)
17
+ coffee-script-source
18
+ execjs
19
+ coffee-script-source (1.9.0)
20
+ colorator (0.1)
21
+ diff-lcs (1.2.5)
22
+ execjs (2.3.0)
23
+ fakefs (0.6.5)
24
+ fast-stemmer (1.0.2)
25
+ ffi (1.9.6)
26
+ hitimes (1.2.2)
27
+ jekyll (2.5.3)
28
+ classifier-reborn (~> 2.0)
29
+ colorator (~> 0.1)
30
+ jekyll-coffeescript (~> 1.0)
31
+ jekyll-gist (~> 1.0)
32
+ jekyll-paginate (~> 1.0)
33
+ jekyll-sass-converter (~> 1.0)
34
+ jekyll-watch (~> 1.1)
35
+ kramdown (~> 1.3)
36
+ liquid (~> 2.6.1)
37
+ mercenary (~> 0.3.3)
38
+ pygments.rb (~> 0.6.0)
39
+ redcarpet (~> 3.1)
40
+ safe_yaml (~> 1.0)
41
+ toml (~> 0.1.0)
42
+ jekyll-coffeescript (1.0.1)
43
+ coffee-script (~> 2.2)
44
+ jekyll-gist (1.1.0)
45
+ jekyll-paginate (1.1.0)
46
+ jekyll-sass-converter (1.3.0)
47
+ sass (~> 3.2)
48
+ jekyll-watch (1.2.1)
49
+ listen (~> 2.7)
50
+ kramdown (1.5.0)
51
+ liquid (2.6.2)
52
+ listen (2.8.5)
53
+ celluloid (>= 0.15.2)
54
+ rb-fsevent (>= 0.9.3)
55
+ rb-inotify (>= 0.9)
56
+ mercenary (0.3.5)
57
+ method_source (0.8.2)
58
+ parslet (1.5.0)
59
+ blankslate (~> 2.0)
60
+ posix-spawn (0.3.9)
61
+ pry (0.10.1)
62
+ coderay (~> 1.1.0)
63
+ method_source (~> 0.8.1)
64
+ slop (~> 3.4)
65
+ pygments.rb (0.6.2)
66
+ posix-spawn (~> 0.3.6)
67
+ yajl-ruby (~> 1.2.0)
68
+ rb-fsevent (0.9.4)
69
+ rb-inotify (0.9.5)
70
+ ffi (>= 0.5.0)
71
+ redcarpet (3.2.2)
72
+ rspec (3.2.0)
73
+ rspec-core (~> 3.2.0)
74
+ rspec-expectations (~> 3.2.0)
75
+ rspec-mocks (~> 3.2.0)
76
+ rspec-core (3.2.0)
77
+ rspec-support (~> 3.2.0)
78
+ rspec-expectations (3.2.0)
79
+ diff-lcs (>= 1.2.0, < 2.0)
80
+ rspec-support (~> 3.2.0)
81
+ rspec-mocks (3.2.0)
82
+ diff-lcs (>= 1.2.0, < 2.0)
83
+ rspec-support (~> 3.2.0)
84
+ rspec-support (3.2.0)
85
+ safe_yaml (1.0.4)
86
+ sass (3.4.11)
87
+ slop (3.6.0)
88
+ timers (4.0.1)
89
+ hitimes
90
+ toml (0.1.2)
91
+ parslet (~> 1.5.0)
92
+ yajl-ruby (1.2.1)
93
+
94
+ PLATFORMS
95
+ ruby
96
+
97
+ DEPENDENCIES
98
+ fakefs
99
+ jekyll-code-example-tag!
100
+ pry
101
+ rspec
data/README.md CHANGED
@@ -1,3 +1,6 @@
1
+ [![Build Status](https://travis-ci.org/govdelivery/jekyll-code-example-tag.svg?branch=master)](https://travis-ci.org/govdelivery/jekyll-code-example-tag)
2
+ [![Gem Version](https://badge.fury.io/rb/jekyll-code-example-tag.svg)](http://badge.fury.io/rb/jekyll-code-example-tag)
3
+
1
4
  jekyll-code-example-tag
2
5
  =======================
3
6
 
@@ -19,6 +22,14 @@ Or install it manually:
19
22
 
20
23
  gem install jekyll-code-example-tag
21
24
 
25
+ Then, include a script tag in your page or layout to fetch the required
26
+ javascript:
27
+
28
+ <script type="text/javascript" src="/js/jekyll-code-example-buttons.js"></script>
29
+
30
+ You may also overwrite the provided javascript by writing a `jekyll-code-example-buttons.js`
31
+ file in the `/js/` directory of your Jekyll project.
32
+
22
33
  ## Usage
23
34
 
24
35
  ### code_example
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'jekyll-code-example-tag'
3
- s.version = '0.0.2'
3
+ s.version = '0.0.3'
4
4
  s.date = '2015-02-03'
5
5
  s.authors = ['GovDelivery']
6
6
  s.email = 'support@govdelivery.com'
@@ -97,6 +97,34 @@ EOF
97
97
  output = Jekyll::CodeExampleTags::wrap_examples_div(output)
98
98
  end
99
99
  end
100
+
101
+ class CodeExamplesJsFile < Jekyll::StaticFile
102
+ def write(dest)
103
+
104
+ if File.file?(File.join(FileUtils.pwd, @dir, @name))
105
+ in_path = File.join(FileUtils.pwd, @dir, @name)
106
+ else
107
+ in_path = File.join(File.dirname(__FILE__), @dir, @name)
108
+ end
109
+ dest_path = File.join(dest, @dir, @name)
110
+
111
+ FileUtils.mkdir_p(File.dirname(dest_path))
112
+ content = File.read(in_path)
113
+ File.open(dest_path, 'w') do |f|
114
+ f.write(content)
115
+ end
116
+ end
117
+ end
118
+
119
+ class CodeExamplesJsGenerator < Jekyll::Generator
120
+ safe true
121
+
122
+ def generate(site)
123
+ name = 'jekyll-code-example-buttons.js'
124
+ destination = '/js/'
125
+ site.static_files << CodeExamplesJsFile.new(site, site.source, destination, name)
126
+ end
127
+ end
100
128
  end
101
129
  end
102
130
 
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ jQuery(function(){
4
+ jQuery('.buttons.examples .button').click(function(e){
5
+ e.preventDefault();
6
+ var parent = jQuery(this).closest('body');
7
+ var target = jQuery(this).attr('target');
8
+
9
+ parent.find('.example').hide();
10
+ parent.find('.example.'+target).show();
11
+ parent.find('.buttons.examples .button.active').removeClass('active');
12
+ parent.find('.buttons.examples .button[target="'+target+'"]').addClass('active');
13
+ });
14
+
15
+
16
+ jQuery('.buttons.examples li:first-child .button').click();
17
+ });
@@ -0,0 +1,45 @@
1
+ require_relative './spec_helper.rb'
2
+
3
+ describe 'all_page_code_examples', fakefs: true do
4
+
5
+ # TODO: Make this soo much better
6
+ let(:page) do
7
+ page = <<EOF
8
+ {% code_example hello_world %}
9
+ {% code_example goodbye_world %}
10
+ {% all_page_code_examples %}
11
+ EOF
12
+ end
13
+
14
+ let(:page_markup) do
15
+ page_markup = <<EOF
16
+ <div class='code-examples'> <div class="buttons examples">
17
+ <ul>
18
+ <li><a href='#' class='button' target='python'>Python</a></li>
19
+ </ul>
20
+ </div>
21
+ <div class="highlight example python">
22
+ <pre><code class="language-python" data-lang="python">print "Hello World"print "Goodbye World"</code></pre>
23
+ </div>
24
+ </div>
25
+ EOF
26
+ page_markup.rstrip
27
+ end
28
+
29
+ before(:all) do
30
+ FakeFS.activate!
31
+ FileUtils.mkdir_p('code_examples/python')
32
+ File.open('code_examples/python/hello_world', 'w') { |f| f << 'print "Hello World"'}
33
+ File.open('code_examples/python/goodbye_world', 'w') { |f| f << 'print "Goodbye World"'}
34
+ end
35
+
36
+ after(:all) do
37
+ FakeFS.deactivate!
38
+ end
39
+
40
+ it 'can be used' do
41
+ t = Liquid::Template.parse(page)
42
+ o = t.render!({'site' => {}, 'page' => {'content' => page}})
43
+ expect(o).to include(page_markup)
44
+ end
45
+ end
@@ -0,0 +1,42 @@
1
+ require_relative './spec_helper.rb'
2
+
3
+ describe 'code_example', fakefs: true do
4
+
5
+ # TODO: Make this soo much better
6
+ let(:page) { "{% code_example hello_world %}" }
7
+ let(:page_markup) do
8
+ page_markup = <<EOF
9
+ <div class='code-examples'> <div class="buttons examples">
10
+ <ul>
11
+ <li><a href='#' class='button' target='ruby'>Ruby</a></li><li><a href='#' class='button' target='python'>Python</a></li>
12
+ </ul>
13
+ </div>
14
+ <div class="highlight example ruby">
15
+ <pre><code class="language-ruby" data-lang="ruby">puts "Hello World"</code></pre>
16
+ </div>
17
+ <div class="highlight example python">
18
+ <pre><code class="language-python" data-lang="python">print "Hello World"</code></pre>
19
+ </div>
20
+ </div>
21
+ EOF
22
+ page_markup.rstrip
23
+ end
24
+
25
+ before(:all) do
26
+ FakeFS.activate!
27
+ FileUtils.mkdir_p('code_examples/ruby')
28
+ FileUtils.mkdir_p('code_examples/python')
29
+ File.open('code_examples/ruby/hello_world', 'w') { |f| f << 'puts "Hello World"'}
30
+ File.open('code_examples/python/hello_world', 'w') { |f| f << 'print "Hello World"'}
31
+ end
32
+
33
+ after(:all) do
34
+ FakeFS.deactivate!
35
+ end
36
+
37
+ it 'can be used' do
38
+ t = Liquid::Template.parse(page)
39
+ o = t.render!({'site' => {}})
40
+ expect(o).to eq(page_markup)
41
+ end
42
+ end
@@ -0,0 +1,9 @@
1
+ require 'jekyll'
2
+ require 'liquid'
3
+ require 'rspec'
4
+ require 'fakefs/spec_helpers'
5
+ require_relative '../lib/jekyll-code-example-tag.rb'
6
+
7
+ RSpec.configure do |config|
8
+ config.include FakeFS::SpecHelpers, fakefs: true
9
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-code-example-tag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - GovDelivery
@@ -14,14 +14,14 @@ dependencies:
14
14
  name: jekyll
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  description: "Provides a tag that allows you to include in your posts \n and
@@ -33,10 +33,18 @@ executables: []
33
33
  extensions: []
34
34
  extra_rdoc_files: []
35
35
  files:
36
+ - ".ruby-version"
37
+ - ".travis.yml"
38
+ - Gemfile
39
+ - Gemfile.lock
36
40
  - LICENSE.md
37
41
  - README.md
38
42
  - jekyll-code-example-tag.gemspec
39
43
  - lib/jekyll-code-example-tag.rb
44
+ - lib/js/jekyll-code-example-buttons.js
45
+ - spec/all_page_code_examples_spec.rb
46
+ - spec/code_example_spec.rb
47
+ - spec/spec_helper.rb
40
48
  homepage: https://github.com/govdelivery/jekyll-code-example-tag
41
49
  licenses:
42
50
  - BSD-3-Clause
@@ -47,17 +55,17 @@ require_paths:
47
55
  - lib
48
56
  required_ruby_version: !ruby/object:Gem::Requirement
49
57
  requirements:
50
- - - '>='
58
+ - - ">="
51
59
  - !ruby/object:Gem::Version
52
60
  version: '0'
53
61
  required_rubygems_version: !ruby/object:Gem::Requirement
54
62
  requirements:
55
- - - '>='
63
+ - - ">="
56
64
  - !ruby/object:Gem::Version
57
65
  version: '0'
58
66
  requirements: []
59
67
  rubyforge_project:
60
- rubygems_version: 2.0.14
68
+ rubygems_version: 2.4.5
61
69
  signing_key:
62
70
  specification_version: 4
63
71
  summary: Tags for including code examples in posts and pages.