lib/sup/search.rb in sup-0.14.1.1 vs lib/sup/search.rb in sup-0.15.0

- old
+ new

@@ -5,10 +5,12 @@ class SearchManager include Singleton class ExpansionError < StandardError; end + attr_reader :predefined_searches + def initialize fn @fn = fn @searches = {} if File.exists? fn IO.foreach(fn) do |l| @@ -41,27 +43,43 @@ def valid_name? name; name =~ /^[\w-]+$/; end def name_format_hint; "letters, numbers, underscores and dashes only"; end def add name, search_string return unless valid_name? name + if @predefined_searches.has_key? name + warn "cannot add search: #{name} is already taken by a predefined search" + return + end @searches[name] = search_string @modified = true end def rename old, new return unless @searches.has_key? old + if [old, new].any? { |x| @predefined_searches.has_key? x } + warn "cannot rename search: #{old} or #{new} is already taken by a predefined search" + return + end search_string = @searches[old] delete old if add new, search_string end def edit name, search_string return unless @searches.has_key? name + if @predefined_searches.has_key? name + warn "cannot edit predefined search: #{name}." + return + end @searches[name] = search_string @modified = true end def delete name return unless @searches.has_key? name + if @predefined_searches.has_key? name + warn "cannot delete predefined search: #{name}." + return + end @searches.delete name @modified = true end def expand search_string