Class: Multiplexer

Inherits:
BaseVelocitator show all
Includes:
Helpers
Defined in:
lib/gem_velocity/velocitators/multiplexer.rb

Instance Attribute Summary collapse

Attributes inherited from BaseVelocitator

#date_range, #gem_name, #max_value, #min_value, #versions

Instance Method Summary collapse

Methods included from Helpers

#compute_day_range_from_start_end, #earliest_for, #latest_for, #remove_trailing_x, #time_format_str, #time_format_str_small

Methods inherited from BaseVelocitator

create, #effective_date_range, #effective_days_in_range, #effective_start_time, #graph, #graph_options, #num_downloads, #time_built, #totals_map_by_version

Constructor Details

#initialize(velocitators) ⇒ Multiplexer

Returns a new instance of Multiplexer.



6
7
8
9
10
11
12
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 6

def initialize(velocitators)
  @velocitators = velocitators
  # TODO what if there are multiple gem_names being multiplexed?
  @gem_name = velocitators.first.gem_name
  @versions = velocitators.map(&:versions).flatten
  after_init
end

Instance Attribute Details

#velocitatorsObject (readonly)

Returns the value of attribute velocitators.



4
5
6
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 4

def velocitators
  @velocitators
end

Instance Method Details

#default_startObject



27
28
29
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 27

def default_start
  earliest_for(velocitators.map(&:effective_start_time))
end

#effective_end_timeObject



31
32
33
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 31

def effective_end_time
  latest_for(velocitators.map(&:effective_end_time))
end

#effective_max_valueObject



39
40
41
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 39

def effective_max_value
  velocitators.map(&:effective_max_value).max
end

#effective_min_valueObject



35
36
37
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 35

def effective_min_value
  velocitators.map(&:effective_min_value).min
end

#hide_legend?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 49

def hide_legend?
  false
end

#line_datasObject



43
44
45
46
47
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 43

def line_datas
  velocitators.map do |velocitator|
    velocitator.line_data(effective_start_time, effective_end_time)
  end
end

#rootObject



18
19
20
21
22
23
24
25
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 18

def root
  velocitator_with_root = velocitators.detect{|v| v.root }
  if velocitator_with_root
    velocitator_with_root.root
  else
    Dir.pwd
  end
end

#titleObject



57
58
59
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 57

def title
  "Composite: #{gem_names}"
end

#versionObject



14
15
16
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 14

def version
  raise "The multiplexer does not have a single version. try @versions."
end

#versions_for_legendsObject



53
54
55
# File 'lib/gem_velocity/velocitators/multiplexer.rb', line 53

def versions_for_legends
  velocitators.map(&:version)
end