Constants
QUICK_MODE_DELIMITER | = | ';' |
Public class methods
new
(string_or_array, options={})
Options:
- :quick_mode
- When true enables a quick mode for inputing multiple machine tags under the
same namespace. These machine tags are delimited by QUICK_MODE_DELIMITER.
If a predicate is not specified, default_predicate() is used.
Examples: # Namespace is added to tag 'type=test'. HasMachineTags::TagList.new("gem:name=flog;type=test, user:name=seattlerb", :quick_mode=>true) => ["gem:name=flog", "gem:type=test", "user:name=seattlerb"] # Namespace and default predicate (tags) are added to tag 'git'. HasMachineTags::TagList.new("gem:name=grit;git, user:name=mojombo") => ["gem:name=grit", "gem:tags=git", "user:name=mojombo"]
[show source]
# File lib/has_machine_tags/tag_list.rb, line 21 def initialize(string_or_array, options={}) @options = options array = string_or_array.is_a?(Array) ? string_or_array : string_or_array.split(/\s*#{delimiter}\s*/) array = parse_quick_mode(array) if @options[:quick_mode] concat array end
Public instance methods
non_machine_tags
()
[show source]
# File lib/has_machine_tags/tag_list.rb, line 51 def non_machine_tags self.reject {|e| Tag.machine_tag?(e)} end
to_quick_mode_string
()
Converts tag_list to a stringified version of quick_mode.
[show source]
# File lib/has_machine_tags/tag_list.rb, line 56 def to_quick_mode_string machine_tags = namespace_hashes.map {|namespace, predicate_values| "#{namespace}:" + predicate_values.map {|pred, value| pred == self.default_predicate ? value : "#{pred}#{Tag::VALUE_DELIMITER}#{value}" }.join(QUICK_MODE_DELIMITER) } (machine_tags + non_machine_tags).join("#{delimiter} ") end