asciidoctor-diagram 1.5.18 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of asciidoctor-diagram might be problematic. Click here for more details.

Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +66 -0
  3. data/README.adoc +98 -23
  4. data/examples/features.adoc +2 -2
  5. data/lib/asciidoctor-diagram.rb +8 -0
  6. data/lib/asciidoctor-diagram/a2s/converter.rb +55 -0
  7. data/lib/asciidoctor-diagram/a2s/extension.rb +6 -52
  8. data/lib/asciidoctor-diagram/blockdiag/converter.rb +37 -0
  9. data/lib/asciidoctor-diagram/blockdiag/extension.rb +9 -116
  10. data/lib/asciidoctor-diagram/bpmn.rb +7 -0
  11. data/lib/asciidoctor-diagram/bpmn/converter.rb +62 -0
  12. data/lib/asciidoctor-diagram/bpmn/extension.rb +14 -0
  13. data/lib/asciidoctor-diagram/bytefield.rb +7 -0
  14. data/lib/asciidoctor-diagram/bytefield/converter.rb +26 -0
  15. data/lib/asciidoctor-diagram/bytefield/extension.rb +14 -0
  16. data/lib/asciidoctor-diagram/diagram_converter.rb +19 -0
  17. data/lib/asciidoctor-diagram/diagram_processor.rb +345 -0
  18. data/lib/asciidoctor-diagram/diagram_source.rb +306 -0
  19. data/lib/asciidoctor-diagram/ditaa/converter.rb +86 -0
  20. data/lib/asciidoctor-diagram/ditaa/extension.rb +6 -71
  21. data/lib/asciidoctor-diagram/dpic.rb +7 -0
  22. data/lib/asciidoctor-diagram/dpic/converter.rb +30 -0
  23. data/lib/asciidoctor-diagram/dpic/extension.rb +14 -0
  24. data/lib/asciidoctor-diagram/erd/converter.rb +31 -0
  25. data/lib/asciidoctor-diagram/erd/extension.rb +6 -35
  26. data/lib/asciidoctor-diagram/gnuplot.rb +7 -0
  27. data/lib/asciidoctor-diagram/gnuplot/converter.rb +63 -0
  28. data/lib/asciidoctor-diagram/gnuplot/extension.rb +14 -0
  29. data/lib/asciidoctor-diagram/graphviz/converter.rb +32 -0
  30. data/lib/asciidoctor-diagram/graphviz/extension.rb +6 -35
  31. data/lib/asciidoctor-diagram/http/converter.rb +99 -0
  32. data/lib/asciidoctor-diagram/http/server.rb +127 -0
  33. data/lib/asciidoctor-diagram/lilypond.rb +7 -0
  34. data/lib/asciidoctor-diagram/lilypond/converter.rb +54 -0
  35. data/lib/asciidoctor-diagram/lilypond/extension.rb +14 -0
  36. data/lib/asciidoctor-diagram/meme/converter.rb +122 -0
  37. data/lib/asciidoctor-diagram/meme/extension.rb +5 -107
  38. data/lib/asciidoctor-diagram/mermaid/converter.rb +179 -0
  39. data/lib/asciidoctor-diagram/mermaid/extension.rb +6 -159
  40. data/lib/asciidoctor-diagram/msc/converter.rb +35 -0
  41. data/lib/asciidoctor-diagram/msc/extension.rb +6 -36
  42. data/lib/asciidoctor-diagram/nomnoml/converter.rb +25 -0
  43. data/lib/asciidoctor-diagram/nomnoml/extension.rb +6 -28
  44. data/lib/asciidoctor-diagram/pikchr.rb +7 -0
  45. data/lib/asciidoctor-diagram/pikchr/converter.rb +26 -0
  46. data/lib/asciidoctor-diagram/pikchr/extension.rb +14 -0
  47. data/lib/asciidoctor-diagram/plantuml/converter.rb +117 -0
  48. data/lib/asciidoctor-diagram/plantuml/extension.rb +10 -119
  49. data/lib/asciidoctor-diagram/shaape/converter.rb +25 -0
  50. data/lib/asciidoctor-diagram/shaape/extension.rb +6 -28
  51. data/lib/asciidoctor-diagram/smcat.rb +7 -0
  52. data/lib/asciidoctor-diagram/smcat/converter.rb +44 -0
  53. data/lib/asciidoctor-diagram/smcat/extension.rb +14 -0
  54. data/lib/asciidoctor-diagram/svgbob/converter.rb +49 -0
  55. data/lib/asciidoctor-diagram/svgbob/extension.rb +6 -28
  56. data/lib/asciidoctor-diagram/symbolator.rb +7 -0
  57. data/lib/asciidoctor-diagram/symbolator/converter.rb +23 -0
  58. data/lib/asciidoctor-diagram/symbolator/extension.rb +14 -0
  59. data/lib/asciidoctor-diagram/syntrax/converter.rb +55 -0
  60. data/lib/asciidoctor-diagram/syntrax/extension.rb +6 -51
  61. data/lib/asciidoctor-diagram/tikz/converter.rb +56 -0
  62. data/lib/asciidoctor-diagram/tikz/extension.rb +6 -60
  63. data/lib/asciidoctor-diagram/umlet/converter.rb +24 -0
  64. data/lib/asciidoctor-diagram/umlet/extension.rb +6 -28
  65. data/lib/asciidoctor-diagram/util/cli.rb +14 -3
  66. data/lib/asciidoctor-diagram/util/cli_generator.rb +19 -1
  67. data/lib/asciidoctor-diagram/util/gif.rb +2 -2
  68. data/lib/asciidoctor-diagram/util/java.rb +1 -1
  69. data/lib/asciidoctor-diagram/util/java_socket.rb +7 -9
  70. data/lib/asciidoctor-diagram/util/pdf.rb +2 -2
  71. data/lib/asciidoctor-diagram/util/png.rb +2 -2
  72. data/lib/asciidoctor-diagram/util/svg.rb +38 -19
  73. data/lib/asciidoctor-diagram/util/which.rb +0 -29
  74. data/lib/asciidoctor-diagram/vega/converter.rb +47 -0
  75. data/lib/asciidoctor-diagram/vega/extension.rb +6 -44
  76. data/lib/asciidoctor-diagram/version.rb +1 -1
  77. data/lib/asciidoctor-diagram/wavedrom/converter.rb +50 -0
  78. data/lib/asciidoctor-diagram/wavedrom/extension.rb +6 -46
  79. data/lib/ditaa-1.3.15.jar +0 -0
  80. data/lib/ditaamini-0.12.jar +0 -0
  81. data/lib/plantuml-1.3.15.jar +0 -0
  82. data/lib/plantuml.jar +0 -0
  83. data/lib/server-1.3.15.jar +0 -0
  84. data/spec/bpmn-example.xml +44 -0
  85. data/spec/bpmn_spec.rb +96 -0
  86. data/spec/bytefield_spec.rb +230 -0
  87. data/spec/ditaa_spec.rb +32 -0
  88. data/spec/dpic_spec.rb +74 -0
  89. data/spec/gnuplot_spec.rb +478 -0
  90. data/spec/lilypond_spec.rb +151 -0
  91. data/spec/mermaid_spec.rb +33 -1
  92. data/spec/pikchr_spec.rb +106 -0
  93. data/spec/plantuml_spec.rb +90 -1
  94. data/spec/smcat_spec.rb +164 -0
  95. data/spec/symbolator_spec.rb +200 -0
  96. data/spec/test_helper.rb +0 -18
  97. metadata +73 -11
  98. data/lib/asciidoctor-diagram/extensions.rb +0 -568
  99. data/lib/ditaa-1.3.13.jar +0 -0
  100. data/lib/ditaamini-0.11.jar +0 -0
  101. data/lib/plantuml-1.3.13.jar +0 -0
  102. data/lib/server-1.3.13.jar +0 -0
