Class: Playbook::PbStarRating::StarRating

Inherits:
KitBase
  • Object
show all
Defined in:
app/pb_kits/playbook/pb_star_rating/star_rating.rb

Instance Attribute Summary

Attributes included from Playbook::Props

#values

Instance Method Summary collapse

Methods inherited from KitBase

#object

Methods included from Truncate

included, #truncate_options, #truncate_props, #truncate_values

Methods included from Overflow

included, #overflow_options, #overflow_props, #overflow_values

Methods included from TextAlign

included, #text_align_options, #text_align_props, #text_align_values

Methods included from BorderRadius

#border_radius_options, #border_radius_props, #border_radius_values, included

Methods included from Hover

#hover_attributes, #hover_background_values, #hover_color_values, #hover_options, #hover_props, #hover_scale_values, #hover_shadow_values, #hover_values, included

Methods included from Playbook::Position

included, #position_options, #position_values

Methods included from Order

included, #order_options, #order_props, #order_values

Methods included from FlexShrink

#flex_shrink_options, #flex_shrink_props, #flex_shrink_values, included

Methods included from FlexGrow

#flex_grow_options, #flex_grow_props, #flex_grow_values, included

Methods included from Flex

#flex_options, #flex_props, #flex_values, included

Methods included from AlignSelf

#align_self_options, #align_self_props, #align_self_values, included

Methods included from AlignContent

#align_content_options, #align_content_props, #align_content_values, included

Methods included from AlignItems

#align_items_options, #align_items_props, #align_items_values, included

Methods included from JustifySelf

included, #justify_self_options, #justify_self_props, #justify_self_values

Methods included from JustifyContent

included, #justify_content_options, #justify_content_props, #justify_content_values

Methods included from FlexWrap

#flex_wrap_options, #flex_wrap_props, #flex_wrap_values, included

Methods included from FlexDirection

#flex_direction_options, #flex_direction_props, #flex_direction_values, included

Methods included from Cursor

#cursor_options, #cursor_props, #cursor_values, included

Methods included from Display

#display_options, #display_props, #display_size_values, #display_values, included

Methods included from LineHeight

included, #line_height_options, #line_height_props, #line_height_values

Methods included from Shadow

included, #shadow_options, #shadow_props, #shadow_values

Methods included from NumberSpacing

included, #number_spacing_options, #number_spacing_values

Methods included from ZIndex

included, #screen_size_values, #z_index_options, #z_index_props, #z_index_values

Methods included from Spacing

#break_method_values, included, #max_width_options, #max_width_props, #max_width_values, #screen_size_values, #spacing_options, #spacing_props, #spacing_values

Methods included from Classnames

#generate_classname, #generate_classname_without_spacing, included

Methods included from Playbook::Props

#initialize, #prop

Methods included from Playbook::PbKitHelper

#pb_rails

Methods included from Playbook::PbFormsHelper

#pb_form_with

Instance Method Details

#background_star_colorObject



55
56
57
58
59
60
61
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 55

def background_star_color
  if background_type === "outline"
    dark ? "outline_empty_star_dark" : "outline_empty_star_light"
  else
    dark ? "empty_star_dark" : "empty_star_light"
  end
end

#background_star_pathObject



75
76
77
78
79
80
81
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 75

def background_star_path
  if background_type === "outline"
    "app/pb_kits/playbook/pb_star_rating/stars/star_outline.svg"
  else
    "app/pb_kits/playbook/pb_star_rating/stars/yellow_star.svg"
  end
end

#classnameObject



100
101
102
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 100

def classname
  generate_classname("pb_star_rating_kit")
end

#denominator_styleObject



36
37
38
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 36

def denominator_style
  layout_option == "onestar" ? 1 : denominator
end

#empty_starsObject



40
41
42
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 40

def empty_stars
  (denominator_style - star_count).negative? ? 0 : denominator_style - star_count
end

#one_decimal_ratingObject



28
29
30
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 28

def one_decimal_rating
  rating.to_f.round(1)
end

#star_colorObject



44
45
46
47
48
49
50
51
52
53
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 44

def star_color
  case color_option
  when "yellow"
    "yellow_star"
  when "primary"
    "primary_star"
  when "subtle"
    dark ? "suble_star_dark" : "suble_star_light"
  end
end

#star_countObject



32
33
34
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 32

def star_count
  rating.round > denominator_style ? denominator_style : rating.round
end

#star_svg_pathObject



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 83

def star_svg_path
  case color_option
  when "yellow"
    "app/pb_kits/playbook/pb_star_rating/stars/yellow_star.svg"
  when "primary"
    "app/pb_kits/playbook/pb_star_rating/stars/primary_star.svg"
  when "subtle"
    if dark == true
      "app/pb_kits/playbook/pb_star_rating/stars/subtle_dark_star.svg"
    else
      "app/pb_kits/playbook/pb_star_rating/stars/subtle_star.svg"
    end
  else
    "app/pb_kits/playbook/pb_star_rating/stars/primary_star.svg"
  end
end

#svg_classObject



71
72
73
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 71

def svg_class
  "pb_star_#{size}"
end

#svg_sizeObject



63
64
65
66
67
68
69
# File 'app/pb_kits/playbook/pb_star_rating/star_rating.rb', line 63

def svg_size
  sizes = { "xs": "pb_star_xs",
            "sm": "pb_star_sm",
            "md": "pb_star_md",
            "lg": "pb_star_lg" }
  sizes[size.to_sym]
end