Class: Refinery::Image
- Inherits:
-
Core::BaseModel
- Object
- Core::BaseModel
- Refinery::Image
- Includes:
- Refinery::Images::Validators
- Defined in:
- app/models/refinery/image.rb
Class Method Summary collapse
-
.per_page(dialog = false, has_size_options = false) ⇒ Object
How many images per page should be displayed?.
Instance Method Summary collapse
-
#thumbnail(geometry = nil) ⇒ Object
Get a thumbnail job object given a geometry.
-
#thumbnail_dimensions(geometry) ⇒ Object
Intelligently works out dimensions for a thumbnail of this image based on the Dragonfly geometry string.
-
#title ⇒ Object
Returns a titleized version of the filename my_file.jpg returns My File.
Class Method Details
.per_page(dialog = false, has_size_options = false) ⇒ Object
How many images per page should be displayed?
26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/models/refinery/image.rb', line 26 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
#thumbnail(geometry = nil) ⇒ Object
Get a thumbnail job object given a geometry.
40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/models/refinery/image.rb', line 40 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 |
#thumbnail_dimensions(geometry) ⇒ Object
Intelligently works out dimensions for a thumbnail of this image based on the Dragonfly geometry string.
53 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 |
# File 'app/models/refinery/image.rb', line 53 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 |
#title ⇒ Object
Returns a titleized version of the filename my_file.jpg returns My File
95 96 97 |
# File 'app/models/refinery/image.rb', line 95 def title CGI::unescape(image_name.to_s).gsub(/\.\w+$/, '').titleize end |