rghost 0.8.6.5 → 0.8.7
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.
- data/lib/rghost/callback.rb +3 -4
- data/lib/rghost/color.rb +13 -21
- data/lib/rghost/document.rb +33 -33
- data/lib/rghost/font.rb +3 -6
- data/lib/rghost/font_map.rb +1 -1
- data/lib/rghost/graphic.rb +0 -2
- data/lib/rghost/image.rb +3 -6
- data/lib/rghost/newpath.rb +0 -2
- data/lib/rghost/paper.rb +9 -11
- data/lib/rghost/parse_text.rb +2 -2
- data/lib/rghost/polygon.rb +1 -1
- data/lib/rghost/ps_facade.rb +21 -42
- data/lib/rghost/ruby_ghost_engine.rb +9 -9
- data/lib/rghost/ruby_to_ps.rb +7 -11
- metadata +2 -2
data/lib/rghost/callback.rb
CHANGED
@@ -27,7 +27,7 @@ class RGhost::Callback < RGhost::PsObject
|
|
27
27
|
def initialize(name,options={},&block)
|
28
28
|
|
29
29
|
super(""){}
|
30
|
-
set RGhost::PsFacade.new(&block)
|
30
|
+
set RGhost::PsFacade.new(&block) if block
|
31
31
|
@name=name
|
32
32
|
@options=options
|
33
33
|
|
@@ -45,11 +45,10 @@ class RGhost::Callback < RGhost::PsObject
|
|
45
45
|
private
|
46
46
|
def num_to_array(value)
|
47
47
|
case value
|
48
|
-
when Fixnum
|
48
|
+
when Fixnum:
|
49
49
|
a=[]
|
50
50
|
a << value
|
51
|
-
when NilClass
|
52
|
-
[]
|
51
|
+
when NilClass: []
|
53
52
|
else
|
54
53
|
value
|
55
54
|
end
|
data/lib/rghost/color.rb
CHANGED
@@ -35,14 +35,14 @@ class RGhost::Color < RGhost::PsObject
|
|
35
35
|
def self.create(color="FFAA99")
|
36
36
|
|
37
37
|
return case color
|
38
|
-
when String
|
39
|
-
when Symbol
|
38
|
+
when String: RGhost::RGB.new(color)
|
39
|
+
when Symbol:
|
40
40
|
c=RGhost::Constants::Colors::RGB[color]
|
41
41
|
raise ArgumentError.new("#{color}##{color.class}") unless c
|
42
42
|
self.create c
|
43
43
|
|
44
|
-
when Array, Hash
|
45
|
-
|
44
|
+
when Array, Hash:
|
45
|
+
if color.size == 3
|
46
46
|
RGhost::RGB.new(color)
|
47
47
|
elsif color.size == 4
|
48
48
|
RGhost::CMYK.new(color)
|
@@ -51,7 +51,7 @@ class RGhost::Color < RGhost::PsObject
|
|
51
51
|
else
|
52
52
|
raise ArgumentError.new("#{color}##{color.class}")
|
53
53
|
end
|
54
|
-
when Numeric
|
54
|
+
when Numeric: RGhost::Gray.new(color)
|
55
55
|
else
|
56
56
|
raise ArgumentError.new("#{color}##{color.class}")
|
57
57
|
end
|
@@ -93,14 +93,10 @@ class RGhost::RGB < RGhost::Color
|
|
93
93
|
end
|
94
94
|
def color_params
|
95
95
|
case @color
|
96
|
-
when Hash
|
97
|
-
|
98
|
-
when
|
99
|
-
|
100
|
-
when String
|
101
|
-
hex_to_rgb(@color)
|
102
|
-
when NilClass
|
103
|
-
[0,0,1]
|
96
|
+
when Hash: [@color[:red] || @color[:r],@color[:green] || @color[:g],@color[:blue] || @color[:b]]
|
97
|
+
when Array: @color
|
98
|
+
when String: hex_to_rgb(@color)
|
99
|
+
when NilClass: [0,0,1]
|
104
100
|
end
|
105
101
|
|
106
102
|
|
@@ -130,10 +126,8 @@ class RGhost::CMYK < RGhost::Color
|
|
130
126
|
|
131
127
|
def ps
|
132
128
|
value=case @color
|
133
|
-
when Hash
|
134
|
-
|
135
|
-
when Array
|
136
|
-
@color
|
129
|
+
when Hash: [@color[:cyan] || @color[:c],@color[:magenta] || @color[:m],@color[:yellow] || @color[:y],@color[:black] || @color[:k]]
|
130
|
+
when Array: @color
|
137
131
|
end
|
138
132
|
|
139
133
|
array_to_stack(value.map{|n| n > 1 ? n/100.0: n})+"setcmykcolor"
|
@@ -153,10 +147,8 @@ class RGhost::CMYKSpot < RGhost::Color
|
|
153
147
|
|
154
148
|
def ps
|
155
149
|
value=case @color
|
156
|
-
when Hash
|
157
|
-
|
158
|
-
when Array
|
159
|
-
@color
|
150
|
+
when Hash: [@color[:cyan] || @color[:c],@color[:magenta] || @color[:m],@color[:yellow] || @color[:y],@color[:black] || @color[:k]]
|
151
|
+
when Array: @color
|
160
152
|
end
|
161
153
|
|
162
154
|
array_to_stack(value.map{|n| n > 1 ? n/100.0: n}) + "(#{@name.to_s}) findcmykcustomcolor \n/#{@name.to_s.gsub(' ', '_')} exch def\n\n#{@name.to_s.gsub(' ', '_')} 1 setcustomcolor"
|
data/lib/rghost/document.rb
CHANGED
@@ -75,11 +75,12 @@ class RGhost::Document < RGhost::PsFacade
|
|
75
75
|
#* <tt>:row_height and row_padding</tt> - Its names say by itself :)
|
76
76
|
#* <tt>:font_encoding</tt> - Specifies encoding of data input. You can look for supported encoding using the method RGhost::Config.encode_test
|
77
77
|
def initialize(options={},&block)
|
78
|
-
|
78
|
+
|
79
|
+
|
79
80
|
@head,@callbacks=RGhost::PsObject.new,RGhost::PsObject.new
|
80
81
|
@head.set RGhost::Load.library(:type)
|
81
82
|
@head.set RGhost::Load.library(:unit)
|
82
|
-
|
83
|
+
#super()
|
83
84
|
@variables=DEFAULT_OPTIONS.dup.merge(options)
|
84
85
|
default_encoding
|
85
86
|
@paper=RGhost::Paper.new(options[:paper] || :A4, options)
|
@@ -90,7 +91,9 @@ class RGhost::Document < RGhost::PsFacade
|
|
90
91
|
@additional_params=[]
|
91
92
|
|
92
93
|
default_variables
|
93
|
-
|
94
|
+
super()
|
95
|
+
#block.call(self) if block
|
96
|
+
#yield self if block
|
94
97
|
end
|
95
98
|
|
96
99
|
def gs_paper #:nodoc:
|
@@ -148,7 +151,7 @@ class RGhost::Document < RGhost::PsFacade
|
|
148
151
|
end
|
149
152
|
|
150
153
|
def ps #:nodoc:
|
151
|
-
done
|
154
|
+
done
|
152
155
|
|
153
156
|
|
154
157
|
|
@@ -251,17 +254,10 @@ class RGhost::Document < RGhost::PsFacade
|
|
251
254
|
# printer.write doc.render_stream(:ps)
|
252
255
|
# printer.close
|
253
256
|
def render_stream(device,options={})
|
254
|
-
# rg=render(device,options)
|
255
|
-
# out=rg.output.readlines.join
|
256
|
-
# rg.clear_output
|
257
|
-
# out
|
258
|
-
|
259
257
|
rg=render(device,options)
|
260
|
-
out=rg.output
|
261
|
-
raise "RGhost::#{rg.errors} - #{out}" if rg.error?
|
262
|
-
data=out.readlines.join
|
258
|
+
out=rg.output.readlines.join
|
263
259
|
rg.clear_output
|
264
|
-
|
260
|
+
out
|
265
261
|
end
|
266
262
|
#Facade to Function.new
|
267
263
|
#Defines low level function to optimize repetitive piece of code.
|
@@ -325,16 +321,16 @@ class RGhost::Document < RGhost::PsFacade
|
|
325
321
|
set RGhost::VirtualPages.new(&block)
|
326
322
|
end
|
327
323
|
{
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
324
|
+
:base => -4,
|
325
|
+
:print => -4,
|
326
|
+
:modify => -8,
|
327
|
+
:copy => -16,
|
328
|
+
:annotate => -32,
|
329
|
+
:interactive => -256,
|
330
|
+
:copy_access => -512,
|
331
|
+
:assemble => -1024,
|
332
|
+
:high_quality_print => -2048,
|
333
|
+
:all => -3904}
|
338
334
|
|
339
335
|
#Security disable the permissions and define passwords to PDF documents.
|
340
336
|
#The password just support set of \w .
|
@@ -366,9 +362,9 @@ class RGhost::Document < RGhost::PsFacade
|
|
366
362
|
# end
|
367
363
|
#
|
368
364
|
def security
|
369
|
-
|
370
|
-
|
371
|
-
|
365
|
+
sec=RGhost::PdfSecurity.new
|
366
|
+
yield sec
|
367
|
+
@additional_params << sec.gs_params
|
372
368
|
end
|
373
369
|
|
374
370
|
#Starts and Ends internal benckmark will write in bottom of page.
|
@@ -454,14 +450,18 @@ class RGhost::Document < RGhost::PsFacade
|
|
454
450
|
|
455
451
|
#Informs is ready to converts/prints
|
456
452
|
def done
|
457
|
-
@done=true
|
458
|
-
raw "\n\n"
|
459
|
-
call :after_page_create
|
460
|
-
call :callback
|
461
|
-
call :after_document_create
|
462
453
|
|
463
|
-
|
464
|
-
|
454
|
+
unless @done
|
455
|
+
@done=true
|
456
|
+
raw "\n\n"
|
457
|
+
call :after_page_create
|
458
|
+
call :callback
|
459
|
+
call :after_document_create
|
460
|
+
|
461
|
+
showpage
|
462
|
+
raw "\n%%EOF"
|
463
|
+
end
|
464
|
+
self
|
465
465
|
end
|
466
466
|
def enable_virtual_pages
|
467
467
|
set RGhost::Variable.new(:has_vp?, true)
|
data/lib/rghost/font.rb
CHANGED
@@ -34,12 +34,9 @@ class RGhost::Font < RGhost::PsObject #:nodoc:
|
|
34
34
|
|
35
35
|
size= o[:size]
|
36
36
|
str_ret+=case size
|
37
|
-
when Hash
|
38
|
-
|
39
|
-
when
|
40
|
-
"/#{@name} findfont [ #{size[0]} 0 0 #{size[1]} 0 0] makefont setfont "
|
41
|
-
when Fixnum
|
42
|
-
"/#{@name} findfont #{size} scalefont setfont "
|
37
|
+
when Hash: "/#{@name} findfont [ #{size[:width]} 0 0 #{size[:height]} 0 0] makefont setfont "
|
38
|
+
when Array: "/#{@name} findfont [ #{size[0]} 0 0 #{size[1]} 0 0] makefont setfont "
|
39
|
+
when Fixnum: "/#{@name} findfont #{size} scalefont setfont "
|
43
40
|
end
|
44
41
|
str_ret
|
45
42
|
end
|
data/lib/rghost/font_map.rb
CHANGED
data/lib/rghost/graphic.rb
CHANGED
data/lib/rghost/image.rb
CHANGED
@@ -13,12 +13,9 @@ class RGhost::Image < RGhost::PsObject
|
|
13
13
|
def self.for(path,options={})
|
14
14
|
|
15
15
|
clazz=case path
|
16
|
-
when /gif$/i
|
17
|
-
|
18
|
-
when /
|
19
|
-
RGhost::Jpeg
|
20
|
-
when /(eps|template)$/i
|
21
|
-
RGhost::Eps
|
16
|
+
when /gif$/i: RGhost::Gif
|
17
|
+
when /jpe?g$/i: RGhost::Jpeg
|
18
|
+
when /(eps|template)$/i : RGhost::Eps
|
22
19
|
else raise NameError.new("Unsupported format")
|
23
20
|
end
|
24
21
|
|
data/lib/rghost/newpath.rb
CHANGED
data/lib/rghost/paper.rb
CHANGED
@@ -87,10 +87,8 @@ class RGhost::Paper < RGhost::PsObject
|
|
87
87
|
|
88
88
|
|
89
89
|
return case RGhost::Config::GS[:unit].new
|
90
|
-
when RGhost::Units::Cm
|
91
|
-
|
92
|
-
when RGhost::Units::Inch
|
93
|
-
(value.to_f*72).to_i
|
90
|
+
when RGhost::Units::Cm: (value.to_f*72/2.545).to_i
|
91
|
+
when RGhost::Units::Inch: (value.to_f*72).to_i
|
94
92
|
else
|
95
93
|
value
|
96
94
|
end
|
@@ -107,10 +105,9 @@ class RGhost::Paper < RGhost::PsObject
|
|
107
105
|
#end
|
108
106
|
|
109
107
|
case @options[:margin]
|
110
|
-
when Numeric
|
111
|
-
|
112
|
-
|
113
|
-
mt=RGhost::Units::parse(@options[:margin][0] || DEFAULT_OPTIONS[:margin_top] )
|
108
|
+
when Numeric: mt=mr=mb=ml=RGhost::Units::parse(@options[:margin])
|
109
|
+
when Array:
|
110
|
+
mt=RGhost::Units::parse(@options[:margin][0] || DEFAULT_OPTIONS[:margin_top] )
|
114
111
|
mr=RGhost::Units::parse(@options[:margin][1] || DEFAULT_OPTIONS[:margin_right])
|
115
112
|
mb=RGhost::Units::parse(@options[:margin][2] || DEFAULT_OPTIONS[:margin_bottom])
|
116
113
|
ml=RGhost::Units::parse(@options[:margin][3] || DEFAULT_OPTIONS[:margin_left] )
|
@@ -127,11 +124,12 @@ class RGhost::Paper < RGhost::PsObject
|
|
127
124
|
def format_paper
|
128
125
|
|
129
126
|
case @paper
|
130
|
-
when Symbol
|
131
|
-
|
127
|
+
when Symbol:
|
128
|
+
|
129
|
+
p=RGhost::Constants::Papers::STANDARD[@paper.to_s.downcase.to_sym]
|
132
130
|
p.reverse! if @options[:landscape]
|
133
131
|
{:rg => "/pagesize #{to_array( p ) } def\n", :gs => p, :done => true}
|
134
|
-
when Array
|
132
|
+
when Array:
|
135
133
|
@paper.reverse! if @options[:landscape]
|
136
134
|
{:rg => "/pagesize #{to_array( @paper.map{|v| to_pt(v) } ) } def\n", :gs => @paper, :done => false}
|
137
135
|
end
|
data/lib/rghost/parse_text.rb
CHANGED
@@ -5,10 +5,10 @@ module RGhost::ParseText #:nodoc:
|
|
5
5
|
|
6
6
|
unless @tag_parse
|
7
7
|
case @options[:text_align]
|
8
|
-
when :center, :right
|
8
|
+
when :center, :right:
|
9
9
|
@text.split(/\n/).map{|l| "#{to_string(l)} :text_proc_cr :nbw " }.to_s
|
10
10
|
jump_with=':nbw'
|
11
|
-
when :left,nil
|
11
|
+
when :left,nil:
|
12
12
|
if self.class == RGhost::Text
|
13
13
|
return @text.split(/\n/).map{|l| " :text #{to_string(l)} :text_proc nrdp " }.to_s
|
14
14
|
|
data/lib/rghost/polygon.rb
CHANGED
@@ -57,7 +57,7 @@ class RGhost::Polygon < RGhost::PsObject
|
|
57
57
|
|
58
58
|
def ps
|
59
59
|
graph=RGhost::Graphic.new
|
60
|
-
graph.set Cursor.moveto(@options)
|
60
|
+
graph.set RGhost::Cursor.moveto(@options)
|
61
61
|
graph.set RGhost::Border.new(@options[:border]) if @options[:border]
|
62
62
|
|
63
63
|
@points.each{|p| graph.set RGhost::Line.rlineto(p) }
|
data/lib/rghost/ps_facade.rb
CHANGED
@@ -1,50 +1,19 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
require "
|
6
|
-
#require "function"
|
7
|
-
require "font"
|
8
|
-
require "cursor"
|
9
|
-
require "show"
|
10
|
-
require "color"
|
11
|
-
require "graphic"
|
12
|
-
#require "arc"
|
13
|
-
require "newpath"
|
14
|
-
require "line"
|
15
|
-
require 'parse_text'
|
16
|
-
require "line_width"
|
17
|
-
require "textarea"
|
18
|
-
require "variable"
|
19
|
-
require "eps"
|
20
|
-
require "jpeg"
|
21
|
-
require "gif"
|
22
|
-
require "text_in"
|
23
|
-
require "text_link_in"
|
24
|
-
require "ruby_ghost_engine"
|
25
|
-
require "convert"
|
26
|
-
require "text"
|
27
|
-
require "dash"
|
28
|
-
require "border"
|
29
|
-
require "shape_content"
|
30
|
-
#require "rectangle"
|
31
|
-
require "vertical_line"
|
32
|
-
require "horizontal_line"
|
33
|
-
require "frame"
|
34
|
-
require "polygon"
|
35
|
-
require "circle"
|
36
|
-
require "how_to"
|
37
|
-
require 'rectangle_link'
|
1
|
+
[:ps_object, :dynamic_document_callback,:static_document_callback, :paper, :load,
|
2
|
+
:cursor,:show, :color, :graphic, :newpath, :line, :parse_text,:line_width, :textarea,
|
3
|
+
:variable, :eps, :jpeg, :gif, :text_in, :text_link_in, :ruby_ghost_engine, :convert,
|
4
|
+
:text, :dash, :border, :shape_content, :vertical_line, :horizontal_line,
|
5
|
+
:frame, :polygon, :circle, :how_to, :rectangle_link].each{|lib| require "rghost/#{lib}" }
|
38
6
|
|
39
7
|
|
40
8
|
#PsFacade is just a big facade involving an instance of most postscript objects.
|
41
9
|
class RGhost::PsFacade < RGhost::PsObject
|
42
10
|
attr_reader :rows
|
43
11
|
|
44
|
-
def initialize(&block)
|
12
|
+
def initialize #(&block)
|
45
13
|
super(""){}
|
46
14
|
@rows=0
|
47
|
-
|
15
|
+
yield self if block_given?
|
16
|
+
#instance_eval(&block) if block
|
48
17
|
end
|
49
18
|
|
50
19
|
#A facade for the method Cursor.next_row
|
@@ -65,13 +34,23 @@ class RGhost::PsFacade < RGhost::PsObject
|
|
65
34
|
end
|
66
35
|
|
67
36
|
#A facade for the class Graphic
|
68
|
-
def graphic(
|
69
|
-
|
37
|
+
def graphic(&block)
|
38
|
+
psfc=RGhost::PsFacade.new
|
39
|
+
yield psfc
|
40
|
+
raw :gsave
|
41
|
+
set psfc
|
42
|
+
raw :grestore
|
43
|
+
|
70
44
|
end
|
71
45
|
|
72
46
|
#A facade for the class NewPath
|
73
47
|
def newpath(&block)
|
74
|
-
|
48
|
+
psfc=RGhost::PsFacade.new
|
49
|
+
yield psfc
|
50
|
+
raw :newpath
|
51
|
+
set psfc
|
52
|
+
raw :closepath
|
53
|
+
#set RGhost::NewPath.new(&block)
|
75
54
|
end
|
76
55
|
|
77
56
|
#A facade for the method Cursor.showpage
|
@@ -54,16 +54,16 @@ class RGhost::Engine
|
|
54
54
|
|
55
55
|
|
56
56
|
case @document
|
57
|
-
when RGhost::Document
|
57
|
+
when RGhost::Document:
|
58
58
|
file_in="#{tmp_filename}.rgin"
|
59
59
|
params.concat @document.gs_paper
|
60
60
|
fi=File.open(file_in,'w')
|
61
61
|
fi.puts @document.ps
|
62
62
|
fi.close
|
63
|
-
when File
|
63
|
+
when File:
|
64
64
|
file_in=@document.path
|
65
65
|
#@delete_input=false unless @options[:debug]
|
66
|
-
when String
|
66
|
+
when String:
|
67
67
|
file_in=@document
|
68
68
|
#@delete_input=false unless @options[:debug]
|
69
69
|
end
|
@@ -87,7 +87,7 @@ class RGhost::Engine
|
|
87
87
|
else
|
88
88
|
if multipage
|
89
89
|
file_out.gsub!(/_%04d/,"_*")
|
90
|
-
@output=Dir.glob(file_out).map { |f|
|
90
|
+
@output=Dir.glob(file_out).map { |f| f }
|
91
91
|
else
|
92
92
|
@output=File.open(file_out)
|
93
93
|
end
|
@@ -103,10 +103,10 @@ class RGhost::Engine
|
|
103
103
|
|
104
104
|
def clear_output
|
105
105
|
case @output
|
106
|
-
when File
|
106
|
+
when File:
|
107
107
|
@output.close
|
108
108
|
File.delete(@output.path)
|
109
|
-
when Array
|
109
|
+
when Array:
|
110
110
|
@output.each do |f|
|
111
111
|
f.close
|
112
112
|
File.delete(f.path)
|
@@ -135,13 +135,13 @@ class RGhost::Engine
|
|
135
135
|
def format_params(v,pre="-d")
|
136
136
|
r=[]
|
137
137
|
case v
|
138
|
-
when Symbol
|
138
|
+
when Symbol:
|
139
139
|
r << "#{pre}#{v}"
|
140
|
-
when Array
|
140
|
+
when Array:
|
141
141
|
v.each do |av|
|
142
142
|
r << format_params(av,pre).to_s
|
143
143
|
end
|
144
|
-
when Hash
|
144
|
+
when Hash:
|
145
145
|
v.each do |k,v|
|
146
146
|
r << "#{pre}#{k}=#{v.to_s.gsub(/ /,'')}"
|
147
147
|
end
|
data/lib/rghost/ruby_to_ps.rb
CHANGED
@@ -21,7 +21,8 @@ module RGhost::RubyToPs
|
|
21
21
|
|
22
22
|
|
23
23
|
def ps_escape(value)
|
24
|
-
value.to_s.gsub(
|
24
|
+
value.to_s.gsub(/\(/,"\050").gsub(/\)/,"\051").gsub(/\\/,"\134")
|
25
|
+
#value.to_s.gsub(/(\(|\)|\\)/,'\\\\\1')
|
25
26
|
end
|
26
27
|
|
27
28
|
def to_bool(value)
|
@@ -38,14 +39,10 @@ module RGhost::RubyToPs
|
|
38
39
|
ps_arr=[]
|
39
40
|
arr.each do |a|
|
40
41
|
ps_arr << case a
|
41
|
-
when TrueClass,FalseClass
|
42
|
-
|
43
|
-
when
|
44
|
-
|
45
|
-
when Proc
|
46
|
-
a.to_s
|
47
|
-
when Array
|
48
|
-
to_array(a)
|
42
|
+
when TrueClass,FalseClass: to_bool(a)
|
43
|
+
when Numeric: a
|
44
|
+
when Proc: a.to_s
|
45
|
+
when Array: to_array(a)
|
49
46
|
else
|
50
47
|
to_string(a.to_s)
|
51
48
|
end
|
@@ -70,8 +67,7 @@ module RGhost::RubyToPs
|
|
70
67
|
tudo=""
|
71
68
|
s.each do |v|
|
72
69
|
case v
|
73
|
-
when
|
74
|
-
tudo << "#{v.gsub(/%/,'')} to_s show "
|
70
|
+
when /^%/: tudo << "#{v.gsub(/%/,'')} to_s show "
|
75
71
|
else
|
76
72
|
tudo << "(#{ps_escape(v)}) show "
|
77
73
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rghost
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shairon Toledo
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-05-30 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|