Class: Refinery::Image
- Inherits:
-
Core::BaseModel
- Object
- ActiveRecord::Base
- Core::BaseModel
- Refinery::Image
- Includes:
- Refinery::Images::Validators
- Defined in:
- images/app/models/refinery/image.rb
Class Method Summary (collapse)
-
+ (Object) per_page(dialog = false, has_size_options = false)
How many images per page should be displayed?.
Instance Method Summary (collapse)
-
- (Object) thumbnail(geometry = nil)
Get a thumbnail job object given a geometry.
-
- (Object) thumbnail_dimensions(geometry)
Intelligently works out dimensions for a thumbnail of this image based on the Dragonfly geometry string.
-
- (Object) title
Returns a titleized version of the filename my_file.jpg returns My File.
Class Method Details
+ (Object) per_page(dialog = false, has_size_options = false)
How many images per page should be displayed?
27 28 29 30 31 32 33 34 35 36 37 |
# File 'images/app/models/refinery/image.rb', line 27 def per_page(dialog = false, = false) if dialog unless Images.pages_per_dialog else Images. end else Images.pages_per_admin_index end end |
Instance Method Details
- (Object) thumbnail(geometry = nil)
Get a thumbnail job object given a geometry.
41 42 43 44 45 46 47 48 49 50 51 |
# File 'images/app/models/refinery/image.rb', line 41 def thumbnail(geometry = nil) if geometry.is_a?(Symbol) and Refinery::Images.user_image_sizes.keys.include?(geometry) geometry = Refinery::Images.user_image_sizes[geometry] end if geometry.present? && !geometry.is_a?(Symbol) image.thumb(geometry) else image end end |
- (Object) thumbnail_dimensions(geometry)
Intelligently works out dimensions for a thumbnail of this image based on the Dragonfly geometry string.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'images/app/models/refinery/image.rb', line 54 def thumbnail_dimensions(geometry) geometry = geometry.to_s width = original_width = self.image_width.to_f height = original_height = self.image_height.to_f geometry_width, geometry_height = geometry.split(%r{\#{1,2}|\+|>|!|x}im)[0..1].map(&:to_f) if (original_width * original_height > 0) && geometry =~ ::Dragonfly::ImageMagick::Processor::THUMB_GEOMETRY if geometry =~ ::Dragonfly::ImageMagick::Processor::RESIZE_GEOMETRY if geometry !~ %r{\d+x\d+>} || (geometry =~ %r{\d+x\d+>} && (width > geometry_width.to_f || height > geometry_height.to_f)) # Try scaling with width factor first. (wf = width factor) wf_width = (original_width * (geometry_width / width)).ceil wf_height = (original_height * (geometry_width / width)).ceil # Scale with height factor (hf = height factor) hf_width = (original_width * (geometry_height / height)).ceil hf_height = (original_height * (geometry_height / height)).ceil # Take the highest value that doesn't exceed either axis limit. use_wf = wf_width <= geometry_width && wf_height <= geometry_height if use_wf && hf_width <= geometry_width && hf_height <= geometry_height use_wf = wf_width * wf_height > hf_width * hf_height end if use_wf width = wf_width height = wf_height else width = hf_width height = hf_height end end else # cropping width = geometry_width height = geometry_height end end { :width => width.to_i, :height => height.to_i } end |
- (Object) title
Returns a titleized version of the filename my_file.jpg returns My File
96 97 98 |
# File 'images/app/models/refinery/image.rb', line 96 def title CGI::unescape(image_name.to_s).gsub(/\.\w+$/, '').titleize end |