class WordPress::Options
Public Instance Methods
[](key)
click to toggle source
# File lib/wordpress/options.rb, line 6 def [](key) v = nil @conn.query("SELECT `option_value` FROM `#{@tbl[:options]}` WHERE `option_name`='#{@conn.escape key}' LIMIT 1").each do |row| v = row[:option_value] end # Apply out-filters if v if v[0, 1] == 'a' and v[-1, 1] == '}' # PHP-serialized array v = PHP.unserialize v end end v end
[]=(key, value)
click to toggle source
# File lib/wordpress/options.rb, line 21 def []=(key, value) # Apply in-filters if value.kind_of?(Hash) or value.kind_of?(Array) value = PHP.serialize value end old_value = self[key] if !value.nil? and !old_value.nil? and value != old_value # Update operation. @conn.query("UPDATE `#{@tbl[:options]}` SET `option_value`='#{@conn.escape value}' WHERE `option_name`='#{@conn.escape key}'") elsif value.nil? and !old_value.nil? # New value nil, old value not. Delete operation. @conn.query("DELETE FROM `#{@tbl[:options]}` WHERE `option_name`='#{@conn.escape key}'") elsif !value.nil? and old_value.nil? # New value non-nil, old value nil. Insert operation. @conn.query("INSERT INTO `#{@tbl[:options]}` (`option_name`, `option_value`, `autoload`) VALUES ('#{@conn.escape key}', '#{@conn.escape value.to_s}', 'no')") end value end