rails-latex 2.2.2 → 2.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 14b2514f64b9372a42f6a5fea21f066f98204779
4
- data.tar.gz: 7af82804dbe1fac9bc9f8bad7c12f823e35b319a
2
+ SHA256:
3
+ metadata.gz: 52c84240b2098292a90400f03790c9ac53a95cfd194fa0d42ae22e65a462eb04
4
+ data.tar.gz: 458ce58aefedf1497da66631a6ca9d3e0dfbbced7b2484666bbd6bfd1d3cae6d
5
5
  SHA512:
6
- metadata.gz: ecc4d73435f55fb18675c2889af285c0c992aff5122ace290c2d15994a9997bba38761f1427468cd12e7711ff4c02a49e78fba352c720e1b1b31f0bdcb0b7d49
7
- data.tar.gz: bf885295eba23451eaf14a678cba00896e50de544ee65cfff7ec1e76e9aa55db92677790f7095ce73addfc3ae78b853a3d4ec609b2c6f0f493d8040127c9f09b
6
+ metadata.gz: d31bf2685065334235c564d98792b79a4acb011d44b59320f4d1529fa7a2bcb637e794ab377cc77c5527c9e9a307ba9d23635423e46cce2384e6977811bb0252
7
+ data.tar.gz: ee38e92746f1b109ed480f09a8f23507337cbdffd53eae12cb913e62554eca7d5bcf7f09995f2babe1245863dd2ab229079ba1116867896ac63e48045fc2eaab
@@ -0,0 +1,33 @@
1
+ name: Basic test suite
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+
11
+ ruby:
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ ruby-version: ['3.0', '2.7', '2.6']
16
+
17
+ steps:
18
+
19
+ - uses: actions/checkout@v2
20
+
21
+ - name: Install dependencies
22
+ run: sudo apt-get install -y texlive texlive-xetex poppler-utils
23
+
24
+ - name: Setup ruby
25
+ uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ${{ matrix.ruby-version }}
28
+
29
+ - name: Install dependencies
30
+ run: bundle install
31
+
32
+ - name: Run tests
33
+ run: bundle exec rake
data/README.rdoc CHANGED
@@ -1,3 +1,5 @@
1
+ {<img src="https://travis-ci.com/amagical-net/rails-latex.svg?branch=master" alt="Build Status" />}[https://travis-ci.com/amagical-net/rails-latex]
2
+
1
3
  = Rails-LaTeX
2
4
 
3
5
  * Git: https://github.com/baierjan/rails-latex
@@ -46,7 +46,7 @@ Rails.application.configure do
46
46
 
47
47
  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
48
48
  # the I18n.default_locale when a translation cannot be found).
49
- config.i18n.fallbacks = true
49
+ config.i18n.fallbacks = [I18n.default_locale]
50
50
 
51
51
  # Send deprecation notices to registered listeners.
52
52
  config.active_support.deprecation = :notify
@@ -14,8 +14,5 @@ Rails.application.config.action_controller.forgery_protection_origin_check = tru
14
14
  # Previous versions had false.
15
15
  ActiveSupport.to_time_preserves_timezone = true
16
16
 
17
- # Do not halt callback chains when a callback returns false. Previous versions had true.
18
- ActiveSupport.halt_callback_chains_on_return_false = false
19
-
20
17
  # Configure SSL options to enable HSTS with subdomains. Previous versions had false.
21
18
  Rails.application.config.ssl_options = { hsts: { subdomains: true } }
@@ -6,12 +6,13 @@ require 'action_view'
6
6
  module ActionView # :nodoc: all
7
7
  module Template::Handlers
8
8
  class ERBLatex < ERB
9
- def self.call(template)
10
- new.compile(template)
9
+ def self.call(template, source = nil)
10
+ source ||= template.source
11
+ new.compile(template, source)
11
12
  end
12
13
 
13
- def compile(template)
14
- erb = "<% __in_erb_template=true %>#{template.source}"
14
+ def compile(template, source)
15
+ erb = "<% __in_erb_template=true %>#{source}"
15
16
  out=self.class.erb_implementation.new(erb, :trim=>(self.class.erb_trim_mode == "-")).src
16
17
  out + ";LatexToPdf.generate_pdf(@output_buffer.to_s, @latex_config||{})"
17
18
  end
@@ -13,6 +13,9 @@ class LatexToPdf
13
13
  :command => 'pdflatex',
14
14
  :arguments => ['-halt-on-error'],
15
15
  :default_arguments => ['-shell-escape', '-interaction=batchmode'],
16
+ workdir: ->() { "#{Process.pid}-#{Thread.current.hash}" },
17
+ preservework: false,
18
+ basedir: File.join(Rails.root, 'tmp', 'rails-latex'),
16
19
  :parse_runs => 1
17
20
  }
