belongs_to :project
belongs_to :target, :polymorphic => true
- serialize :data, GitlabSerialize.new
+ # For Hash only
+ serialize :data
scope :recent, order("created_at DESC")
scope :code_push, where(:action => Pushed)
delegate :name, :email, :to => :author, :prefix => true, :allow_nil => true
delegate :title, :to => :issue, :prefix => true, :allow_nil => true
delegate :title, :to => :merge_request, :prefix => true, :allow_nil => true
+
+ def load obj
+ Marshal.load obj
+ end
+
+ def dump obj
+ Marshal.dump obj
+ end
end
# == Schema Information
#
+++ /dev/null
-class GitlabSerialize
- # Called to deserialize data to ruby object.
- def load(data)
- hash = parse_data(data)
- hash = HashWithIndifferentAccess.new(hash) if hash
- hash
- end
-
- def parse_data(data)
- JSON.load(data)
- rescue JSON::ParserError
- begin
- YAML.load(data)
- rescue Psych::SyntaxError
- nil
- end
- end
-
- # Called to convert from ruby object to serialized data.
- def dump(obj)
- JSON.dump(obj)
- end
-end