jekyll-code-example-tag 0.0.2 → 0.0.3

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.
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.