18
21
  end
@@ -44,7 +47,7 @@ class LatexToPdf
44
47
  end
45
48
 
46
49
  # Create directory, prepare additional supporting files (.cls, .sty, ...)
47
- dir = File.join(Rails.root, 'tmp', 'rails-latex', "#{Process.pid}-#{Thread.current.hash}")
50
+ dir = File.join(config[:basedir], config[:workdir].call)
48
51
  input = File.join(dir, 'input.tex')
49
52
  FileUtils.mkdir_p(dir)
50
53
  supporting = config[:supporting]
@@ -60,7 +63,7 @@ class LatexToPdf
60
63
  args = item[:arguments] || config[:arguments] + config[:default_arguments]
61
64
  args += item[:extra_arguments].to_a + ['input']
62
65
  kwargs = {:out => ["input.log", "a"]}
63
- Rails.logger.info "Running #{command} #{args.join(' ')} #{runs} times..."
66
+ Rails.logger.info "Running '#{command} #{args.join(' ')}' in #{dir} #{runs} times..."
64
67
  Process.waitpid(
65
68
  fork do
66
69
  begin
@@ -83,10 +86,12 @@ class LatexToPdf
83
86
 
84
87
  # Finish
85
88
  if $?.exitstatus.zero? && File.exist?(pdf_file=input.sub(/\.tex$/,'.pdf'))
86
- FileUtils.mv(input, File.join(dir, '..', 'input.tex'))
87
- FileUtils.mv(input.sub(/\.tex$/,'.log'), File.join(dir, '..', 'input.log'))
89
+ cmd = config[:preservework] ? :cp : :mv
90
+ FileUtils.send(cmd, input, File.join(config[:basedir], 'input.tex'))
91
+ FileUtils.send(cmd, input.sub(/\.tex$/,'.log'),
92
+ File.join(config[:basedir], 'input.log'))
88
93
  result = File.read(pdf_file)
89
- FileUtils.rm_rf(dir)
94
+ FileUtils.rm_rf(dir) unless config[:preservework]
90
95
  else
91
96
  raise RailsLatex::ProcessingError.new(
92
97
  "rails-latex failed: See #{input.sub(/\.tex$/,'.log')} for details",
@@ -102,7 +107,7 @@ class LatexToPdf
102
107
  # This method will use RedCloth to do the escaping if available.
103
108
  def self.escape_latex(text)
104
109
  # :stopdoc:
105
- unless @latex_escaper
110
+ unless instance_variable_defined?(:@latex_escaper) && @latex_escaper
106
111
  if defined?(RedCloth::Formatters::LATEX)
107
112
  class << (@latex_escaper=RedCloth.new(''))
108
113
  include RedCloth::Formatters::LATEX
@@ -133,6 +138,6 @@ class LatexToPdf
133
138
  # :startdoc:
134
139
  end
135
140
 
136
- @latex_escaper.latex_esc(text.to_s).html_safe
141
+ @latex_escaper.latex_esc(text.to_s.to_str).html_safe
137
142
  end
138
143
  end
@@ -1,3 +1,3 @@
1
1
  module RailsLatex
2
- VERSION = "2.2.2"
2
+ VERSION = "2.3.4"
3
3
  end
data/rails-latex.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = %q{A LaTeX to PDF rails renderer.}
13
13
  spec.description = %q{rails-latex is a renderer for rails which allows tex files with erb to be turned into an inline pdf.}
14
- spec.homepage = "https://github.com/amagical.net/rails-latex"
14
+ spec.homepage = "https://github.com/amagical-net/rails-latex"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -19,10 +19,10 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_runtime_dependency 'rails', '>= 3.0.0', '< 6'
23
- spec.add_development_dependency "RedCloth", "~> 4.2"
24
- spec.add_development_dependency "bundler", "~> 1.12"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "minitest", "~> 5.0"
27
- spec.add_development_dependency "minitest-reporters", "~> 1.1"
22
+ spec.add_runtime_dependency 'rails', '>= 3.0.0', '< 8'
23
+ spec.add_development_dependency "RedCloth", "~> 4.3"
24
+ spec.add_development_dependency "bundler", "~> 2.0"
25
+ spec.add_development_dependency "rake", "~> 13"
26
+ spec.add_development_dependency "minitest", "~> 5.11"
27
+ spec.add_development_dependency "minitest-reporters", "~> 1.3"
28
28
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-latex
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Baier
8
8
  - Geoff Jacobsen
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-03-22 00:00:00.000000000 Z
12
+ date: 2021-12-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -20,7 +20,7 @@ dependencies:
20
20
  version: 3.0.0
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '6'
23
+ version: '8'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -30,77 +30,77 @@ dependencies:
30
30
  version: 3.0.0
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '6'
33
+ version: '8'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: RedCloth
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '4.2'
40
+ version: '4.3'
41
41
  type: :development
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '4.2'
47
+ version: '4.3'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: bundler
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.12'
54
+ version: '2.0'
55
55
  type: :development
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.12'
61
+ version: '2.0'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rake
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '13'
69
69
  type: :development
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '13'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: minitest
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '5.0'
82
+ version: '5.11'
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '5.0'
89
+ version: '5.11'
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: minitest-reporters
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.1'
96
+ version: '1.3'
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.1'
103
+ version: '1.3'
104
104
  description: rails-latex is a renderer for rails which allows tex files with erb to
105
105
  be turned into an inline pdf.
106
106
  email:
@@ -109,6 +109,7 @@ executables: []
109
109
  extensions: []
110
110
  extra_rdoc_files: []
111
111
  files:
112
+ - ".github/workflows/tests.yml"
112
113
  - ".gitignore"
113
114
  - CODE_OF_CONDUCT.md
114
115
  - Gemfile
@@ -116,7 +117,6 @@ files:
116
117
  - README.rdoc
117
118
  - Rakefile
118
119
  - examples/rails-latex-demo/Gemfile
119
- - examples/rails-latex-demo/Gemfile.lock
120
120
  - examples/rails-latex-demo/Rakefile
121
121
  - examples/rails-latex-demo/app/controllers/application_controller.rb
122
122
  - examples/rails-latex-demo/app/controllers/latex_example_controller.rb
@@ -164,11 +164,11 @@ files:
164
164
  - lib/rails-latex/latex_to_pdf.rb
165
165
  - lib/rails-latex/version.rb
166
166
  - rails-latex.gemspec
167
- homepage: https://github.com/amagical.net/rails-latex
167
+ homepage: https://github.com/amagical-net/rails-latex
168
168
  licenses:
169
169
  - MIT
170
170
  metadata: {}
171
- post_install_message:
171
+ post_install_message:
172
172
  rdoc_options: []
173
173
  require_paths:
174
174
  - lib
@@ -183,9 +183,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
183
  - !ruby/object:Gem::Version
184
184
  version: '0'
185
185
  requirements: []
186
- rubyforge_project:
187
- rubygems_version: 2.5.2
188
- signing_key:
186
+ rubygems_version: 3.1.6
187
+ signing_key:
189
188
  specification_version: 4
190
189
  summary: A LaTeX to PDF rails renderer.
191
190
  test_files: []
@@ -1,118 +0,0 @@
1
- PATH
2
- remote: ../..
3
- specs:
4
- rails-latex (2.2.1)
5
- rails (>= 3.0.0, < 6)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- actioncable (5.1.5)
11
- actionpack (= 5.1.5)
12
- nio4r (~> 2.0)
13
- websocket-driver (~> 0.6.1)
14
- actionmailer (5.1.5)
15
- actionpack (= 5.1.5)
16
- actionview (= 5.1.5)
17
- activejob (= 5.1.5)
18
- mail (~> 2.5, >= 2.5.4)
19
- rails-dom-testing (~> 2.0)
20
- actionpack (5.1.5)
21
- actionview (= 5.1.5)
22
- activesupport (= 5.1.5)
23
- rack (~> 2.0)
24
- rack-test (>= 0.6.3)
25
- rails-dom-testing (~> 2.0)
26
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
- actionview (5.1.5)
28
- activesupport (= 5.1.5)
29
- builder (~> 3.1)
30
- erubi (~> 1.4)
31
- rails-dom-testing (~> 2.0)
32
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
33
- activejob (5.1.5)
34
- activesupport (= 5.1.5)
35
- globalid (>= 0.3.6)
36
- activemodel (5.1.5)
37
- activesupport (= 5.1.5)
38
- activerecord (5.1.5)
39
- activemodel (= 5.1.5)
40
- activesupport (= 5.1.5)
41
- arel (~> 8.0)
42
- activesupport (5.1.5)
43
- concurrent-ruby (~> 1.0, >= 1.0.2)
44
- i18n (~> 0.7)
45
- minitest (~> 5.1)
46
- tzinfo (~> 1.1)
47
- arel (8.0.0)
48
- builder (3.2.3)
49
- concurrent-ruby (1.0.5)
50
- crass (1.0.3)
51
- erubi (1.7.1)
52
- globalid (0.4.1)
53
- activesupport (>= 4.2.0)
54
- i18n (0.9.5)
55
- concurrent-ruby (~> 1.0)
56
- loofah (2.2.1)
57
- crass (~> 1.0.2)
58
- nokogiri (>= 1.5.9)
59
- mail (2.7.0)
60
- mini_mime (>= 0.1.1)
61
- method_source (0.9.0)
62
- mini_mime (1.0.0)
63
- mini_portile2 (2.3.0)
64
- minitest (5.11.3)
65
- nio4r (2.3.0)
66
- nokogiri (1.8.2)
67
- mini_portile2 (~> 2.3.0)
68
- rack (2.0.4)
69
- rack-test (0.8.3)
70
- rack (>= 1.0, < 3)
71
- rails (5.1.5)
72
- actioncable (= 5.1.5)
73
- actionmailer (= 5.1.5)
74
- actionpack (= 5.1.5)
75
- actionview (= 5.1.5)
76
- activejob (= 5.1.5)
77
- activemodel (= 5.1.5)
78
- activerecord (= 5.1.5)
79
- activesupport (= 5.1.5)
80
- bundler (>= 1.3.0)
81
- railties (= 5.1.5)
82
- sprockets-rails (>= 2.0.0)
83
- rails-dom-testing (2.0.3)
84
- activesupport (>= 4.2.0)
85
- nokogiri (>= 1.6)
86
- rails-html-sanitizer (1.0.3)
87
- loofah (~> 2.0)
88
- railties (5.1.5)
89
- actionpack (= 5.1.5)
90
- activesupport (= 5.1.5)
91
- method_source
92
- rake (>= 0.8.7)
93
- thor (>= 0.18.1, < 2.0)
94
- rake (12.3.1)
95
- sprockets (3.7.1)
96
- concurrent-ruby (~> 1.0)
97
- rack (> 1, < 3)
98
- sprockets-rails (3.2.1)
99
- actionpack (>= 4.0)
100
- activesupport (>= 4.0)
101
- sprockets (>= 3.0.0)
102
- thor (0.20.0)
103
- thread_safe (0.3.6)
104
- tzinfo (1.2.5)
105
- thread_safe (~> 0.1)
106
- websocket-driver (0.6.5)
107
- websocket-extensions (>= 0.1.0)
108
- websocket-extensions (0.1.3)
109
-
110
- PLATFORMS
111
- ruby
112
-
113
- DEPENDENCIES
114
- rails (~> 5)
115
- rails-latex!
116
-
117
- BUNDLED WITH
118
- 1.16.1