Module: Binda::FieldableAssociationHelpers::FieldableImageHelpers
- Included in:
- Binda::FieldableAssociationHelpers
- Defined in:
- app/models/concerns/binda/fieldable_association_helpers/fieldable_image_helpers.rb
Instance Method Summary collapse
-
#bytes_to_megabytes(bytes) ⇒ Object
Convert bytes to megabites.
-
#get_image_dimension(field_slug) ⇒ hash
Get image dimension.
-
#get_image_info(field_slug, size, info) ⇒ string, boolean
Get the object related to that field setting.
-
#get_image_mime_type(field_slug) ⇒ string
Get image type.
-
#get_image_path(field_slug, size = '') ⇒ string
Get the image path based on the size provided, default is Carrierwave default (usually the real size).
-
#get_image_size(field_slug) ⇒ float
Get image size.
-
#get_image_url(field_slug, size = '') ⇒ string
Get the image url based on the size provided, default is Carrierwave default (usually the real size).
-
#has_image(field_slug) ⇒ boolean
Check if the field has an attached image.
Instance Method Details
#bytes_to_megabytes(bytes) ⇒ Object
Convert bytes to megabites
89 90 91 |
# File 'app/models/concerns/binda/fieldable_association_helpers/fieldable_image_helpers.rb', line 89 def bytes_to_megabytes bytes (bytes.to_f / 1.megabyte).round(2) end |
#get_image_dimension(field_slug) ⇒ hash
Get image dimension
83 84 85 86 |
# File 'app/models/concerns/binda/fieldable_association_helpers/fieldable_image_helpers.rb', line 83 def get_image_dimension(field_slug) obj = self.images.find{ |t| t.field_setting_id == FieldSetting.get_id( field_slug ) } return { width: obj.file_width, height: obj.file_height } end |
#get_image_info(field_slug, size, info) ⇒ string, boolean
Get the object related to that field setting
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/models/concerns/binda/fieldable_association_helpers/fieldable_image_helpers.rb', line 47 def get_image_info(field_slug, size, info) obj = self.images.find{ |t| t.field_setting_id == FieldSetting.get_id( field_slug ) } # Alternative query # obj = Image.where(field_setting_id: FieldSetting.get_id( field_slug ), fieldable_id: self.id, fieldable_type: self.class.to_s ).first raise ArgumentError, "There isn't any image associated to the current slug (#{field_slug}) on instance (#{self.class.name} ##{self.id}).", caller if obj.nil? if obj.image.present? && obj.image.respond_to?(size) && %w[thumb].include?(size) obj.image.send(size).send(info) elsif obj.image.present? obj.image.send(info) else raise "Looks like the image you are looking for isn't present. See field setting with slug=\"#{field_slug}\" on component with id=\"self.id\"" end end |
#get_image_mime_type(field_slug) ⇒ string
Get image type
74 75 76 77 |
# File 'app/models/concerns/binda/fieldable_association_helpers/fieldable_image_helpers.rb', line 74 def get_image_mime_type(field_slug) obj = self.images.find{ |t| t.field_setting_id == FieldSetting.get_id( field_slug ) } return obj.content_type end |
#get_image_path(field_slug, size = '') ⇒ string
Get the image path based on the size provided,
default is Carrierwave default (usually the real size)
35 36 37 |
# File 'app/models/concerns/binda/fieldable_association_helpers/fieldable_image_helpers.rb', line 35 def get_image_path(field_slug, size = '') get_image_info( field_slug, size, 'path' ) end |
#get_image_size(field_slug) ⇒ float
Get image size
65 66 67 68 |
# File 'app/models/concerns/binda/fieldable_association_helpers/fieldable_image_helpers.rb', line 65 def get_image_size(field_slug) obj = self.images.find{ |t| t.field_setting_id == FieldSetting.get_id( field_slug ) } return bytes_to_megabytes(obj.file_size) end |
#get_image_url(field_slug, size = '') ⇒ string
Get the image url based on the size provided,
default is Carrierwave default (usually the real size)
24 25 26 |
# File 'app/models/concerns/binda/fieldable_association_helpers/fieldable_image_helpers.rb', line 24 def get_image_url(field_slug, size = '') get_image_info( field_slug, size, 'url' ) end |
#has_image(field_slug) ⇒ boolean
Check if the field has an attached image
9 10 11 12 13 14 15 |
# File 'app/models/concerns/binda/fieldable_association_helpers/fieldable_image_helpers.rb', line 9 def has_image(field_slug) obj = self.images.find{ |t| t.field_setting_id == FieldSetting.get_id( field_slug ) } # Alternative query # obj = Image.where(field_setting_id: FieldSetting.get_id( field_slug ), fieldable_id: self.id, fieldable_type: self.class.to_s ).first raise ArgumentError, "There isn't any image associated to the current slug (#{field_slug}) on instance (#{self.class.name} ##{self.id}).", caller if obj.nil? return obj.image.present? end |