Piggy 0.4.2.4 → 0.4.3.0

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.
Files changed (61) hide show
  1. data/CHANGES.txt +15 -0
  2. data/INSTALL.txt +9 -4
  3. data/README.txt +8 -6
  4. data/bin/directory_diff +1 -1
  5. data/bin/ftp_browser +1 -1
  6. data/bin/piggy +1 -1
  7. data/lib/directory_diff.rb +8 -6
  8. data/lib/ftp_browser.rb +8 -6
  9. data/lib/icons/connect.ico +0 -0
  10. data/lib/icons/hide_details.ico +0 -0
  11. data/lib/icons/show_details.ico +0 -0
  12. data/lib/piggy-core/alive_check.rb +4 -4
  13. data/lib/piggy-core/debug.rb +4 -4
  14. data/lib/piggy-core/environment.rb +24 -26
  15. data/lib/piggy-core/exifr_adapter.rb +11 -11
  16. data/lib/piggy-core/file_info.rb +61 -61
  17. data/lib/piggy-core/ftp_adapter.rb +24 -24
  18. data/lib/piggy-core/htmlgen.rb +41 -45
  19. data/lib/piggy-core/nconvert_thumbsgen.rb +22 -22
  20. data/lib/piggy-core/options.rb +25 -19
  21. data/lib/piggy-core/options_persistence.rb +8 -8
  22. data/lib/piggy-core/progress.rb +7 -7
  23. data/lib/piggy-core/rmagick_thumbnail_page_generator.rb +14 -14
  24. data/lib/piggy-core/thumbnail_generator.rb +26 -26
  25. data/lib/piggy-core/thumbnail_page_generator.rb +234 -230
  26. data/lib/piggy-core/upload_info.rb +22 -22
  27. data/lib/piggy-core/version.rb +7 -7
  28. data/lib/piggy-core/winshell.rb +136 -80
  29. data/lib/piggy-gui/dir_chooser.rb +14 -14
  30. data/lib/piggy-gui/directory_diff_widget.rb +177 -160
  31. data/lib/piggy-gui/filtered_file_list.rb +87 -87
  32. data/lib/piggy-gui/fox_thumbsgen.rb +4 -4
  33. data/lib/piggy-gui/ftp_browser_widget.rb +211 -155
  34. data/lib/piggy-gui/fullscreen.rb +4 -4
  35. data/lib/piggy-gui/html_generation_dialog.rb +42 -115
  36. data/lib/piggy-gui/html_options_widget.rb +97 -0
  37. data/lib/piggy-gui/image_processor.rb +58 -58
  38. data/lib/piggy-gui/modal_dialog.rb +11 -5
  39. data/lib/piggy-gui/multiimagecanvas.rb +59 -59
  40. data/lib/piggy-gui/options_dialog.rb +170 -48
  41. data/lib/piggy-gui/piggy_image_browser.rb +382 -340
  42. data/lib/piggy-gui/pipe_log.rb +17 -17
  43. data/lib/piggy-gui/progress_with_dialog.rb +8 -8
  44. data/lib/piggy-gui/require-fox.rb +23 -8
  45. data/lib/piggy.rb +7 -5
  46. data/lib/templates/styles/basic/style.css +16 -14
  47. data/lib/templates/styles/black/style.css +28 -29
  48. data/lib/templates/styles/roundedbox/style.css +28 -31
  49. data/lib/templates/styles/shadow/style.css +26 -26
  50. data/lib/templates/styles/shadow_D9F5F3/style.css +1 -1
  51. data/lib/templates/styles/shadow_black/lo.jpg +0 -0
  52. data/lib/templates/styles/shadow_black/lu.jpg +0 -0
  53. data/lib/templates/styles/shadow_black/ro.jpg +0 -0
  54. data/lib/templates/styles/shadow_black/ru.jpg +0 -0
  55. data/lib/templates/styles/shadow_black/style.css +78 -0
  56. data/lib/templates/styles/shadow_bowers/style.css +48 -51
  57. data/lib/templates/styles/sylvester/sh.png +0 -0
  58. data/lib/templates/styles/sylvester/style.css +74 -0
  59. data/lib/templates/styles/sylvester/wunderkerze.jpg +0 -0
  60. data/test/file_info_test.rb +29 -29
  61. metadata +52 -38
