| Module | Spreadsheet::Excel::Offset |
| In: |
lib/spreadsheet/excel/offset.rb
|
This module is used to keep track of offsets in modified Excel documents. Considered internal and subject to change without notice.
| changes | [R] | |
| offsets | [R] |
# File lib/spreadsheet/excel/offset.rb, line 16
16: def Offset.append_features mod
17: super
18: mod.module_eval do
19: class << self
20: include Compatibility
21: def offset *keys
22: keys.each do |key|
23: attr_reader key unless instance_methods.include? method_name(key)
24: define_method "#{key}=" do |value|
25: @changes.store key, true
26: instance_variable_set ivar_name(key), value
27: end
28: define_method "set_#{key}" do |value, pos, len|
29: instance_variable_set ivar_name(key), value
30: @offsets.store key, [pos, len]
31: havename = "have_set_#{key}"
32: send(havename, value, pos, len) if respond_to? havename
33: end
34: end
35: end
36: end
37: end
38: end
# File lib/spreadsheet/excel/offset.rb, line 11
11: def initialize *args
12: super
13: @changes = {}
14: @offsets = {}
15: end
# File lib/spreadsheet/excel/offset.rb, line 21
21: def offset *keys
22: keys.each do |key|
23: attr_reader key unless instance_methods.include? method_name(key)
24: define_method "#{key}=" do |value|
25: @changes.store key, true
26: instance_variable_set ivar_name(key), value
27: end
28: define_method "set_#{key}" do |value, pos, len|
29: instance_variable_set ivar_name(key), value
30: @offsets.store key, [pos, len]
31: havename = "have_set_#{key}"
32: send(havename, value, pos, len) if respond_to? havename
33: end
34: end
35: end