Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/activefacts/support.rb
Direct Known Subclasses
ActiveFacts::Metamodel::Adjective, ActiveFacts::Metamodel::AgentName, ActiveFacts::Metamodel::AggregateCode, ActiveFacts::Metamodel::Annotation, ActiveFacts::Metamodel::Assimilation, ActiveFacts::Metamodel::ContextNoteKind, ActiveFacts::Metamodel::Description, ActiveFacts::Metamodel::DisplayRoleNamesSetting, ActiveFacts::Metamodel::EnforcementCode, ActiveFacts::Metamodel::EphemeraURL, ActiveFacts::Metamodel::ExpressionType, ActiveFacts::Metamodel::ImplicationRuleName, ActiveFacts::Metamodel::Literal, ActiveFacts::Metamodel::LiteralString, ActiveFacts::Metamodel::Name, ActiveFacts::Metamodel::NestingMode, ActiveFacts::Metamodel::Operator, ActiveFacts::Metamodel::Pronoun, ActiveFacts::Metamodel::RegularExpression, ActiveFacts::Metamodel::RingType, ActiveFacts::Metamodel::RotationSetting, ActiveFacts::Metamodel::Text, ActiveFacts::Metamodel::TransactionPhase, ActiveFacts::Metamodel::VersionNumber, ActiveFacts::Metamodel::VersionPattern
Defined Under Namespace
Classes: Words
Instance Method Summary collapse
Instance Method Details
#words ⇒ Object
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/activefacts/support.rb', line 132 def words Words.new( self. split( %r{ # Split and discard any group of non-alphanumeric characters: (?:[^[:alnum:]]+) | # Split between an uppercase and a preceding lowercase or digit: (?<=[[:lower:][:digit:]])(?=[[:upper:]]) | # Split between any alphanumeric and a following upper-lower pair: (?<=[[:alnum:]])(?=[[:upper:]][[:lower:]]) }x ). reject{|w| w == '' }. # Any word that starts with a digit gets an _ map{|w| w =~ /^[^_[:alpha:]]/ ? '_'+w : w} ) end |