class Mkxms::Mssql::PropertyHandler
Public Class Methods
new(describable, attrs)
click to toggle source
# File lib/mkxms/mssql/property_handler.rb, line 67 def initialize(describable, attrs) @describable = describable @name = attrs['name'] @value_type = attrs['type'].downcase end
Public Instance Methods
handle_text(property_value, node)
click to toggle source
# File lib/mkxms/mssql/property_handler.rb, line 73 def handle_text(property_value, node) stored_value = property_value.dup stored_value = Base64.decode64(stored_value) if @value_type.include? 'binary' stored_value.define_singleton_method( :to_sql_literal, &(case @value_type when 'char', 'varchar', 'uniqueidentifier', 'smalldatetime', 'datetime' ->() {"'#{self}'"} when 'nchar', 'nvarchar' ->() {"N'#{self}'"} when 'binary', 'varbinary' ->() {"0x" + self.bytes.map {|b| "%02x" % b}.join} else ->() {self.to_s} end) ) @describable.extended_properties[@name] = stored_value end