@@ -0,0 +1,7 @@
1
+ require 'asciidoctor/extensions'
2
+ require_relative 'dpic/extension'
3
+
4
+ Asciidoctor::Extensions.register do
5
+ block Asciidoctor::Diagram::DpicBlockProcessor, :dpic
6
+ block_macro Asciidoctor::Diagram::DpicBlockMacroProcessor, :dpic
7
+ end
@@ -0,0 +1,30 @@
1
+ require_relative '../diagram_converter'
2
+ require_relative '../util/cli_generator'
3
+ require_relative '../util/platform'
4
+
5
+ module Asciidoctor
6
+ module Diagram
7
+ # @private
8
+ class DpicConverter
9
+ include DiagramConverter
10
+ include CliGenerator
11
+
12
+
13
+ def supported_formats
14
+ [:svg]
15
+ end
16
+
17
+ def convert(source, format, options)
18
+ dpic_path = source.find_command('dpic')
19
+
20
+ code = source.to_s
21
+ code.prepend ".PS\n" unless code.start_with?(".PS\n")
22
+ code << "\n.PE" unless code.start_with?("\n.PE")
23
+
24
+ generate_file_stdout(dpic_path, format.to_s, code) do |tool_path, input_path|
25
+ [tool_path, "-v", "-z", input_path]
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,14 @@
1
+ require_relative 'converter'
2
+ require_relative '../diagram_processor'
3
+
4
+ module Asciidoctor
5
+ module Diagram
6
+ class DpicBlockProcessor < DiagramBlockProcessor
7
+ use_converter DpicConverter
8
+ end
9
+
10
+ class DpicBlockMacroProcessor < DiagramBlockMacroProcessor
11
+ use_converter DpicConverter
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,31 @@
1
+ require_relative '../diagram_converter'
2
+ require_relative '../util/cli_generator'
3
+ require_relative '../util/platform'
4
+
5
+ module Asciidoctor
6
+ module Diagram
7
+ # @private
8
+ class ErdConverter
9
+ include DiagramConverter
10
+ include CliGenerator
11
+
12
+
13
+ def supported_formats
14
+ [:png, :svg]
15
+ end
16
+
17
+ def convert(source, format, options)
18
+ erd_path = source.find_command('erd')
19
+ dot_path = source.find_command('dot', :alt_attrs => ['graphvizdot'])
20
+
21
+ dot_code = generate_stdin(erd_path, format.to_s, source.to_s) do |tool_path, output_path|
22
+ [tool_path, '-o', Platform.native_path(output_path), '-f', 'dot']
23
+ end
24
+
25
+ generate_stdin(dot_path, format.to_s, dot_code) do |tool_path, output_path|
26
+ [tool_path, "-o#{Platform.native_path(output_path)}", "-T#{format.to_s}"]
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,43 +1,14 @@
1
- require_relative '../extensions'
2
- require_relative '../util/cli_generator'
3
- require_relative '../util/platform'
4
- require_relative '../util/which'
1
+ require_relative 'converter'
2
+ require_relative '../diagram_processor'
5
3
 
