Class: BerkeleyLibrary::Util::ODS::XML::Style::Family

Inherits:
TypesafeEnum::Base
  • Object
show all
Defined in:
lib/berkeley_library/util/ods/xml/style/family.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.ensure_family(f) ⇒ Object

Raises:

  • (ArgumentError)


47
48
49
50
51
52
# File 'lib/berkeley_library/util/ods/xml/style/family.rb', line 47

def ensure_family(f)
  family = f.is_a?(Family) ? f : Family.from_string(f)
  return family if family

  raise ArgumentError, "Not a style family: #{f.inspect}"
end

.from_string(str) ⇒ Object



42
43
44
45
# File 'lib/berkeley_library/util/ods/xml/style/family.rb', line 42

def from_string(str)
  find_by_key(str.to_s.upcase.to_sym) ||
    find_by_value_str(str.to_s.downcase)
end

Instance Method Details

#index_part(style_name) ⇒ Object



64
65
66
67
68
69
70
# File 'lib/berkeley_library/util/ods/xml/style/family.rb', line 64

def index_part(style_name)
  prefix, suffix = split_name(style_name)
  return unless prefix == self.prefix
  return unless (suffix_i = suffix.to_i).to_s == suffix

  suffix_i
end

#split_name(style_name) ⇒ Object


Public instance methods



58
59
60
61
62
# File 'lib/berkeley_library/util/ods/xml/style/family.rb', line 58

def split_name(style_name)
  return [nil, style_name] unless style_name.start_with?(prefix)

  [prefix, style_name[prefix.size..]]
end

#to_sObject


TypesafeEnum overrides



75
76
77
78
# File 'lib/berkeley_library/util/ods/xml/style/family.rb', line 75

def to_s
  # noinspection RubyYardReturnMatch
  value
end