lib/axlsx/drawing/pic.rb in axlsx-1.0.8 vs lib/axlsx/drawing/pic.rb in axlsx-1.0.9
- old
+ new
@@ -8,54 +8,26 @@
# allowed file extenstions
ALLOWED_EXTENSIONS = ['gif', 'jpeg', 'png', 'jpg']
# The name to use for this picture
# @return [String]
- attr_accessor :name
+ attr_reader :name
- # providing access to the anchor's width attribute
- # @param [Integer] v
- # @see OneCellAnchor.width
- attr_accessor :width
- # providing access to update the anchor's height attribute
- # @param [Integer] v
- # @see OneCellAnchor.width
- attr_accessor :height
-
# A description of the picture
# @return [String]
- attr_accessor :descr
+ attr_reader :descr
# The path to the image you want to include
# Only local images are supported at this time and only jpg support
# @return [String]
- attr_accessor :image_src
+ attr_reader :image_src
# The anchor for this image
# @return [OneCellAnchor]
attr_reader :anchor
- # returns the extension of image_src without the preceeding '.'
- # @return [String]
- attr_reader :extname
-
- # The file name of image_src without any path information
- # @return [String]
- attr_reader :file_name
-
- # The part name for this image used in serialization and relationship building
- # @return [String]
- attr_reader :pn
-
- # The index of this image in the workbooks images collections
- # @return [Index]
- attr_reader :index
-
- # The name of the image file, sans directory info
- # @return [String]
- attr_reader :file_name
# Creates a new Pic(ture) object
# @param [Anchor] anchor the anchor that holds this image
# @option options [String] name
# @option options [String] descr
@@ -67,53 +39,73 @@
@anchor = anchor
@anchor.drawing.worksheet.workbook.images << self
options.each do |o|
self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
end
- start_at *options[:start_at] if options[:start_at]
+ start_at(*options[:start_at]) if options[:start_at]
yield self if block_given?
end
def image_src=(v)
Axlsx::validate_string(v)
RestrictionValidator.validate 'Pic.image_src', ALLOWED_EXTENSIONS, File.extname(v).delete('.')
raise ArgumentError, "File does not exist" unless File.exist?(v)
@image_src = v
end
+ # @see name
def name=(v) Axlsx::validate_string(v); @name = v; end
+
+ # @see descr
def descr=(v) Axlsx::validate_string(v); @descr = v; end
+
+ # The file name of image_src without any path information
+ # @return [String]
def file_name
File.basename(image_src) unless image_src.nil?
end
+ # returns the extension of image_src without the preceeding '.'
+ # @return [String]
def extname
File.extname(image_src).delete('.') unless image_src.nil?
end
+ # The index of this image in the workbooks images collections
+ # @return [Index]
def index
@anchor.drawing.worksheet.workbook.images.index(self)
end
-
+
+ # The part name for this image used in serialization and relationship building
+ # @return [String]
def pn
"#{IMAGE_PN % [(index+1), extname]}"
end
+ # providing access to the anchor's width attribute
+ # @param [Integer] v
+ # @see OneCellAnchor.width
def width
@anchor.width
end
+ # @see width
def width=(v)
@anchor.width = v
end
- def height=(v)
- @anchor.height = v
- end
-
+ # providing access to update the anchor's height attribute
+ # @param [Integer] v
+ # @see OneCellAnchor.width
def height
@anchor.height
+ end
+
+ # @see height
+ def height=(v)
+ @anchor.height = v
end
# This is a short cut method to set the start anchor position
# If you need finer granularity in positioning use
# graphic_frame.anchor.from.colOff / rowOff