class ImageParadise::Identify

Constants

CMD_TO_RUN
#

CMD_TO_RUN

#

Public Class Methods

new( this_image_file = 'test.png', run_already = true ) click to toggle source
#

initialize

#
# File lib/image_paradise/identify.rb, line 29
def initialize(
    this_image_file = 'test.png',
    run_already     = true
  )
  reset
  set_use_this_image_file(this_image_file)
  run if run_already
end

Public Instance Methods

analyze_result() click to toggle source
#

analyze_result

#
# File lib/image_paradise/identify.rb, line 114
def analyze_result
  _ = @use_this_image_file
  if _ and File.exist?(_)
    @result = `#{CMD_TO_RUN} #{_}`
  else
    e 'No file could be found. Please provide a valid '\
      'argument to this class.'
  end
  if @result
    # Next we will scan for useful information.
    @mime_type        = @result.scan(/Mime type:(.+)$/).flatten.first.strip
    @width, @height   = @result.scan(/Geometry:(.+)$/).flatten.first.split('x').map(&:strip)
    @resolution       = @result.scan(/Resolution:(.+)$/).flatten.first.strip
    @background_color = @result.scan(/Background color:(.+)$/).flatten.first.strip
    @quality          = @result.scan(/Quality:(.+)$/).flatten.first.strip
    @colorspace       = @result.scan(/Colorspace:(.+)$/).flatten.first.strip
    report
  end
end
report() click to toggle source
#

report

#
# File lib/image_paradise/identify.rb, line 72
def report
  e
  report_internal_attributes {{ padding: 2 }}
  e
end
report_everything() click to toggle source
#

report_everything

#
# File lib/image_paradise/identify.rb, line 137
def report_everything
  report_internal_attributes
  report_result
end
report_internal_attributes() { || ... } click to toggle source
#

report_internal_attributes

#
# File lib/image_paradise/identify.rb, line 81
def report_internal_attributes
  padding_to_use = ''.dup
  if block_given?
    yielded = yield
    if yielded.is_a? Hash
      # =================================================================== #
      # === :padding
      # =================================================================== #
      if yielded.has_key? :padding
        padding_to_use << ' ' * yielded[:padding]
      end
    end
  end
  n_just = 18
  e steelblue(padding_to_use+'Mime type: '.ljust(n_just))+
    mediumseagreen(@mime_type)
  e steelblue(padding_to_use+'Width: '.ljust(n_just))+
    mediumseagreen(@width)
  e steelblue(padding_to_use+'Height: '.ljust(n_just))+
    mediumseagreen(@height)
  e steelblue(padding_to_use+'Background color: '.ljust(n_just))+
    mediumseagreen(@background_color)
  e steelblue(padding_to_use+'Resolution: '.ljust(n_just))+
    mediumseagreen(@resolution)
  e steelblue(padding_to_use+'Quality: '.ljust(n_just))+
    mediumseagreen(@quality)
  e steelblue(padding_to_use+'Colorspace: '.ljust(n_just))+
    mediumseagreen(@colorspace)
end
report_result() click to toggle source
#

report_result

#
# File lib/image_paradise/identify.rb, line 65
def report_result
  e @result
end
reset() click to toggle source
#

reset

#
# File lib/image_paradise/identify.rb, line 51
def reset
  # ======================================================================= #
  # === @result
  # ======================================================================= #
  @result = nil
  # ======================================================================= #
  # === @colorspace
  # ======================================================================= #
  @colorspace = nil
end
run() click to toggle source
#

run (run tag)

#
# File lib/image_paradise/identify.rb, line 145
def run
  analyze_result
end
set_use_this_image_file(i) click to toggle source
#

set_use_this_image_file

#
# File lib/image_paradise/identify.rb, line 41
def set_use_this_image_file(i)
  if i.is_a? Array
    i = i.first
  end
  @use_this_image_file = i
end