Class: Flms::Layer

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/flms/layer.rb

Constant Summary collapse

EASING_FUNCTIONS =
%w(linear begin end quadratic cubic swing sqrt outCubic bounce)
IMAGE_DISPLAY_MODES =
%w(contain cover)

Instance Method Summary collapse

Instance Method Details

#build_default_keyframesObject



39
40
41
42
43
44
# File 'app/models/flms/layer.rb', line 39

def build_default_keyframes
  self.start_state_keyframe ||= build_start_state_keyframe(layer: self)
  self.target_state_keyframe ||= build_target_state_keyframe(layer: self)
  self.end_state_keyframe ||= build_end_state_keyframe(layer: self)
  self
end

#calculate_scroll_startsObject



61
62
63
64
# File 'app/models/flms/layer.rb', line 61

def calculate_scroll_starts
  target_state_keyframe.scroll_start = start_state_keyframe.scroll_start + start_state_keyframe.scroll_duration
  end_state_keyframe.scroll_start = target_state_keyframe.scroll_start + target_state_keyframe.scroll_duration
end

#height_percentObject



75
76
77
78
# File 'app/models/flms/layer.rb', line 75

def height_percent
  # It's ok for a layer to have an undefined height, so account for that here:
  self.height ? (self.height * 100).to_i : nil
end

#height_percent=(val) ⇒ Object



80
81
82
# File 'app/models/flms/layer.rb', line 80

def height_percent= val
  self.height = val.to_i / 100.0
end

#keyframesObject



46
47
48
# File 'app/models/flms/layer.rb', line 46

def keyframes
  [ start_state_keyframe, target_state_keyframe, end_state_keyframe ]
end

#scroll_endObject



54
55
56
57
58
59
# File 'app/models/flms/layer.rb', line 54

def scroll_end
  start_state_keyframe.scroll_start +
      start_state_keyframe.scroll_duration +
      target_state_keyframe.scroll_duration +
      end_state_keyframe.scroll_duration
end

#scroll_startObject



50
51
52
# File 'app/models/flms/layer.rb', line 50

def scroll_start
  start_state_keyframe.scroll_start
end

#view_objectObject



35
36
37
# File 'app/models/flms/layer.rb', line 35

def view_object
  @view_object ||= Flms::LayerViewObject.new(self)
end

#width_percentObject



66
67
68
69
# File 'app/models/flms/layer.rb', line 66

def width_percent
  # It's ok for a layer to have an undefined width, so account for that here:
  self.width ? (self.width * 100).to_i : nil
end

#width_percent=(val) ⇒ Object



71
72
73
# File 'app/models/flms/layer.rb', line 71

def width_percent= val
  self.width = val.to_i / 100.0
end