Class: TagBobby::TagNames
- Inherits:
-
Object
- Object
- TagBobby::TagNames
- Includes:
- Enumerable
- Defined in:
- lib/tag_bobby/tag_names.rb
Class Method Summary collapse
-
.new_with_names(taggable, names) ⇒ Object
Create a new TagNames object, but clear out existing tags and use the provided set instead.
Instance Method Summary collapse
- #+(array) ⇒ Object
- #-(array) ⇒ Object
- #<<(name) ⇒ Object
- #clear ⇒ Object
- #delete(name) ⇒ Object
- #each(&block) ⇒ Object
-
#initialize(taggable) ⇒ TagNames
constructor
A new instance of TagNames.
- #to_a ⇒ Object
Constructor Details
#initialize(taggable) ⇒ TagNames
Returns a new instance of TagNames.
4 5 6 |
# File 'lib/tag_bobby/tag_names.rb', line 4 def initialize(taggable) @taggable = taggable end |
Class Method Details
.new_with_names(taggable, names) ⇒ Object
Create a new TagNames object, but clear out existing tags and use the provided set instead.
22 23 24 25 26 27 |
# File 'lib/tag_bobby/tag_names.rb', line 22 def self.new_with_names(taggable, names) tag_names = new(taggable) tag_names.clear names.each { |name| tag_names << name } tag_names end |
Instance Method Details
#+(array) ⇒ Object
41 42 43 44 |
# File 'lib/tag_bobby/tag_names.rb', line 41 def +(array) array.each { |name| self.<< name } self end |
#-(array) ⇒ Object
46 47 48 49 |
# File 'lib/tag_bobby/tag_names.rb', line 46 def -(array) array.each { |name| self.delete name } self end |
#<<(name) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/tag_bobby/tag_names.rb', line 12 def <<(name) # find an existing tag, or create a new one tag = TagBobby::Tag.where(:name => name).first || TagBobby::Tag.create(:name => name) taggable. << tag end |
#clear ⇒ Object
29 30 31 |
# File 'lib/tag_bobby/tag_names.rb', line 29 def clear taggable..clear end |
#delete(name) ⇒ Object
37 38 39 |
# File 'lib/tag_bobby/tag_names.rb', line 37 def delete(name) taggable..delete TagBobby::Tag.where(:name => name).first end |
#each(&block) ⇒ Object
33 34 35 |
# File 'lib/tag_bobby/tag_names.rb', line 33 def each(&block) to_a.each &block end |
#to_a ⇒ Object
8 9 10 |
# File 'lib/tag_bobby/tag_names.rb', line 8 def to_a taggable..collect &:name end |