Module: Playbook::FlexShrink
- Included in:
- KitBase
- Defined in:
- lib/playbook/flex_shrink.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#flex_shrink_options ⇒ Object
rubocop:enable Style/IfInsideElse.
-
#flex_shrink_props ⇒ Object
rubocop:disable Style/IfInsideElse.
- #flex_shrink_values ⇒ Object
Class Method Details
.included(base) ⇒ Object
5 6 7 |
# File 'lib/playbook/flex_shrink.rb', line 5 def self.included(base) base.prop :flex_shrink end |
Instance Method Details
#flex_shrink_options ⇒ Object
rubocop:enable Style/IfInsideElse
37 38 39 40 41 |
# File 'lib/playbook/flex_shrink.rb', line 37 def { flex_shrink: "flex_shrink", } end |
#flex_shrink_props ⇒ Object
rubocop:disable Style/IfInsideElse
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/playbook/flex_shrink.rb', line 10 def flex_shrink_props selected_props = .keys.select { |sk| try(sk) } return nil unless selected_props.present? screen_size_values = %w[xs sm md lg xl] selected_props.map do |k| flex_shrink_value = send(k) if flex_shrink_value.is_a?(Hash) class_result = [] # Handle default value separately (generates base class without size prefix) class_result << "flex_shrink_#{flex_shrink_value[:default]}" if flex_shrink_value.key?(:default) && flex_shrink_values.include?(flex_shrink_value[:default].to_s) # Handle responsive sizes (generates classes with size prefix) flex_shrink_value.each do |media_size, shrink_value| class_result << "flex_shrink_#{media_size}_#{shrink_value}" if screen_size_values.include?(media_size.to_s) && flex_shrink_values.include?(shrink_value.to_s) end class_result else "flex_shrink_#{flex_shrink_value}" if flex_shrink_values.include? flex_shrink_value.to_s end end.flatten.compact.join(" ") end |
#flex_shrink_values ⇒ Object
43 44 45 |
# File 'lib/playbook/flex_shrink.rb', line 43 def flex_shrink_values %w[1 0] end |