Sha256: e9535857545e8e1a05e5ad1859e9d88d98bb2f96dd2eb98a3440b517a601d649

Contents?: true

Size: 740 Bytes

Versions: 4

Compression:

Stored size: 740 Bytes

Contents

module Adminos::Cropped
  extend ActiveSupport::Concern

  module ClassMethods
    def cropped(as_attribute, *args)
      options = args.extract_options!

      version = options.delete(:version) || :default
      coord_attribute = options.delete(:coord_attribute) || "#{as_attribute}_coord"

      define_method "#{version}_#{as_attribute}_cropped" do
        public_send(as_attribute).variant(combine_options: { crop: public_send("#{version}_#{as_attribute}_coord") })
      end

      define_method "#{version}_#{as_attribute}_attr_coord" do
        coord_attribute
      end

      define_method "#{version}_#{as_attribute}_coord" do
        public_send(public_send("#{version}_#{as_attribute}_attr_coord"))
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
adminos-1.0.0.pre.rc.5 lib/adminos/helpers/models/cropped.rb
adminos-1.0.0.pre.rc.4 lib/adminos/helpers/models/cropped.rb
adminos-1.0.0.pre.rc.3 lib/adminos/helpers/models/cropped.rb
adminos-1.0.0.pre.rc.2 lib/adminos/helpers/models/cropped.rb