Module: Playbook::Props

Extended by:
ActiveSupport::Concern
Included in:
Playbook::PbAvatar::Avatar, Playbook::PbBadge::Badge, Playbook::PbBarGraph::BarGraph, Playbook::PbBody::Body, Playbook::PbButton::Button, Playbook::PbCaption::Caption, Playbook::PbCard::Card, Playbook::PbCard::CardBody, Playbook::PbCheckbox::Checkbox, Playbook::PbCircleIconButton::CircleIconButton, Playbook::PbContact::Contact, Playbook::PbCurrency::Currency, Playbook::PbDashboardValue::DashboardValue, Playbook::PbDate::Date, Playbook::PbDateRangeInline::DateRangeInline, Playbook::PbDateStacked::DateStacked, Playbook::PbDateYearStacked::DateYearStacked, Playbook::PbDistributionBar::DistributionBar, Playbook::PbFixedConfirmationToast::FixedConfirmationToast, Playbook::PbForm::Form, Playbook::PbHashtag::Hashtag, Playbook::PbHomeAddressStreet::HomeAddressStreet, Playbook::PbIcon::Icon, Playbook::PbIconCircle::IconCircle, Playbook::PbIconValue::IconValue, Playbook::PbImage::Image, Playbook::PbLabelPill::LabelPill, Playbook::PbLabelValue::LabelValue, Playbook::PbLayout::Body, Playbook::PbLayout::Layout, Playbook::PbLayout::Sidebar, Playbook::PbLegend::Legend, Playbook::PbLineGraph::LineGraph, Playbook::PbList::Item, Playbook::PbList::List, Playbook::PbLoadingInline::LoadingInline, Playbook::PbMessage::Message, Playbook::PbMultipleUsers::MultipleUsers, Playbook::PbMultipleUsersStacked::MultipleUsersStacked, Playbook::PbNav::Item, Playbook::PbNav::Nav, Playbook::PbOnlineStatus::OnlineStatus, Playbook::PbPerson::Person, Playbook::PbPersonContact::PersonContact, Playbook::PbPill::Pill, Playbook::PbPopover::Popover, Playbook::PbProgressPills::ProgressPills, Playbook::PbProgressSimple::ProgressSimple, Playbook::PbRadio::Radio, Playbook::PbSectionSeparator::SectionSeparator, Playbook::PbSelect::Select, Playbook::PbSelectableCard::SelectableCard, Playbook::PbSource::Source, Playbook::PbStarRating::StarRating, Playbook::PbStatChange::StatChange, Playbook::PbStatValue::StatValue, Playbook::PbTable::Table, Playbook::PbTextInput::TextInput, Playbook::PbTextarea::Textarea, Playbook::PbTime::Time, Playbook::PbTimestamp::Timestamp, Playbook::PbTitle::Title, Playbook::PbTitleCount::TitleCount, Playbook::PbTitleDetail::TitleDetail, Playbook::PbToggle::Toggle, Playbook::PbTypeahead::Typeahead, Playbook::PbUser::User, Playbook::PbUserBadge::UserBadge
Defined in:
app/pb_kits/playbook/props.rb,
app/pb_kits/playbook/props/base.rb,
app/pb_kits/playbook/props/date.rb,
app/pb_kits/playbook/props/enum.rb,
app/pb_kits/playbook/props/hash.rb,
app/pb_kits/playbook/props/proc.rb,
app/pb_kits/playbook/props/array.rb,
app/pb_kits/playbook/props/number.rb,
app/pb_kits/playbook/props/string.rb,
app/pb_kits/playbook/props/boolean.rb,
app/pb_kits/playbook/props/numeric.rb,
app/pb_kits/playbook/props/hash_array.rb,
app/pb_kits/playbook/props/percentage.rb,
app/pb_kits/playbook/props/number_array.rb

Defined Under Namespace

Classes: Array, Base, Boolean, Date, Enum, Error, Hash, HashArray, Number, NumberArray, Numeric, Percentage, Proc, String

Instance Method Summary collapse

Instance Method Details

#generate_classname(*name_parts, separator: "_") ⇒ Object



36
37
38
39
40
41
# File 'app/pb_kits/playbook/props.rb', line 36

def generate_classname(*name_parts, separator: "_")
  [
    name_parts.compact.join(separator),
    prop(:classname),
  ].compact.join(" ")
end

#initialize(prop_values = {}, &block) ⇒ Object



25
26
27
28
29
30
# File 'app/pb_kits/playbook/props.rb', line 25

def initialize(prop_values = {}, &block)
  self.values = { children: block }.merge(Hash(prop_values))
  self.class.props.each do |key, definition|
    definition.validate! values[key]
  end
end

#prop(name) ⇒ Object



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

def prop(name)
  self.class.props[name].value values[name]
end