Class: Taxonifi::Lumper::Clump

Inherits:
Object
  • Object
show all
Defined in:
lib/taxonifi/lumper/clump.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(csv = nil) ⇒ Clump

Returns a new instance of Clump.



13
14
15
16
17
18
# File 'lib/taxonifi/lumper/clump.rb', line 13

def initialize(csv = nil)
  @collections = {}
  @annonymous_collection_index = 0
  @csv = csv if !csv.nil?
  @csv ||= nil
end

Instance Attribute Details

#annonymous_collection_indexObject

Returns the value of attribute annonymous_collection_index.



10
11
12
# File 'lib/taxonifi/lumper/clump.rb', line 10

def annonymous_collection_index
  @annonymous_collection_index
end

#collectionsObject

Returns the value of attribute collections.



9
10
11
# File 'lib/taxonifi/lumper/clump.rb', line 9

def collections
  @collections
end

#csvObject

Returns the value of attribute csv.



11
12
13
# File 'lib/taxonifi/lumper/clump.rb', line 11

def csv
  @csv
end

Class Method Details



98
99
100
101
102
103
104
# File 'lib/taxonifi/lumper/clump.rb', line 98

def self.link_name_collection_and_ref_collection(options = {})
  opt = {
    :nc => Taxonifi::Model::NameCollection.new,
    :rc => Taxonifi::Model::RefCollection.new,
    :by => :row_number
  }
end

Instance Method Details

#add_collection(name = nil, collection = nil) ⇒ Object



87
88
89
90
91
# File 'lib/taxonifi/lumper/clump.rb', line 87

def add_collection(name = nil, collection = nil)
  return false if (name.nil? || collection.nil?)
  return false if @collections.keys.include?(name)
  @collections.merge!(name => collection)
end

#add_csv(csv) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/taxonifi/lumper/clump.rb', line 20

def add_csv(csv)
  if @csv.nil?
    @csv = csv
  else
    return false
  end
end

#add_name_collection(options) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
# File 'lib/taxonifi/lumper/clump.rb', line 75

def add_name_collection(options)
  opts = {
    :name => next_available_collection_name
  }.merge!(options)
  if add_collection(opts[:name],Taxonifi::Model::NameCollection.new(opts))
    increment_annonymous_collection_index if opts[:name] == next_available_collection_name
    true
  else
    false 
  end
end

#add_ref_collection(options) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
# File 'lib/taxonifi/lumper/clump.rb', line 63

def add_ref_collection(options)
  opts = {
    :name => next_available_collection_name
  }.merge!(options)
  if   add_collection(opts[:name],Taxonifi::Model::RefCollection.new(opts))
    increment_annonymous_collection_index if (opts[:name] == next_available_collection_name)
    true
  else
    false
  end
end

#get_from_csv(options = {}) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/taxonifi/lumper/clump.rb', line 37

def get_from_csv(options = {})
  opts = {
    collection: :name
  }.merge!(options) 
  raise if @csv.nil?
  raise if not Taxonifi::Model::Collection.subclass_prefixes.include?(opts[:collection].to_s)

  case opts[:collection]
  when :name
    add_name_collection(opts)
  when :ref
    add_ref_collection(opts)
  else
    raise
  end
end

#increment_annonymous_collection_indexObject



58
59
60
61
# File 'lib/taxonifi/lumper/clump.rb', line 58

def increment_annonymous_collection_index
  @annonymous_collection_index += 1
  true
end


94
95
96
# File 'lib/taxonifi/lumper/clump.rb', line 94

def link(collection1, collection2, link_method)

end

#next_available_collection_nameObject



54
55
56
# File 'lib/taxonifi/lumper/clump.rb', line 54

def next_available_collection_name
  "collection#{annonymous_collection_index}"
end

#remove_csvObject



28
29
30
31
32
33
34
35
# File 'lib/taxonifi/lumper/clump.rb', line 28

def remove_csv
  if !@csv.nil?
    @csv = nil 
    true
  else
    false
  end
end