6
4
  module Asciidoctor
7
5
  module Diagram
8
- # @private
9
- module Erd
10
- include CliGenerator
11
- include Which
12
-
13
- def self.included(mod)
14
- [:png, :svg].each do |f|
15
- mod.register_format(f, :image) do |parent, source|
16
- erd(parent, source, f)
17
- end
18
- end
19
- end
20
-
21
- def erd(parent, source, format)
22
- erd_path = which(parent, 'erd')
23
- dot_path = which(parent, 'dot', :alt_attrs => ['graphvizdot'])
24
-
25
- dot_code = generate_stdin(erd_path, format.to_s, source.to_s) do |tool_path, output_path|
26
- [tool_path, '-o', Platform.native_path(output_path), '-f', 'dot']
27
- end
28
-
29
- generate_stdin(dot_path, format.to_s, dot_code) do |tool_path, output_path|
30
- [tool_path, "-o#{Platform.native_path(output_path)}", "-T#{format.to_s}"]
31
- end
32
- end
33
- end
34
-
35
- class ErdBlockProcessor < Extensions::DiagramBlockProcessor
36
- include Erd
6
+ class ErdBlockProcessor < DiagramBlockProcessor
7
+ use_converter ErdConverter
37
8
  end
38
9
 
39
- class ErdBlockMacroProcessor < Extensions::DiagramBlockMacroProcessor
40
- include Erd
10
+ class ErdBlockMacroProcessor < DiagramBlockMacroProcessor
11
+ use_converter ErdConverter
41
12
  end
