tilt-knitr 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in tilt-knitr.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,10 @@
1
+ tilt-knitr
2
+ ==========
3
+
4
+ Process Rmd file with Tilt using Knitr
5
+
6
+ ```
7
+ require "tilt-knitr"
8
+ ```
9
+
10
+ Currently only registers for R markdown files, but `knit` automatically detects the filetype, so it should be safe to also support other formats.
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
@@ -0,0 +1,4 @@
1
+ require 'rubygems' unless defined?(Gem)
2
+ require 'bundler/setup'
3
+ require 'tilt-knitr'
4
+ require 'minitest/autorun'
@@ -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
@@ -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: []