class ImageGallery2017::Gallery
Attributes
folder[R]
Public Class Methods
new(rsc, filepath: '.', xslfile: '../xsl/index.xslt', schema: 'images[title, folder]/image(original, desktop, preview, ' + 'folder, imgcount, title)', folder: nil, log: nil)
click to toggle source
Calls superclass method
# File lib/imagegallery2017.rb, line 21 def initialize(rsc, filepath: '.', xslfile: '../xsl/index.xslt', schema: 'images[title, folder]/image(original, desktop, preview, ' + 'folder, imgcount, title)', folder: nil, log: nil) @rsc, @wwwpath, @xslfile = [rsc, File.join(filepath, 'www'), xslfile] @log = log a = [@wwwpath, 'images'] a << folder if folder @imagespath = File.join(*a) @log.info 'Gallery/initialize: imagespath: ' + @imagespath.inspect if @log FileUtils.mkdir_p @imagespath dxfilepath = File.join(@imagespath, 'dynarex.xml') if File.exists? dxfilepath then super(dxfilepath) else super(schema) self.order = :descending self.default_key = 'uid' self.title = 'Image gallery' self.xslt = xslfile self.save dxfilepath end if @log then @log.info 'Gallery/initialize: self.summary' + self.summary.inspect end end
Public Instance Methods
add_image(uploaded=nil)
click to toggle source
# File lib/imagegallery2017.rb, line 58 def add_image(uploaded=nil) @log.info 'Gallery/add_image: active' if @log filename = uploaded[:filename].gsub(/ +/,'-') file = File.join(@imagespath, filename) File.write file, uploaded[:tempfile].read preview_file, desktop_file = @rsc.rmagick.resize file, ['140x110','640x480'] h = {original: filename, desktop: desktop_file, preview: preview_file} self.create(h) self.save @log.info 'Gallery/add_image: saved' if @log return preview_file end
delete_image(id)
click to toggle source
# File lib/imagegallery2017.rb, line 79 def delete_image(id) self.delete id end
render()
click to toggle source
# File lib/imagegallery2017.rb, line 83 def render() @log.info 'Gallery/render: active' if @log @log.info 'Gallery/render: self.to_xml' + self.to_xml if @log doc = Nokogiri::XML(self.to_xml) if @log then @log.info "Gallery/render: self.summary: %s" % [self.summary.inspect] end xslt = Nokogiri::XSLT(File.read(File.join(@imagespath, self.summary[:xslt]))) xslt.transform(doc).to_s end