Sha256: e09f925518b9ad2341e072cb4bf96f4a3f13718450d67248b91337807733c59c
Contents?: true
Size: 1.37 KB
Versions: 2
Compression:
Stored size: 1.37 KB
Contents
module GritterNotices::ActiveRecord ValidMethods = Hash[*GritterNotices::KEYS.map { |key| ["notice_#{key}".to_sym, key] }.flatten] # :level => [:success, :warning, :notice, :error, :progress] def has_gritter_notices has_many :gritter_notices, :as => :owner, :dependent => :delete_all include InstanceMethods end module InstanceMethods # # Examples: # # notice :message=>'asdsad', :image=>:notice # notice 'message', :level=>:success # def notice *args options = args.extract_options! message = args.first || options[:message] options = {:scope=>:gritter_notices}.merge options if message.is_a? Symbol options[:gritter_message_key] = message options[:level] = message unless options[:level] message = I18n::translate(message, options) end options[:level]=:notice unless options[:level] gritter_notices.create! :message=>message, :options=>options end # notice_success # notice_error # notice_warning # notice_progress # notice_notice - default. An alias for `notice` def method_missing(method_name, *args, &block) if level = ValidMethods[method_name] options = args.extract_options! options[:level] = level args << options notice *args else super(method_name, *args, &block) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gritter_notices-0.3.1 | lib/gritter_notices/active_record.rb |
gritter_notices-0.2.0 | lib/gritter_notices/active_record.rb |