middleman-knitr 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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/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
@@ -0,0 +1,4 @@
1
+ require 'rubygems' unless defined?(Gem)
2
+ require 'bundler/setup'
3
+ require 'middleman-knitr'
4
+ require 'minitest/autorun'
@@ -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: []