module Geotrigger::Model::Taggable

Mixin for Trigger and Device to add tag functionality.

Public Instance Methods

add_tags(*names) click to toggle source

Sets ‘addTags’ in this model’s +@data+ for POSTing to the API via +Model#save+.

device.add_tags 'foo', 'bar'
device.save
# File lib/geotrigger/model.rb, line 111
def add_tags *names
  @data['addTags'] = names.flatten
end
remove_tags(*names) click to toggle source

Sets ‘removeTags’ in this model’s +@data+ for POSTing to the API via +Model#save+.

trigger.remove_tags 'foo', 'bar'
trigger.save
# File lib/geotrigger/model.rb, line 121
def remove_tags *names
  names = names.flatten
  raise ArgumentError.new "default tag prohibited" if names.include? default_tag
  @data['removeTags'] = names
end
tags(params = {}) click to toggle source

Returns this model’s tags as an Array of Tag objects.

# File lib/geotrigger/model.rb, line 101
def tags params = {}
  post_list 'tags', params, tags: @data['tags']
end
tags=(*names) click to toggle source

Sets ‘setTags’ in this model’s +@data+ for POSTing to the API via +Model#save+.

trigger.tags = ['foo', 'bar']
trigger.save
# File lib/geotrigger/model.rb, line 134
def tags= *names
  names = names.flatten
  raise ArgumentError.new "default tag required" unless names.include? default_tag
  @data['setTags'] = names
end