@@ -1,95 +1,92 @@
1
1
  body {
2
- font-family: Helvetica, Arial, sans-serif;
3
- }
4
-
5
- body.thumbs {
6
- text-align: center;
2
+ font-family: Helvetica, Arial, sans-serif;
3
+ text-align: center;
7
4
  }
8
5
 
9
6
  div {
10
- margin:0;
11
- padding:0;
7
+ margin:0;
8
+ padding:0;
12
9
  }
13
10
 
14
- dl {
15
- margin-left: auto;
16
- margin-right: auto;
17
- max-width:600px;
11
+ dl, table.table {
12
+ margin-left: auto;
13
+ margin-right: auto;
14
+ max-width:600px;
18
15
  }
19
16
 
20
17
  /* no max-width in IE < 7 */
21
18
  * html dl {
22
- width: 600px;
19
+ width: 600px;
23
20
  }
24
21
 
25
22
  dd {
26
- margin:0;
27
- padding: 0;
28
- width: 120px;
29
- height: 125px;
30
- float: left;
31
- vertical-align: top;
32
- text-align: center;
23
+ margin:0;
24
+ padding: 0;
25
+ width: 120px;
26
+ height: 125px;
27
+ float: left;
28
+ vertical-align: top;
29
+ text-align: center;
33
30
  }
34
31
 
35
32
  .preview {
36
- float:left;
33
+ float:left;
37
34
  }
38
35
 
39
36
  * html .image_page div {
40
- float: left;
37
+ float: left;
41
38
  }
42
39
 
43
40
  .image_page .navigation div div {
44
- float: left;
45
- width: 100%;
46
- border-bottom: solid 1px Silver;
47
- padding-bottom: 4px;
48
- margin-bottom: 8px;
41
+ float: left;
42
+ width: 100%;
43
+ border-bottom: solid 1px Silver;
44
+ padding-bottom: 4px;
45
+ margin-bottom: 8px;
49
46
  }
50
47
 
51
48
  .image_page .navigation a {
52
- display: block;
53
- float: left;
54
- width: 60px;
55
- margin: 10px;
56
- text-decoration: none;
57
- color: Silver;
58
- font-weight: bold;
49
+ display: block;
50
+ float: left;
51
+ width: 60px;
52
+ margin: 10px;
53
+ text-decoration: none;
54
+ color: Silver;
55
+ font-weight: bold;
59
56
  }
60
57
 
61
58
  .image_page .image {
62
- clear: both;
63
- float: left;
59
+ clear: both;
60
+ float: left;
64
61
  }
65
62
 
66
63
  .image_page .comment p {
67
- padding: 8px;
64
+ padding: 8px;
68
65
  }
69
66
 
70
67
  .thumb, .image_page .image div {
71
- background-image:url("shadow.jpg");
72
- background-position:right bottom;
73
- background-repeat:no-repeat;
68
+ background-image:url("shadow.jpg");
69
+ background-position:right bottom;
70
+ background-repeat:no-repeat;
74
71
  }
75
72
 
76
73
  .thumb p, .image_page .image div div {
77
- margin:0;
78
- padding:0;
79
- background-image:url("shadow-rt.jpg");
80
- background-position:right -80px;
81
- background-repeat:no-repeat;
74
+ margin:0;
75
+ padding:0;
76
+ background-image:url("shadow-rt.jpg");
77
+ background-position:right -80px;
78
+ background-repeat:no-repeat;
82
79
  }
83
80
 
84
81
  .thumb p a, .image_page .image div div p {
85
- display: block;
86
- padding-right:20px;
87
- padding-bottom:20px;
88
- background-image:url("shadow-lb.jpg");
89
- background-position:-80px bottom;
90
- background-repeat:no-repeat;
82
+ display: block;
83
+ padding-right:20px;
84
+ padding-bottom:20px;
85
+ background-image:url("shadow-lb.jpg");
86
+ background-position:-80px bottom;
87
+ background-repeat:no-repeat;
91
88
  }
92
89
 
93
90
  .thumb p a img {
94
- border:none;
91
+ border:none;
95
92
  }
@@ -0,0 +1,74 @@
1
+ body {
2
+ text-align: center;
3
+ color: white;
4
+ background: black;
5
+ }
6
+
7
+ body.thumbs {
8
+ background: black url(wunderkerze.jpg) no-repeat bottom right;
9
+ min-height:600px; /* improves Opera 9 image positioning */
10
+ }
11
+
12
+ a {
13
+ color:yellow;
14
+ }
15
+
16
+ .image_page a {
17
+ margin: 10px;
18
+ }
19
+
20
+ .thumbs dl.table {
21
+ padding-left: 84px;
22
+ }
23
+
24
+ div {
25
+ margin:0;
26
+ padding:0;
27
+ }
28
+
29
+ dl, table.table {
30
+ margin-left: auto;
31
+ margin-right: auto;
32
+ max-width: 600px;
33
+ }
34
+
35
+ /* no max-width in IE < 7 */
36
+ * html dl {
37
+ width: 600px;
38
+ }
39
+
40
+ dd {
41
+ margin: 0px;
42
+ padding: 0;
43
+ width: 108px;
44
+ height: 108px;
45
+ background: url(sh.png) -20px -25px;
46
+ float: left;
47
+ vertical-align: middle;
48
+ text-align: center;
49
+ }
50
+
51
+ .thumb p {
52
+ margin:0;
53
+ padding:0;
54
+ }
55
+
56
+ .thumb p a {
57
+ display: block;
58
+ padding: 0px;
59
+ padding-right: 6px;
60
+ padding-bottom: 6px;
61
+ }
62
+
63
+ .thumb p a img {
64
+ border: solid gray 1px;
65
+ }
66
+
67
+ .image_page img {
68
+ max-width: 100%;
69
+ }
70
+
71
+ /* IE 6 image height */
72
+ * html .thumb p a {
73
+ padding-bottom: 2px;
74
+ }
@@ -5,14 +5,14 @@ require 'test/unit'
5
5
  require 'piggy-core/file_info'
6
6
 
7
7
  class FilePathTest < Test::Unit::TestCase
8
- def test_internPath
9
- assert_equal('C:/', FilePath.internPath('C:'))
10
- assert_equal('C:/', FilePath.internPath("C:\\"))
11
- assert_equal('C:/bla/bla', FilePath.internPath("C:\\bla\\bla"))
12
- assert_equal('C:/bla/bla/', FilePath.internPath("C:\\bla\\bla\\"))
13
-
14
- assert_equal('C:/bla/bla', FilePath.internPath("C:/bla/bla"))
15
- assert_equal('/bla/bla', FilePath.internPath("/bla/bla"))
8
+ def test_intern_path
9
+ assert_equal('C:/', FilePath.intern_path('C:'))
10
+ assert_equal('C:/', FilePath.intern_path("C:\\"))
11
+ assert_equal('C:/bla/bla', FilePath.intern_path("C:\\bla\\bla"))
12
+ assert_equal('C:/bla/bla/', FilePath.intern_path("C:\\bla\\bla\\"))
13
+
14
+ assert_equal('C:/bla/bla', FilePath.intern_path("C:/bla/bla"))
15
+ assert_equal('/bla/bla', FilePath.intern_path("/bla/bla"))
16
16
  end
17
17
 
18
18
  def test_join
@@ -37,7 +37,7 @@ class FilePathTest < Test::Unit::TestCase
37
37
  assert_equal(['C:', 'bla', 'bla'], FilePath.split('C:/bla/bla'))
38
38
  end
39
39
 
40
- def test_oneDirUp
40
+ def test_one_dir_up
41
41
  assert_equal(['C:', 'bla', 'bla'], FilePath.split('C:/bla/bla'))
42
42
  end
43
43
  end
@@ -46,8 +46,8 @@ class FileNameTest < Test::Unit::TestCase
46
46
  def test_c_bla_bla_bla
47
47
  fn = FileName.new('bla')
48
48
  fn.path = "C:\\bla\\bla"
49
- assert_equal('C:/bla/bla/bla', fn.nameWithPath)
50
- assert_equal(['C:', 'bla', 'bla'], fn.pathSections)
49
+ assert_equal('C:/bla/bla/bla', fn.name_with_path)
50
+ assert_equal(['C:', 'bla', 'bla'], fn.path_sections)
51
51
  end
52
52
  end
53
53
 
@@ -55,8 +55,8 @@ class FileInfoTest < Test::Unit::TestCase
55
55
  def test_c_bla_bla_bla
56
56
  fn = FileInfo.new('bla')
57
57
  fn.path = "C:\\bla\\bla"
58
- assert_equal('C:/bla/bla/bla', fn.nameWithPath)
59
- assert_equal(['C:', 'bla', 'bla'], fn.pathSections)
58
+ assert_equal('C:/bla/bla/bla', fn.name_with_path)
59
+ assert_equal(['C:', 'bla', 'bla'], fn.path_sections)
60
60
  end
61
61
 
62
62
  def test_directory
@@ -73,12 +73,12 @@ class DirectoryContentsTest < Test::Unit::TestCase
73
73
  assert_equal([], to.keys)
74
74
  end
75
75
 
76
- def test_directoriesAndFiles
76
+ def test_directories_and_files
77
77
  to = DirectoryContents.new('bla')
78
- fnDir = FileInfo.new('blubbDir')
79
- fnDir.directory!
78
+ fn_dir = FileInfo.new('blubbDir')
79
+ fn_dir.directory!
80
80
  fn = FileInfo.new('blubb')
81
- to.add(fnDir)
81
+ to.add(fn_dir)
82
82
  to.add(fn)
83
83
  assert_equal(['blubbDir'], to.directories)
84
84
  assert_equal(['blubb'], to.files)
@@ -88,10 +88,10 @@ class DirectoryContentsTest < Test::Unit::TestCase
88
88
  def test_duplicates
89
89
  to = DirectoryContents.new('bla')
90
90
  fn = FileInfo.new('blubb')
91
- fnDir = fn.clone
92
- fnDir.directory!
91
+ fn_dir = fn.clone
92
+ fn_dir.directory!
93
93
  to.add(fn)
94
- to.add(fnDir)
94
+ to.add(fn_dir)
95
95
  assert_equal(['blubb'], to.directories)
96
96
  assert_equal([], to.files)
97
97
  assert_equal(['blubb'], to.keys)
@@ -99,18 +99,18 @@ class DirectoryContentsTest < Test::Unit::TestCase
99
99
  end
100
100
 
101
101
  class FileRepositoryTest < Test::Unit::TestCase
102
- def test_smokeTest
102
+ def test_smoke
103
103
  to = FileRepository.new
104
- infArray = Array.new
105
- infArray.push(FileInfo.new('dir1', 'f'))
106
- infArray.push(FileInfo.new('dir2', 'f'))
107
- infArray.push(FileInfo.new('dir2', 'f'))
108
- infArray.push(FileInfo.new('dir', 'f2'))
104
+ inf_array = Array.new
105
+ inf_array.push(FileInfo.new('dir1', 'f'))
106
+ inf_array.push(FileInfo.new('dir2', 'f'))
107
+ inf_array.push(FileInfo.new('dir2', 'f'))
108
+ inf_array.push(FileInfo.new('dir', 'f2'))
109
109
  (0..3).each { |i|
110
- infArray[i].size = i + 1
111
- to.add(infArray[i])
110
+ inf_array[i].size = i + 1
111
+ to.add(inf_array[i])
112
112
  }
113
- assert_equal(infArray[2], to.get(FileName.new('dir2', 'f')))
113
+ assert_equal(inf_array[2], to.get(FileName.new('dir2', 'f')))
114
114
  assert_equal(4, to.get(FileName.new('dir', 'f2')).size)
115
115
  end
116
116
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Piggy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2.4
4
+ version: 0.4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Sascha D\xF6rdelmann"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-07-08 00:00:00 +02:00
12
+ date: 2009-03-04 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -43,9 +43,12 @@ extensions: []
43
43
  extra_rdoc_files: []
44
44
 
45
45
  files:
46
- - LICENCE.txt
47
- - test.rb
48
- - UNINSTALL.txt
46
+ - bin
47
+ - bin/directory_diff
48
+ - bin/ftp_browser
49
+ - bin/piggy
50
+ - CHANGES.txt
51
+ - INSTALL.txt
49
52
  - lib
50
53
  - lib/directory_diff.rb
51
54
  - lib/ftp_browser.rb
@@ -55,6 +58,7 @@ files:
55
58
  - lib/icons/auto-upload-right.ico
56
59
  - lib/icons/back.ico
57
60
  - lib/icons/checked.ico
61
+ - lib/icons/connect.ico
58
62
  - lib/icons/copy.png
59
63
  - lib/icons/cut.png
60
64
  - lib/icons/dir.ico
@@ -62,8 +66,10 @@ files:
62
66
  - lib/icons/file.ico
63
67
  - lib/icons/fileopen.png
64
68
  - lib/icons/filesave.ico
69
+ - lib/icons/fullscreen.ico
65
70
  - lib/icons/gallery.ico
66
71
  - lib/icons/generate.ico
72
+ - lib/icons/hide_details.ico
67
73
  - lib/icons/minus.png
68
74
  - lib/icons/move-right-dir.ico
69
75
  - lib/icons/move-right-file.ico
@@ -76,53 +82,55 @@ files:
76
82
  - lib/icons/reload.ico
77
83
  - lib/icons/remove-selected.ico
78
84
  - lib/icons/rotate.ico
85
+ - lib/icons/show_details.ico
79
86
  - lib/icons/slides.ico
80
87
  - lib/icons/stop-slides.ico
81
88
  - lib/icons/unchecked-dir.ico
82
89
  - lib/icons/unchecked.ico
83
90
  - lib/icons/upload-selected.ico
84
91
  - lib/icons/upload.ico
85
- - lib/icons/fullscreen.ico
86
92
  - lib/piggy-core
87
93
  - lib/piggy-core/alive_check.rb
88
94
  - lib/piggy-core/debug.rb
89
95
  - lib/piggy-core/encoding.rb
90
96
  - lib/piggy-core/environment.rb
97
+ - lib/piggy-core/exifr_adapter.rb
91
98
  - lib/piggy-core/file_info.rb
99
+ - lib/piggy-core/ftp_adapter.rb
92
100
  - lib/piggy-core/htmlgen.rb
101
+ - lib/piggy-core/nconvert_thumbsgen.rb
102
+ - lib/piggy-core/options.rb
93
103
  - lib/piggy-core/options_persistence.rb
94
104
  - lib/piggy-core/progress.rb
95
105
  - lib/piggy-core/rmagick_thumbnail_page_generator.rb
96
106
  - lib/piggy-core/thumbnail_generator.rb
107
+ - lib/piggy-core/thumbnail_page_generator.rb
97
108
  - lib/piggy-core/upload_info.rb
98
109
  - lib/piggy-core/version.rb
99
- - lib/piggy-core/ftp_adapter.rb
100
110
  - lib/piggy-core/winshell.rb
101
- - lib/piggy-core/nconvert_thumbsgen.rb
102
- - lib/piggy-core/exifr_adapter.rb
103
- - lib/piggy-core/options.rb
104
- - lib/piggy-core/thumbnail_page_generator.rb
105
111
  - lib/piggy-gui
106
- - lib/piggy-gui/fox_thumbsgen.rb
107
- - lib/piggy-gui/image_processor.rb
108
- - lib/piggy-gui/multiimagecanvas.rb
109
- - lib/piggy-gui/progress_with_dialog.rb
110
- - lib/piggy-gui/require-fox.rb
111
112
  - lib/piggy-gui/directory_diff_widget.rb
112
- - lib/piggy-gui/ftp_browser_widget.rb
113
- - lib/piggy-gui/options_dialog.rb
114
- - lib/piggy-gui/modal_dialog.rb
115
113
  - lib/piggy-gui/dir_chooser.rb
116
114
  - lib/piggy-gui/filtered_file_list.rb
115
+ - lib/piggy-gui/fox_thumbsgen.rb
116
+ - lib/piggy-gui/ftp_browser_widget.rb
117
117
  - lib/piggy-gui/fullscreen.rb
118
- - lib/piggy-gui/pipe_log.rb
119
- - lib/piggy-gui/piggy_image_browser.rb
120
118
  - lib/piggy-gui/html_generation_dialog.rb
119
+ - lib/piggy-gui/html_options_widget.rb
120
+ - lib/piggy-gui/image_processor.rb
121
+ - lib/piggy-gui/modal_dialog.rb
122
+ - lib/piggy-gui/multiimagecanvas.rb
123
+ - lib/piggy-gui/options_dialog.rb
124
+ - lib/piggy-gui/piggy_image_browser.rb
125
+ - lib/piggy-gui/pipe_log.rb
126
+ - lib/piggy-gui/progress_with_dialog.rb
127
+ - lib/piggy-gui/require-fox.rb
121
128
  - lib/piggy.rb
122
129
  - lib/templates
123
130
  - lib/templates/fuss.htm
124
131
  - lib/templates/kopf.htm
125
132
  - lib/templates/navigation.htm
133
+ - lib/templates/slideshow.htm
126
134
  - lib/templates/slideshow.js
127
135
  - lib/templates/styles
128
136
  - lib/templates/styles/basic
@@ -141,27 +149,33 @@ files:
141
149
  - lib/templates/styles/shadow/ro.gif
142
150
  - lib/templates/styles/shadow/ru.gif
143
151
  - lib/templates/styles/shadow/style.css
144
- - lib/templates/styles/shadow_D9F5F3
145
- - lib/templates/styles/shadow_D9F5F3/style.css
146
- - lib/templates/styles/shadow_D9F5F3/ro.jpg
147
- - lib/templates/styles/shadow_D9F5F3/lu.jpg
148
- - lib/templates/styles/shadow_D9F5F3/ru.jpg
149
- - lib/templates/styles/shadow_D9F5F3/lo.jpg
152
+ - lib/templates/styles/shadow_black
153
+ - lib/templates/styles/shadow_black/lo.jpg
154
+ - lib/templates/styles/shadow_black/lu.jpg
155
+ - lib/templates/styles/shadow_black/ro.jpg
156
+ - lib/templates/styles/shadow_black/ru.jpg
157
+ - lib/templates/styles/shadow_black/style.css
150
158
  - lib/templates/styles/shadow_bowers
151
- - lib/templates/styles/shadow_bowers/shadow.jpg
152
- - lib/templates/styles/shadow_bowers/shadow-rt.jpg
153
159
  - lib/templates/styles/shadow_bowers/shadow-lb.jpg
160
+ - lib/templates/styles/shadow_bowers/shadow-rt.jpg
161
+ - lib/templates/styles/shadow_bowers/shadow.jpg
154
162
  - lib/templates/styles/shadow_bowers/style.css
155
- - lib/templates/slideshow.htm
163
+ - lib/templates/styles/shadow_D9F5F3
164
+ - lib/templates/styles/shadow_D9F5F3/lo.jpg
165
+ - lib/templates/styles/shadow_D9F5F3/lu.jpg
166
+ - lib/templates/styles/shadow_D9F5F3/ro.jpg
167
+ - lib/templates/styles/shadow_D9F5F3/ru.jpg
168
+ - lib/templates/styles/shadow_D9F5F3/style.css
169
+ - lib/templates/styles/sylvester
170
+ - lib/templates/styles/sylvester/sh.png
171
+ - lib/templates/styles/sylvester/style.css
172
+ - lib/templates/styles/sylvester/wunderkerze.jpg
173
+ - LICENCE.txt
174
+ - README.txt
156
175
  - test
157
176
  - test/file_info_test.rb
158
- - bin
159
- - bin/directory_diff
160
- - bin/ftp_browser
161
- - bin/piggy
162
- - INSTALL.txt
163
- - CHANGES.txt
164
- - README.txt
177
+ - test.rb
178
+ - UNINSTALL.txt
165
179
  has_rdoc: true
166
180
  homepage: http://piggy.rubyforge.org
167
181
  post_install_message:
@@ -184,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
198
  requirements: []
185
199
 
186
200
  rubyforge_project:
187
- rubygems_version: 1.2.0
201
+ rubygems_version: 1.3.1
188
202
  signing_key:
189
203
  specification_version: 2
190
204
  summary: (P)ick (i)mages and (g)enerate (g)alleries