Class: Ld4lVirtualCollection::Tag

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/ld4l_virtual_collection/tag.rb

Class Method Summary collapse

Class Method Details

.all(collection, item) ⇒ Object



4
5
6
7
# File 'app/models/ld4l_virtual_collection/tag.rb', line 4

def self.all(collection,item)
  # puts("*** Entering MODEL: all tags")
  self.all_hash(item).to_a
end

.all_hash(target) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'app/models/ld4l_virtual_collection/tag.rb', line 9

def self.all_hash(target)
  # puts("*** Entering MODEL: all tags as hash")
  tags = {}
  target_uri = target.id
  all_annotations_uris = LD4L::OpenAnnotationRDF::Annotation.find_by_target(target_uri)
  all_annotations_uris.each do |uri|
    anno = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
    tags[anno.getTag] = anno    if anno.kind_of?(LD4L::OpenAnnotationRDF::TagAnnotation)
  end
  tags
end

.all_values(target) ⇒ Object



21
22
23
24
# File 'app/models/ld4l_virtual_collection/tag.rb', line 21

def self.all_values(target)
  # puts("*** Entering MODEL: values for all tags")
  self.all_hash(target).keys.join("; ")
end

.destroy(tag) ⇒ Object



84
85
86
# File 'app/models/ld4l_virtual_collection/tag.rb', line 84

def self.destroy(tag)
  # puts("*** Entering MODEL: destroy tag")
end

.find(uri) ⇒ Object



88
89
90
91
# File 'app/models/ld4l_virtual_collection/tag.rb', line 88

def self.find(uri)
  # puts("*** Entering MODEL: find tag")
  LD4L::OpenAnnotationRDF::TagAnnotation.new(uri)
end

.new(collection, item, *params) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'app/models/ld4l_virtual_collection/tag.rb', line 57

def self.new(collection,item,*params)
  # puts("*** Entering MODEL: new tag")
  item_uri = item.id
  item_uri = RDF::URI(item_uri)  unless item_uri.kind_of?(RDF::URI)
  tag = LD4L::OpenAnnotationRDF::TagAnnotation.new(ActiveTriples::LocalName::Minter.generate_local_name(
                                                           LD4L::OpenAnnotationRDF::TagAnnotation, 5, {:prefix=>'n'} ))
  tag.hasTarget = item_uri
  tag_value = params.first[:new_value] if params && params.size > 0 && params.has_key?(:new_value)
  tag.setTag(tag_value)  if tag_value
  tag.setAnnotatedAtNow
  # tag.annotatedBy = p
  tag
end

.update(tag, *params) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
# File 'app/models/ld4l_virtual_collection/tag.rb', line 72

def self.update(tag,*params)
  # puts("*** Entering MODEL: update tag")
  item_uri = params.first[:item_id]
  item_uri = RDF::URI(item_uri)  unless item_uri.kind_of?(RDF::URI)
  tag.hasTarget = item_uri
  tag_value = params.first[:new_value]
  tag.setTag(tag_value)
  tag.setAnnotatedAtNow
  # tag.annotatedBy = p
  tag
end

.update_all(target, *params) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'app/models/ld4l_virtual_collection/tag.rb', line 26

def self.update_all(target,*params)
  # puts("*** Entering MODEL: update_all tags")
  all_anno_hash = self.all_hash(target)

  target_uri = target.id
  target_uri = RDF::URI(target_uri)  unless target_uri.kind_of?(RDF::URI)

  old_tags = params.first[:old_tags]
  new_tags = params.first[:new_tags]

  old_tags = old_tags.split(";").collect { |tag_value| tag_value.strip }
  new_tags = new_tags.split(";").collect { |tag_value| tag_value.strip }

  delete_list = []
  add_list    = []
  old_tags.each { |tag_value| delete_list << tag_value  unless new_tags.include? tag_value }
  new_tags.each { |tag_value| add_list    << tag_value  unless old_tags.include? tag_value }

  delete_list.collect! { |tag_value| all_anno_hash[tag_value] }
  add_list.collect! do |tag_value|
    tag = LD4L::OpenAnnotationRDF::TagAnnotation.new(ActiveTriples::LocalName::Minter.generate_local_name(
                  LD4L::OpenAnnotationRDF::TagAnnotation, 5, {:prefix=>'n'} ))
    tag.hasTarget = target_uri
    tag.setTag(tag_value)
    tag.setAnnotatedAtNow
    # tag.annotatedBy = p
    tag
  end
  { :delete_list => delete_list, :add_list => add_list }
end