rails-latex 2.2.2 → 2.3.4

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 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