42
13
  end
43
14
  end
@@ -0,0 +1,7 @@
1
+ require 'asciidoctor/extensions'
2
+ require_relative 'gnuplot/extension'
3
+
4
+ Asciidoctor::Extensions.register do
5
+ block Asciidoctor::Diagram::GnuplotBlockProcessor, :gnuplot
6
+ block_macro Asciidoctor::Diagram::GnuplotBlockMacroProcessor, :gnuplot
7
+ end
@@ -0,0 +1,63 @@
1
+ require_relative '../diagram_converter'
2
+ require_relative '../util/cli_generator'
3
+ require_relative '../util/platform'
4
+
5
+ module Asciidoctor
6
+ module Diagram
7
+ # @private
8
+ class GnuplotConverter
9
+ include DiagramConverter
10
+ include CliGenerator
11
+
12
+
13
+ def supported_formats
14
+ [:png, :svg, :gif, :txt, :literal]
15
+ end
16
+
17
+ def collect_options(source, name)
18
+ {
19
+ :width => source.attr('width', nil, name),
20
+ :height => source.attr('height', nil, name),
21
+ :transparent => source.attr('transparent', nil, name),
22
+ :crop => source.attr('crop', nil, name),
23
+ :font => source.attr('font', nil, name),
24
+ :fontscale => source.attr('fontscale', nil, name),
25
+ :background => source.attr('background', nil, name),
26
+ }
27
+ end
28
+
29
+ def convert(source, format, options)
30
+ if format == :txt || format == :literal
31
+ terminal = 'dumb'
32
+ else
33
+ terminal = format.to_s
34
+ end
35
+ code = "set term #{terminal}"
36
+
37
+ width = options[:width]
38
+ height = options[:height]
39
+ code << " size #{width},#{height}" unless width.nil? or height.nil?
40
+
41
+ transparent = options[:transparent]
42
+ code << (transparent ? " transparent" : " notransparent") unless transparent.nil?
43
+
44
+ crop = options[:crop]
45
+ code << (crop ? " crop" : " nocrop") unless crop.nil?
46
+
47
+ font = options[:font]
48
+ code << %( font "#{font}") unless font.nil?
49
+
50
+ font_scale = options[:fontscale]
51
+ code << " fontscale #{font_scale}" unless font_scale.nil?
52
+
53
+ background = options[:background]
54
+ code << %( background "#{background}") unless background.nil?
55
+
56
+ code << "\n"
57
+ code << source.to_s
58
+
59
+ generate_stdin_stdout(source.find_command('gnuplot'), code)
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,14 @@
1
+ require_relative 'converter'
2
+ require_relative '../diagram_processor'
3
+
4
+ module Asciidoctor
5
+ module Diagram
6
+ class GnuplotBlockProcessor < DiagramBlockProcessor
7
+ use_converter GnuplotConverter
8
+ end
9
+
10
+ class GnuplotBlockMacroProcessor < DiagramBlockMacroProcessor
11
+ use_converter GnuplotConverter
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,32 @@
1
+ require_relative '../diagram_converter'
2
+ require_relative '../util/cli_generator'
3
+ require_relative '../util/platform'
4
+
5
+ module Asciidoctor
6
+ module Diagram
7
+ # @private
8
+ class GraphvizConverter
9
+ include DiagramConverter
10
+ include CliGenerator
11
+
12
+ def supported_formats
13
+ [:png, :pdf, :svg]
14
+ end
15
+
16
+ def collect_options(source, name)
17
+ {:layout => source.attr('layout', nil, name)}
18
+ end
19
+
20
+ def convert(source, format, options)
21
+ generate_stdin(source.find_command('dot', :alt_attrs => ['graphvizdot']), format.to_s, source.to_s) do |tool_path, output_path|
22
+ args = [tool_path, "-o#{Platform.native_path(output_path)}", "-T#{format.to_s}"]
23
+
24
+ layout = options[:layout]
25
+ args << "-K#{layout}" if layout
26
+
27
+ args
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,43 +1,14 @@
1
- require_relative '../extensions'
2
- require_relative '../util/cli_generator'
3
- require_relative '../util/platform'
4
- require_relative '../util/which'
1
+ require_relative 'converter'
2
+ require_relative '../diagram_processor'
5
3
 
