Class: Mkxms::Mssql::PropertyHandler
- Inherits:
-
Object
- Object
- Mkxms::Mssql::PropertyHandler
- Defined in:
- lib/mkxms/mssql/property_handler.rb
Defined Under Namespace
Modules: ElementHandler
Instance Method Summary collapse
- #handle_text(property_value, node) ⇒ Object
-
#initialize(describable, attrs) ⇒ PropertyHandler
constructor
A new instance of PropertyHandler.
Constructor Details
#initialize(describable, attrs) ⇒ PropertyHandler
Returns a new instance of PropertyHandler.
67 68 69 70 71 |
# File 'lib/mkxms/mssql/property_handler.rb', line 67 def initialize(describable, attrs) @describable = describable @name = attrs['name'] @value_type = attrs['type'].downcase end |
Instance Method Details
#handle_text(property_value, node) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# 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 |