Class: Primer::Classify

Inherits:
Object
  • Object
show all
Defined in:
lib/primer/classify.rb,
lib/primer/classify/flex.rb,
lib/primer/classify/grid.rb,
lib/primer/classify/cache.rb,
lib/primer/classify/utilities.rb,
lib/primer/classify/validation.rb,
lib/primer/classify/functional_colors.rb,
lib/primer/classify/functional_border_colors.rb,
lib/primer/classify/functional_background_colors.rb

Overview

:nodoc:

Defined Under Namespace

Classes: Cache, Flex, FunctionalBackgroundColors, FunctionalBorderColors, FunctionalColors, Grid, Utilities, Validation

Constant Summary collapse

CONCAT_KEYS =

Keys where we can simply translate { key: value } into “.key-value”

%i[text box_shadow].freeze
BG_KEY =
:bg
TEXT_KEYS =
%i[font_family font_style font_weight text_align text_transform].freeze
BOX_SHADOW_KEY =
:box_shadow
CONTAINER_KEY =
:container
BREAKPOINTS =
["", "-sm", "-md", "-lg", "-xl"].freeze
RESPONSIVE_KEYS =
([Primer::Classify::Grid::COL_KEY] + Primer::Classify::Flex::RESPONSIVE_KEYS).freeze
BOOLEAN_MAPPINGS =
{
  underline: {
    mappings: [
      {
        value: true,
        css_class: "text-underline"
      },
      {
        value: false,
        css_class: "no-underline"
      }
    ]
  },
  top: {
    mappings: [
      {
        value: false,
        css_class: "top-0"
      }
    ]
  },
  bottom: {
    mappings: [
      {
        value: false,
        css_class: "bottom-0"
      }
    ]
  },
  left: {
    mappings: [
      {
        value: false,
        css_class: "left-0"
      }
    ]
  },
  right: {
    mappings: [
      {
        value: false,
        css_class: "right-0"
      }
    ]
  }
}.freeze
BORDER_KEY =
:border
BORDER_COLOR_KEY =
:border_color
BORDER_MARGIN_KEYS =
%i[border_top border_bottom border_left border_right].freeze
BORDER_RADIUS_KEY =
:border_radius
TYPOGRAPHY_KEYS =
[:font_size].freeze
VALID_KEYS =
(
  Primer::Classify::Utilities::UTILITIES.keys +
  CONCAT_KEYS +
  BOOLEAN_MAPPINGS.keys +
  BORDER_MARGIN_KEYS +
  TYPOGRAPHY_KEYS +
  TEXT_KEYS +
  Primer::Classify::Flex::KEYS +
  Primer::Classify::Grid::KEYS +
  [
    BORDER_KEY,
    BORDER_COLOR_KEY,
    BORDER_RADIUS_KEY,
    BG_KEY,
    BOX_SHADOW_KEY,
    CONTAINER_KEY
  ]
).freeze

Class Method Summary collapse

Class Method Details

.call(classes: "", style: nil, **args) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/primer/classify.rb', line 96

def call(classes: "", style: nil, **args)
  extracted_results = extract_hash(args)

  extracted_results[:class] = [
    validated_class_names(classes),
    extracted_results.delete(:classes)
  ].compact.join(" ").strip.presence

  extracted_results[:style] = [
    extracted_results.delete(:styles),
    style
  ].compact.join.presence

  extracted_results
end