6
4
  module Asciidoctor
7
5
  module Diagram
8
- # @private
9
- module Graphviz
10
- include CliGenerator
11
- include Which
12
-
13
- def self.included(mod)
14
- [:png, :pdf, :svg].each do |f|
15
- mod.register_format(f, :image) do |parent, source|
16
- graphviz(parent, source, f)
17
- end
18
- end
19
- end
20
-
21
- def graphviz(parent, source, format)
22
- inherit_prefix = name
23
-
24
- generate_stdin(which(parent, 'dot', :alt_attrs => ['graphvizdot']), format.to_s, source.to_s) do |tool_path, output_path|
25
- args = [tool_path, "-o#{Platform.native_path(output_path)}", "-T#{format.to_s}"]
26
-
27
- layout = source.attr('layout', nil, inherit_prefix)
28
- args << "-K#{layout}" if layout
29
-
30
- args
31
- end
32
- end
33
- end
34
-
35
- class GraphvizBlockProcessor < Extensions::DiagramBlockProcessor
36
- include Graphviz
6
+ class GraphvizBlockProcessor < DiagramBlockProcessor
7
+ use_converter GraphvizConverter
37
8
  end
38
9
 
39
- class GraphvizBlockMacroProcessor < Extensions::DiagramBlockMacroProcessor
40
- include Graphviz
10
+ class GraphvizBlockMacroProcessor < DiagramBlockMacroProcessor
11
+ use_converter GraphvizConverter
41
12
  end
42
13
  end
43
14
  end
