Class: Rubyhexagon::Post::Sample Private

Inherits:
File
  • Object
show all
Defined in:
lib/rubyhexagon/post/sample.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Class for post preview data. This is mostly an abstraction to have data structures in a more Ruby like nature.

Author:

  • Maxine Michalski

Since:

  • 3.0.0

Instance Attribute Summary

Attributes inherited from File

#ext, #height, #md5, #size, #url, #width

Instance Method Summary collapse

Methods inherited from File

#==, #aspect_ratio, #resolution, #to_hash

Constructor Details

#initialize(sample) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Initializer for an Sample

Parameters:

  • image (Hash)

    preview information

Author:

  • Maxine Michalski

Since:

  • 3.0.0



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/rubyhexagon/post/sample.rb', line 39

def initialize(sample)
  unless sample.is_a?(Hash)
    raise ArgumentError, "#{sample.class} is not a Hash"
  end
  unless sample.keys.sort == %i[has height url width]
    raise ArgumentError, 'Missing keys in sample Hash.'
  end
  sample.each do |k, v|
    if %i[width height has].include?(k)
      instance_variable_set("@#{k}".to_sym, v)
    elsif k == :url
      @url = v.nil? ? nil : URI.parse(v)
    end
  end
end

Instance Method Details

#exist?TrueClass|FalseClass

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Show if post has a sample or not.

Returns:

  • (TrueClass|FalseClass)

Author:

  • Maxine Michalski

Since:

  • 3.0.0



60
61
62
# File 'lib/rubyhexagon/post/sample.rb', line 60

def exist?
  @has
end