summaryrefslogtreecommitdiffhomepage
path: root/lib/axlsx/workbook/worksheet/protected_range.rb
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2012-06-20 19:26:25 +0900
committerRandy Morgan <[email protected]>2012-06-20 19:26:25 +0900
commit3d3d8e3aba0c49fe5adef5cf1058c3157314b2b2 (patch)
treed22cda14d33f15646a54195abb7b709741650a47 /lib/axlsx/workbook/worksheet/protected_range.rb
parenteb9e1495c31b74ade95cce3b9e5e4c420d66eb02 (diff)
downloadcaxlsx-3d3d8e3aba0c49fe5adef5cf1058c3157314b2b2.tar.gz
caxlsx-3d3d8e3aba0c49fe5adef5cf1058c3157314b2b2.zip
update examples and the beginings of protected_range
Diffstat (limited to 'lib/axlsx/workbook/worksheet/protected_range.rb')
-rw-r--r--lib/axlsx/workbook/worksheet/protected_range.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/axlsx/workbook/worksheet/protected_range.rb b/lib/axlsx/workbook/worksheet/protected_range.rb
new file mode 100644
index 00000000..feb5eb48
--- /dev/null
+++ b/lib/axlsx/workbook/worksheet/protected_range.rb
@@ -0,0 +1,40 @@
+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
+
+ def sqref=(v)
+ Axlsx.validate_string(v)
+ @sqref = v
+ end
+
+ def name=(v)
+ Axlsx.validate_string(v)
+ @name = v
+ end
+
+ 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