imagegallery2017 0.1.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c64866d24daa270f45c2d7386f42e0220a234ea6
4
+ data.tar.gz: d06228379b691a7e07d96bd0d2877e5aa7d73980
5
+ SHA512:
6
+ metadata.gz: ea97d10774269fb72314f9f2ee984b01b0854c9596f73d528127ae8d0e2f8c8eb4f65237c4b306820e1f34cac9bfc231c261b14832f47c42a996562ab4962043
7
+ data.tar.gz: 9eac57300a679e1ca246c26d2c48dddbb43a53f769bd927530ba4b2e6ab556121d0d314deb0acf43cc59da7d3815f060e81ae64527044113548d4d404e46f6d8
checksums.yaml.gz.sig ADDED
@@ -0,0 +1 @@
1
+ ����ԂS*5)���o'�9�j |+��-���<�ۧ͘��W�5��J��$оC�ޕݥ�N���9w���Y��.@�������ux��t6�!�
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: imagegallery2017.rb
4
+
5
+ # description: This is just a personal project on how I'm building an
6
+ # image gallery which uses XML to store filenames and an
7
+ # external DRb service to process images. It's designed
8
+ # to be used with Rack.
9
+
10
+ require 'dynarex'
11
+ require 'nokogiri'
12
+ require 'fileutils'
13
+
14
+
15
+ class ImageGallery2017
16
+
17
+ class Gallery < Dynarex
18
+
19
+ attr_reader :folder
20
+
21
+ def initialize(rsc, filepath: '.', xslfile: 'index.xslt',
22
+ schema: nil, title: nil)
23
+
24
+ @rsc = rsc
25
+ @wwwpath = File.join(filepath, 'www')
26
+ @xslfile = xslfile
27
+
28
+ @folder = ''
29
+
30
+ a = [@wwwpath, 'images']
31
+
32
+ if title then
33
+
34
+ @folder = title.downcase.gsub(/\W/,'-').gsub(/-{2,}/,'-')\
35
+ .gsub(/^-|-$/,'')
36
+
37
+ a << @folder
38
+
39
+ end
40
+
41
+ @imagespath = File.join(*a)
42
+
43
+ FileUtils.mkdir_p @imagespath
44
+
45
+ dxfilepath = File.join(@imagespath, 'dynarex.xml')
46
+
47
+ if schema then
48
+
49
+ super(schema)
50
+ self.order = :descending
51
+ self.title = title || 'Image gallery'
52
+ self.summary[:folder] = @folder
53
+ self.save dxfilepath
54
+
55
+ else
56
+ super(dxfilepath)
57
+ end
58
+
59
+ end
60
+
61
+ def add_entry(uploaded)
62
+
63
+ filename = uploaded[:filename]
64
+ file = File.join(@imagespath, filename)
65
+ File.write file, uploaded[:tempfile].read
66
+
67
+ preview_file, desktop_file = @rsc.rmagick.resize file,
68
+ ['140x110','640x480']
69
+
70
+ h = {original: filename, desktop: desktop_file,
71
+ preview: preview_file}
72
+
73
+ self.create(h)
74
+ self.save
75
+ end
76
+
77
+ def render()
78
+
79
+ doc = Nokogiri::XML(self.to_xml)
80
+ xslt = Nokogiri::XSLT(File.read(File.join(@wwwpath, @xslfile)))
81
+ xslt.transform(doc).to_s
82
+
83
+ end
84
+
85
+ end
86
+
87
+ class IndexGallery < Gallery
88
+
89
+ def initialize(rsc, filepath: '.')
90
+
91
+ FileUtils.mkdir_p File.join(filepath, 'www','images')
92
+ FileUtils.mkdir_p File.join(filepath, 'www','xsl')
93
+ super(rsc, filepath: filepath, schema: 'images[title, folder]/image' +
94
+ '(original, desktop, preview)')
95
+
96
+ end
97
+
98
+ def modify_entry(id)
99
+ #self.find_by_id()
100
+ end
101
+
102
+ def render()
103
+
104
+ File.write File.join(@wwwpath, 'index.html'), super()
105
+
106
+ end
107
+
108
+ end
109
+
110
+ attr_reader :index, :gallery
111
+
112
+ def initialize(rsc, basepath='.')
113
+
114
+ @basepath, @rsc = basepath, rsc
115
+ @index = IndexGallery.new rsc, filepath: @basepath
116
+
117
+ end
118
+
119
+ def add_entry(params)
120
+ @index.add_entry params
121
+ end
122
+
123
+ def create_folder(title)
124
+
125
+ fg = Gallery.new @rsc, schema: 'images[title, folder]/image(original, ' +
126
+ 'desktop, preview)', filepath: @basepath, title: title,
127
+ xslfile: 'images.xsl'
128
+
129
+ @gallery[fg.folder] = fg
130
+
131
+ end
132
+ end
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: imagegallery2017
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTE3MTEyNjIyMzgxMVoXDTE4MTEyNjIyMzgxMVowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBALmKqRFDoROi/Y1nBmZd2iSSE9JEftb2QyQKDydXilQbHqolAHzDvkNDW+QH
19
+ H1FcoH1SLn0JX1EUUeeVMbJwFaIvpyQPEt4IqZn/lRigvZqw2B+gslMv/tp/9Zo2
20
+ CwiNyQySH4BsQ2fd0o1atycv49o9OQCsIqyqMFWm1oXgCw5FgW+UTrBWwIfProSG
21
+ Gb/o2nJrT3inwcNxWMFN0axUWG/V2rbHupM+JV1PA5aRC+vRijgZyX8JMSaJ0og8
22
+ q3f5tP3Ve6bcEz7iu1EksEPrafSickU1bGIZtrX3yBswjxZFp8xPVeSWcje2W6l0
23
+ T9Whkj7jzqFeX41zjTQmoYyDh40CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUc31kagMvnrH6RjVpP644nRtDtdIwJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAHGO1w5+g
27
+ JOtbtcA+ZMt0rsnUM6nSXPjOOcrUVu2tyxI315QXlSdacpRXulmQlyP4LGTUkuDp
28
+ yPgKHveaPdxAGYBHBJ4dwxoFruXq/5JuuD6/8YEAUEWC8BqZSNEvylgVMi+gAfXd
29
+ VtjDcJZdilPhknIADvLv9qNsiu07DqyJWpZ587QoYlnRcFUT/rDTLBAejpWB/8ke
30
+ 9SEtob04Aw9pQ6JhqOzpltW5VbIWL0sLsrrRaOFnF4Y/l5DtzcJu5rd0DlduLpbj
31
+ VTkGIYZRz9NszbK5QM45fZIG1TtUO/QILU1lyb56RusdsPUAQy5qdHcWSkqbU1i4
32
+ pVP5LTt/M0l+og==
33
+ -----END CERTIFICATE-----
34
+ date: 2017-11-26 00:00:00.000000000 Z
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: dynarex
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.7'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 1.7.26
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '1.7'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 1.7.26
56
+ - !ruby/object:Gem::Dependency
57
+ name: nokogiri
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.8'
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 1.8.1
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '1.8'
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 1.8.1
76
+ description:
77
+ email: james@jamesrobertson.eu
78
+ executables: []
79
+ extensions: []
80
+ extra_rdoc_files: []
81
+ files:
82
+ - lib/imagegallery2017.rb
83
+ homepage: https://github.com/jrobertson/imagegallery2017
84
+ licenses:
85
+ - MIT
86
+ metadata: {}
87
+ post_install_message:
88
+ rdoc_options: []
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ requirements: []
102
+ rubyforge_project:
103
+ rubygems_version: 2.6.13
104
+ signing_key:
105
+ specification_version: 4
106
+ summary: An experimental personal project to build a basic ImageGallery. Uses an external
107
+ object for processing images sizes.
108
+ test_files: []
metadata.gz.sig ADDED
@@ -0,0 +1 @@
1
+ B��$��@�]��K�1}- �L!o�`�Wt�b����2ꐁ�c' ��u���!�F8x��02� ����[AY��I�)S�!;��*ҕ6��+V��BF��y�ۇ�`����]$Y? >�4��ØBz�s|+KP��jV��٬s�0r8�o�w�����W�P���}��]�A��`A ��W@s}p`_�q`�ȶ���W��ZuF�R�p�͐�޹$��oU-���Mt�/�^?�z�q���/�E|9�&��ȑ