Method: Format#method_missing

Defined in:
lib/WriteExcel/format.rb

#method_missing(name, *args) ⇒ Object

Dynamically create set methods that aren’t already defined.



1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
# File 'lib/WriteExcel/format.rb', line 1078

def method_missing(name, *args)
  # -- original perl comment --

  # There are two types of set methods: set_property() and

  # set_property_color(). When a method is AUTOLOADED we store a new anonymous

  # sub in the appropriate slot in the symbol table. The speeds up subsequent

  # calls to the same method.


  method = "#{name}"

  # Check for a valid method names, i.e. "set_xxx_yyy".

  method =~ /set_(\w+)/ or raise "Unknown method: #{method}\n"

  # Match the attribute, i.e. "@xxx_yyy".

  attribute = "@#{$1}"

  # Check that the attribute exists

  # ........

  if method =~ /set\w+color$/    # for "set_property_color" methods

    value = get_color(args[0])
  else                            # for "set_xxx" methods

    value = args[0].nil? ? 1 : args[0]
  end
  if value.kind_of?(String)
    s = "#{attribute} = \"#{value.to_s}\""
  else
    s = "#{attribute} =   #{value.to_s}"
  end
  eval s
end