@@ -0,0 +1,99 @@
1
+ require_relative '../diagram_converter'
2
+ require_relative '../util/cli_generator'
3
+ require_relative '../util/platform'
4
+
5
+ require 'base64'
6
+ require 'net/http'
7
+ require 'uri'
8
+ require 'zlib'
9
+
10
+ module Asciidoctor
11
+ module Diagram
12
+ # @private
13
+ class HttpConverter
14
+ include DiagramConverter
15
+
16
+ def initialize(base_uri, type, converter)
17
+ @base_uri = base_uri
18
+ @type = type
19
+ @converter = converter
20
+ end
21
+
22
+ def supported_formats
23
+ @converter.supported_formats
24
+ end
25
+
26
+ def collect_options(source, name)
27
+ {
28
+ :block_name => name
29
+ }
30
+ end
31
+
32
+ def convert(source, format, options)
33
+ code = source.code
34
+
35
+ uri = URI(@base_uri)
36
+
37
+ case @type
38
+ when :plantuml
39
+ deflate = Zlib::Deflate.new(Zlib::BEST_COMPRESSION,
40
+ -Zlib::MAX_WBITS,
41
+ Zlib::MAX_MEM_LEVEL,
42
+ Zlib::DEFAULT_STRATEGY)
43
+
44
+ compressed = deflate.deflate(code, Zlib::FINISH)
45
+ deflate.close
46
+
47
+ encoded = Base64.urlsafe_encode64(compressed)
48
+ data = '0A' + encoded
49
+
50
+ path = uri.path
51
+ path << '/' unless path.end_with? '/'
52
+ path << format.to_s
53
+ path << '/' << data
54
+ uri.path = path
55
+ when :kroki_io
56
+ compressed = Zlib.deflate(code, Zlib::BEST_COMPRESSION)
57
+ data = Base64.urlsafe_encode64(compressed)
58
+
59
+ path = uri.path
60
+ path << '/' unless path.end_with? '/'
61
+ path << options[:block_name].to_s
62
+ path << '/' << format.to_s
63
+ path << '/' << data
64
+ uri.path = path
65
+ else
66
+ raise "Unsupported server type: " + @type
67
+ end
68
+
69
+ get_uri(uri)
70
+ end
71
+
72
+ private
73
+
74
+ def get_uri(uri, attempt = 1)
75
+ if attempt >= 10
76
+ raise "Too many redirects"
77
+ end
78
+
79
+ Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme.downcase == 'https') do |http|
80
+ response = http.request_get uri.path
81
+ case response
82
+ when Net::HTTPSuccess
83
+ response.body
84
+ when Net::HTTPRedirection then
85
+ location = response['Location']
86
+ new_uri = URI.parse(location)
87
+ if new_uri.relative?
88
+ get_uri(uri + location, attempt + 1)
89
+ else
90
+ get_uri(new_uri, attempt + 1)
91
+ end
92
+ else
93
+ response.value
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,127 @@
1
+ require 'base64'
2
+ require 'json'
3
+ require 'sinatra/base'
4
+ require 'zlib'
5
+
6
+ require_relative '../diagram_source'
7
+ require_relative '../graphviz/converter'
8
+ require_relative '../util/which'
9
+
10
+ module Asciidoctor
11
+ module Diagram
12
+ class Server < Sinatra::Base
13
+ get '/:type/:format/:source' do
14
+ type = params['type']
15
+ accepts = lambda { |t| params['format'].downcase.to_sym == t }
16
+ raw_source = params['source']
17
+ decoded_source = Base64.urlsafe_decode64(raw_source)
18
+ decompressed_source = Zlib::Inflate.inflate(decoded_source)
19
+ source = decompressed_source
20
+ render_diagram(type, accepts, source, {})
21
+ end
22
+
23
+ post '/' do
24
+ params = JSON.parse(request.body.read)
25
+ type = params['diagram_type']
26
+ accepts = lambda { |t| params['output_format'].downcase.to_sym == t }
27
+ source = params['diagram_source']
28
+ render_diagram(type, accepts, source, {})
29
+ end
30
+
31
+ post '/:type' do
32
+ type = params['type'].to_sym
33
+ r = request
34
+ accepts = lambda { |t| r.accept?(to_mime_type(t)) }
35
+ source = request.body.read
36
+ render_diagram(type, accepts, source, {})
37
+ end
38
+
39
+ post '/:type/:format' do
40
+ type = params['type'].to_sym
41
+ accepts = lambda { |t| params['format'].downcase.to_sym == t }
42
+ source = request.body.read
43
+ render_diagram(type, accepts, source, {})
44
+ end
45
+
46
+ def to_mime_type(type)
47
+ case type
48
+ when :pdf
49
+ 'application/pdf'
50
+ when :png
51
+ 'image/png'
52
+ when :svg
53
+ 'image/svg'
54
+ when :txt
55
+ 'text/plain'
56
+ else
57
+ nil
58
+ end
59
+ end
60
+
61
+ def get_converter(type)
62
+ case type
63
+ when :graphviz
64
+ GraphvizConverter.new
65
+ else
66
+ nil
67
+ end
68
+ end
69
+
70
+ def render_diagram(type, accepts, code, attributes)
71
+ converter = get_converter(type.downcase.to_sym)
72
+ return [500, "Unsupported diagram type #{type}"] unless converter
73
+
74
+ format = converter.supported_formats.find {|f| accepts.call(f)}
75
+ return [500, "Could not determine supported output format"] unless format
76
+
77
+ source = ServerSource.new(code, attributes)
78
+ options = converter.collect_options(source, type.downcase)
79
+ diagram = converter.convert(source, format, options)
80
+
81
+ content_type to_mime_type(format)
82
+ diagram
83
+ end
84
+ end
85
+
86
+ class ServerSource
87
+ include Asciidoctor::Diagram::DiagramSource
88
+
89
+ def initialize(source, attributes)
90
+ @source = source
91
+ @attributes = attributes
92
+ end
93
+
94
+ def attr(name, default_value = nil, inherit = nil)
95
+ @attributes[name] || default_value
96
+ end
97
+
98
+ def base_dir
99
+ nil
100
+ end
101
+
102
+ def code
103
+ @source
104
+ end
105
+
106
+ def config
107
+ {}
108
+ end
109
+
110
+ def find_command(cmd, options = nil)
111
+ Asciidoctor::Diagram::Which.which(cmd, options)
112
+ end
113
+
114
+ def resolve_path(target, start = nil)
115
+ target
116
+ end
117
+
118
+ def image_name
119
+ "image"
120
+ end
121
+
122
+ def should_process?(image_file, image_metadata)
123
+ true
124
+ end
125
+ end
126
+ end
127
+ end