tilt-knitr 0.0.2
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 +7 -0
- data/Gemfile +4 -0
- data/README.md +10 -0
- data/Rakefile +28 -0
- data/lib/tilt-knitr.rb +31 -0
- data/test/helper.rb +4 -0
- data/test/test_knitr.rb +18 -0
- data/tilt-knitr.gemspec +16 -0
- metadata +77 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: eb878d4182c285d53ef97a154d53e6f192d51e9d
|
4
|
+
data.tar.gz: 276cbcda7a84e0e602f813305769f403188b603d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7f2b86cc41846b519a56492325d03980ea24b8b57b7ba84b3f551c1e94b793652191d42a2b56900e174f9d2439761d468b2c122862ba340eb742e68e54413b55
|
7
|
+
data.tar.gz: 8e6dda5b8e2a7980dd3b83218a7ef683ab46a7da9e876c3d7d80ec00e98ebb6aaf927183a2bb0e0b1e4afc30dfec157282342099804f05402fd8ef96f10fdcbb
|
data/Gemfile
ADDED
data/README.md
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
|
data/lib/tilt-knitr.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'tilt' unless defined? Tilt
|
2
|
+
require "open3"
|
3
|
+
|
4
|
+
module Tilt
|
5
|
+
# knitr template
|
6
|
+
# https://github.com/yihui/knitr
|
7
|
+
class KnitrTemplate < Template
|
8
|
+
def initialize_engine; end
|
9
|
+
|
10
|
+
def prepare; end
|
11
|
+
|
12
|
+
def evaluate(scope, locals, &block)
|
13
|
+
fig_path = "figure"
|
14
|
+
if locals.has_key? "fig.path"
|
15
|
+
fig_path = locals["fig.path"]
|
16
|
+
end
|
17
|
+
stdin, stdout, stderr = Open3.popen3('R --vanilla --slave -e "library(knitr);opts_chunk\$set(fig.path=\"'+fig_path+'\");data=readLines(file(\'stdin\'));out=knit(text=data,output=NULL);cat(\'KNITR<<<<<<<<<<<\n\');cat(out)"')
|
18
|
+
if !block.nil?
|
19
|
+
raise "Knitr Templates do not support inner blocks!"
|
20
|
+
end
|
21
|
+
#, locals.merge(scope.is_a?(Hash) ? scope : {}).merge({:yield => block.nil? ? '' : block.call}))
|
22
|
+
stdin.write(data)
|
23
|
+
stdin.write("\n")
|
24
|
+
stdin.close
|
25
|
+
$stderr.print stderr.readlines.join
|
26
|
+
stdout.readlines.join.sub(/.*KNITR<<<<<<<<<<</m,"").strip
|
27
|
+
end
|
28
|
+
end
|
29
|
+
register 'Rmd', KnitrTemplate
|
30
|
+
end
|
31
|
+
|
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 Tilt::KnitrTemplate do
|
4
|
+
it "registered for '.Rmd' files" do
|
5
|
+
assert_equal Tilt::KnitrTemplate, Tilt["test.Rmd"]
|
6
|
+
end
|
7
|
+
|
8
|
+
it "loading and evaluating templates on #render" do
|
9
|
+
template = Tilt::KnitrTemplate.new { |t| "Hello World!" }
|
10
|
+
assert_equal "Hello World!", template.render
|
11
|
+
end
|
12
|
+
|
13
|
+
it "basics" do
|
14
|
+
template = Tilt::KnitrTemplate.new { "```{r echo=FALSE, results='asis'}\ncat(6 * 6)\n```" }
|
15
|
+
assert_equal "36", template.render
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/tilt-knitr.gemspec
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "tilt-knitr"
|
3
|
+
s.version = "0.0.2"
|
4
|
+
s.authors = ["Jamie F Olson"]
|
5
|
+
s.email = "self@jfolson.com"
|
6
|
+
s.homepage = "http://github.com/jamiefolson/tilt-knitr"
|
7
|
+
s.summary = %q{Add Knitr to Tilt}
|
8
|
+
s.description = %q{Add Knitr to Tilt}
|
9
|
+
|
10
|
+
s.add_dependency 'tilt'
|
11
|
+
s.add_development_dependency 'minitest'
|
12
|
+
|
13
|
+
s.files = `git ls-files`.split("\n")
|
14
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
15
|
+
s.require_paths = ["lib"]
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tilt-knitr
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jamie F Olson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-03-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: tilt
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Add Knitr to Tilt
|
42
|
+
email: self@jfolson.com
|
43
|
+
executables: []
|
44
|
+
extensions: []
|
45
|
+
extra_rdoc_files: []
|
46
|
+
files:
|
47
|
+
- Gemfile
|
48
|
+
- README.md
|
49
|
+
- Rakefile
|
50
|
+
- lib/tilt-knitr.rb
|
51
|
+
- test/helper.rb
|
52
|
+
- test/test_knitr.rb
|
53
|
+
- tilt-knitr.gemspec
|
54
|
+
homepage: http://github.com/jamiefolson/tilt-knitr
|
55
|
+
licenses: []
|
56
|
+
metadata: {}
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options: []
|
59
|
+
require_paths:
|
60
|
+
- lib
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
requirements: []
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 2.0.0.rc.2
|
74
|
+
signing_key:
|
75
|
+
specification_version: 4
|
76
|
+
summary: Add Knitr to Tilt
|
77
|
+
test_files: []
|