app/models/whoops/event.rb in whoops-0.0.5 vs app/models/whoops/event.rb in whoops-0.1.0

- old
+ new

@@ -3,14 +3,17 @@ include FieldNames belongs_to :event_group, :class_name => "Whoops::EventGroup" field :details + field :keywords, :type => String field :message, :type => String field :event_time, :type => DateTime + + validates_presence_of :message - validates_presence_of :message + before_save :set_keywords def self.record(params) params = params.with_indifferent_access event_group_params = params.slice(*Whoops::EventGroup.field_names) @@ -28,10 +31,34 @@ event_params = params.slice(*Whoops::Event.field_names) event_group.events.create(event_params) end def self.search(query) - conditions = Whoops::SearchParser.new(query).mongoid_conditions + conditions = Whoops::MongoidSearchParser.new(query).conditions where(conditions) end + def set_keywords + keywords_array = [] + keywords_array << self.message + add_details_to_keywords(keywords_array) + self.keywords = keywords_array.join(" ") + end + + private + + def add_details_to_keywords(keywords_array) + flattened = details.to_a.flatten + flattened -= details.keys if details.respond_to?(:keys) + + until flattened.empty? + non_hash = flattened.select{ |i| !i.is_a?(Hash) } + keywords_array.replace(keywords_array | non_hash) + flattened -= non_hash + + flattened.collect! do |i| + i.to_a.flatten - i.keys + end.flatten! + end + + end end \ No newline at end of file