Class: Panomosity::Measure

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/panomosity/measure.rb

Constant Summary collapse

ATTRIBUTES =
[:type, :center, :distances]
DEFAULT_DISTANCE =
100

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils

#calculate_average, #calculate_average_and_std, #remove_outliers

Constructor Details

#initialize(attributes = {}) ⇒ Measure

Returns a new instance of Measure.



13
14
15
16
17
# File 'lib/panomosity/measure.rb', line 13

def initialize(attributes = {})
  @attributes = attributes
  @attributes[:center] ||= {}
  @attributes[:distances] ||= {}
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



10
11
12
# File 'lib/panomosity/measure.rb', line 10

def options
  @options
end

Instance Method Details

#attributesObject



52
53
54
# File 'lib/panomosity/measure.rb', line 52

def attributes
  { type: type, center: center.values, distances: distances.values }
end

#centerObject



31
32
33
# File 'lib/panomosity/measure.rb', line 31

def center
  @attributes[:center]
end

#distance?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/panomosity/measure.rb', line 23

def distance?
  type == :distance
end

#distancesObject



35
36
37
# File 'lib/panomosity/measure.rb', line 35

def distances
  @attributes[:distances]
end

#includes?(*values) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/panomosity/measure.rb', line 48

def includes?(*values)
  center.values.zip(values, distances.values).all? { |center, value, distance| (center - value).abs <= distance }
end

#position?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/panomosity/measure.rb', line 19

def position?
  type == :position
end

#typeObject



27
28
29
# File 'lib/panomosity/measure.rb', line 27

def type
  @attributes[:type]
end

#update(attributes = {}) ⇒ Object



39
40
41
42
# File 'lib/panomosity/measure.rb', line 39

def update(attributes = {})

  @attributes.merge!(attributes)
end

#update_distances(values = {}) ⇒ Object



44
45
46
# File 'lib/panomosity/measure.rb', line 44

def update_distances(values = {})
  @attributes[:distances].merge!(values)
end