middleman-knitr 0.0.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.
- data/Gemfile +4 -0
- data/Rakefile +28 -0
- data/lib/middleman-knitr.rb +37 -0
- data/middleman-knitr.gemspec +18 -0
- data/test/helper.rb +4 -0
- data/test/test_knitr.rb +18 -0
- metadata +114 -0
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'rubygems' unless defined?(Gem)
|
2
|
+
require 'bundler/gem_tasks'
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
require 'rake/testtask'
|
5
|
+
|
6
|
+
%w(install release).each do |task|
|
7
|
+
Rake::Task[task].enhance do
|
8
|
+
sh "rm -rf pkg"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'Bump version on github'
|
13
|
+
task :bump do
|
14
|
+
if `git status -s`.strip == ''
|
15
|
+
puts "\e[31mNothing to commit (working directory clean)\e[0m"
|
16
|
+
else
|
17
|
+
version = Bundler.load_gemspec(Dir[File.expand_path('../*.gemspec', __FILE__)].first).version
|
18
|
+
sh "git add .; git commit -a -m \"Bump to version #{version}\""
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Rake::TestTask.new(:test) do |t|
|
23
|
+
t.test_files = Dir['test/**/test_*.rb']
|
24
|
+
t.verbose = true
|
25
|
+
end
|
26
|
+
|
27
|
+
task :release => :bump
|
28
|
+
task :default => :test
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'tilt' unless defined? Tilt
|
2
|
+
require 'tilt-knitr'
|
3
|
+
require 'middleman-core'
|
4
|
+
require "open3"
|
5
|
+
|
6
|
+
module Middleman::Renderers
|
7
|
+
# knitr template
|
8
|
+
# https://github.com/yihui/knitr
|
9
|
+
class KnitrTemplate < Tilt::KnitrTemplate
|
10
|
+
def evaluate(scope, locals, &block)
|
11
|
+
# Default figure path to knitr default
|
12
|
+
@fig_path = "figure"
|
13
|
+
# Set figure path relative to file if using Middleman, which tells us the filepath
|
14
|
+
if (!scope.nil? && scope.is_a?(Middleman::Application))
|
15
|
+
@fig_path = Pathname.new("#{scope.source_dir}/#{scope.current_page.url}/figure").relative_path_from(Pathname.new(scope.root)).to_s
|
16
|
+
end
|
17
|
+
super
|
18
|
+
end
|
19
|
+
end
|
20
|
+
Tilt.register 'Rmd', KnitrTemplate
|
21
|
+
module Knitr
|
22
|
+
class << self
|
23
|
+
def registered(app)
|
24
|
+
# knitr is not a ruby app, but we can check that it's installed
|
25
|
+
begin
|
26
|
+
::Tilt.prefer(::Middleman::Renderers::Knitr)
|
27
|
+
rescue LoadError
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
alias :included :registered
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
Middleman::Extensions.register :knitr, Middleman::Renderers::Knitr
|
36
|
+
|
37
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "middleman-knitr"
|
3
|
+
s.version = "0.0.1"
|
4
|
+
s.authors = ["Jamie F Olson"]
|
5
|
+
s.email = "self@jfolson.com"
|
6
|
+
s.homepage = "http://github.com/jamiefolson/middleman-knitr"
|
7
|
+
s.summary = %q{Add Knitr to Middleman}
|
8
|
+
s.description = %q{Add Knitr to Middleman}
|
9
|
+
|
10
|
+
s.add_dependency 'tilt'
|
11
|
+
s.add_dependency 'tilt-knitr'
|
12
|
+
s.add_development_dependency 'minitest'
|
13
|
+
s.add_runtime_dependency("middleman-core", [">= 3.0.0"])
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
end
|
data/test/helper.rb
ADDED
data/test/test_knitr.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
2
|
+
|
3
|
+
describe Middleman::Renderers::KnitrTemplate do
|
4
|
+
it "registered for '.Rmd' files" do
|
5
|
+
assert_equal Middleman::Renderers::KnitrTemplate, Tilt["test.Rmd"]
|
6
|
+
end
|
7
|
+
|
8
|
+
it "loading and evaluating templates on #render" do
|
9
|
+
template = Middleman::Renderers::KnitrTemplate.new { |t| "Hello World!" }
|
10
|
+
assert_equal "Hello World!", template.render
|
11
|
+
end
|
12
|
+
|
13
|
+
it "basics" do
|
14
|
+
template = Middleman::Renderers::KnitrTemplate.new { "```{r echo=FALSE, results='asis'}\ncat(6 * 6)\n```" }
|
15
|
+
assert_equal "36", template.render
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: middleman-knitr
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jamie F Olson
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-03-29 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: tilt
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: tilt-knitr
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: minitest
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: middleman-core
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 3.0.0
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 3.0.0
|
78
|
+
description: Add Knitr to Middleman
|
79
|
+
email: self@jfolson.com
|
80
|
+
executables: []
|
81
|
+
extensions: []
|
82
|
+
extra_rdoc_files: []
|
83
|
+
files:
|
84
|
+
- Gemfile
|
85
|
+
- Rakefile
|
86
|
+
- lib/middleman-knitr.rb
|
87
|
+
- middleman-knitr.gemspec
|
88
|
+
- test/helper.rb
|
89
|
+
- test/test_knitr.rb
|
90
|
+
homepage: http://github.com/jamiefolson/middleman-knitr
|
91
|
+
licenses: []
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options: []
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
requirements: []
|
109
|
+
rubyforge_project:
|
110
|
+
rubygems_version: 1.8.25
|
111
|
+
signing_key:
|
112
|
+
specification_version: 3
|
113
|
+
summary: Add Knitr to Middleman
|
114
|
+
test_files: []
|