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(options = {}) ⇒ Object
Get a thumbnail job object given a geometry and whether to strip image profiles and comments.
-
#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(options = {}) ⇒ Object
Get a thumbnail job object given a geometry and whether to strip image profiles and comments.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/models/refinery/image.rb', line 40 def thumbnail( = {}) if .is_a?(String) || .is_a?(Symbol) Refinery.deprecate 'Refinery::Image#thumbnail(geometry)', :when => '2.2', :replacement => 'Refinery::Image#thumbnail(:geometry => value)' = { :geometry => } end = { :geometry => :no_geometry, :strip => true }.merge() geometry = convert_to_geometry([:geometry]) thumbnail = image thumbnail = thumbnail.thumb(geometry) unless geometry.is_a?(Symbol) thumbnail = thumbnail.strip if [:strip] thumbnail end |
#thumbnail_dimensions(geometry) ⇒ Object
Intelligently works out dimensions for a thumbnail of this image based on the Dragonfly geometry string.
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 93 94 95 96 97 98 99 100 |
# File 'app/models/refinery/image.rb', line 57 def thumbnail_dimensions(geometry) geometry = if geometry.is_a?(Symbol) && Refinery::Images.user_image_sizes.keys.include?(geometry) Refinery::Images.user_image_sizes[geometry] else geometry.to_s end 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) && ::Dragonfly::ImageMagick::Processor::THUMB_GEOMETRY === geometry if ::Dragonfly::ImageMagick::Processor::RESIZE_GEOMETRY === geometry if geometry !~ %r{\d+x\d+>} || (%r{\d+x\d+>} === geometry && (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).round wf_height = (original_height * geometry_width / width).round # Scale with height factor (hf = height factor) hf_width = (original_width * geometry_height / height).round hf_height = (original_height * geometry_height / height).round # 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
104 105 106 |
# File 'app/models/refinery/image.rb', line 104 def title CGI::unescape(image_name.to_s).gsub(/\.\w+$/, '').titleize end |