Sha256: 3c5adc77e9058eb887877e013a44f30ed2f28ca621241c786328f539a719d2e7

Contents?: true

Size: 1.47 KB

Versions: 6

Compression:

Stored size: 1.47 KB

Contents

module Axlsx
  # The Protected Range class represents a set of cells in the worksheet
  # @note the recommended way to manage protected ranges with via Worksheet#protect_range
  # @see Worksheet#protect_range
  class ProtectedRange

    # The reference for the protected range
    # @return [String]
    attr_reader :sqref

    # The name of the protected range
    # @return [String]
    attr_reader :name

    # Initializes a new protected range object
    # @option [String] sqref The cell range reference to protect. This can be an absolute or a relateve range however, it only applies to the current sheet.
    # @option [String] name An optional name for the protected name.
    def initialize(options={})
      options.each do |o|
        self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
      end
      yield self if block_given?
    end
    
    # @see sqref
    def sqref=(v)
      Axlsx.validate_string(v)
      @sqref = v
    end

    # @see name
    def name=(v)
      Axlsx.validate_string(v)
      @name = v
    end
   
    # serializes the proteted range
    # @param [String] str if this string object is provided we append
    # our output to that object. Use this - it helps limit the number of
    # objects created during serialization
    def to_xml_string(str="")
      attrs = self.instance_values.reject{ |key, value| value == nil }
      str << '<protectedRange ' << attrs.map { |key, value| '' << key << '="' << value.to_s << '"' }.join(' ') << '/>'
    end 
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
axlsx-1.3.1 lib/axlsx/workbook/worksheet/protected_range.rb
axlsx-1.2.3 lib/axlsx/workbook/worksheet/protected_range.rb
axlsx-1.2.2 lib/axlsx/workbook/worksheet/protected_range.rb
axlsx-1.2.1 lib/axlsx/workbook/worksheet/protected_range.rb
axlsx-1.2.0 lib/axlsx/workbook/worksheet/protected_range.rb
axlsx-1.1.8 lib/axlsx/workbook/worksheet/protected_range.rb