Module: Theo::Rails

Defined in:
lib/theo-rails/theo.rb,
lib/theo-rails/engine.rb,
lib/theo-rails/helpers.rb,
lib/theo-rails/railtie.rb

Defined Under Namespace

Modules: Helpers Classes: Engine, Railtie, Theo

Constant Summary collapse

ATTRIBUTE_NAME =
/(?<name>[\w:@_%][-\w:@_.]*)/
ATTRIBUTE_VALUE =
/(?:(?:"(?<value>[^"]*)")|(?:'(?<value>[^']*)'))/
ATTRIBUTE =
/(?:(?<=\s)(?:(?:#{ATTRIBUTE_NAME.source}\s*=\s*#{attribute_value})|#{ATTRIBUTE_NAME.source}))/
DYNAMIC_ATTRIBUTE =
/(?:(?<=\s)(?:(?:#{ATTRIBUTE_NAME.source}\s*%=\s*#{attribute_value('dynvalue')})|(?:#{ATTRIBUTE_NAME.source}%)))/
RESERVED_ATTRIBUTE_NAME =
%w[alias and begin break case class def do else elsif end ensure false for if in module next nil not or redo rescue retry return self super then true undef unless until when while yield].to_set
BOOLEAN_ATTRIBUTE_NAME =
%w[allowfullscreen alpha async autofocus autoplay checked controls default defer disabled formnovalidate inert ismap itemscope loop multiple muted nomodule novalidate open playsinline readonly required reversed selected shadowrootclonable shadowrootcustomelementregistry shadowrootdelegatesfocus shadowrootserializable]
CLASS_ATTRIBUTE =
/(?:\s+class\s*=\s*#{attribute_value})/
STYLE_ATTRIBUTE =
/(?:\s+style\s*=\s*#{attribute_value})/
ATTRIBUTES =
/(?<attrs>(?:\s+#{ATTRIBUTE.source})*)/
ATTRIBUTES_INCLUDING_DYNAMIC =
/(?<attrs>(?:\s+(?:#{ATTRIBUTE.source}|#{DYNAMIC_ATTRIBUTE.source}))*)/
TAG_WITH_DYNAMIC_ATTRIBUTE =
/(?:<(?<tagname>\w+)#{ATTRIBUTES_INCLUDING_DYNAMIC.source}\s+#{DYNAMIC_ATTRIBUTE.source}#{ATTRIBUTES_INCLUDING_DYNAMIC.source}\s*\/?>)/m
SPECIAL_ATTRIBUTES =
i[path as %yields collection %if].freeze
VOID_TAGS =
i[area base br col embed hr img input link meta source track wbr]
IF_SPECIAL_ATTRIBUTE =
/(?<special>\s%if\s*=\s*#{attribute_value('specvalue')})/
TAG_WITH_IF_SPECIAL_ATTRIBUTE =
/(?:<(?<tag>\w+)#{ATTRIBUTES_INCLUDING_DYNAMIC.source}\s*#{IF_SPECIAL_ATTRIBUTE.source}#{ATTRIBUTES_INCLUDING_DYNAMIC.source}\s*>.*?<\/\k<tag>>)|(?:<(?<tag>\w+)#{ATTRIBUTES_INCLUDING_DYNAMIC.source}\s*#{IF_SPECIAL_ATTRIBUTE.source}#{ATTRIBUTES_INCLUDING_DYNAMIC.source}\s*\/>)|(?:<(?<tag>#{VOID_TAGS.join('|')})#{ATTRIBUTES_INCLUDING_DYNAMIC.source}\s*#{IF_SPECIAL_ATTRIBUTE.source}#{ATTRIBUTES_INCLUDING_DYNAMIC.source}\s*>)/m
PARTIAL_TAG =
/(?:(?<partial>[A-Z]\w+)|(?<partial>_[\w-]+))/
PARTIAL =
/(?:<#{PARTIAL_TAG.source}#{ATTRIBUTES.source}\s*>(?<content>.*?)<\/\k<partial>>)|(?:<#{PARTIAL_TAG.source}#{ATTRIBUTES.source}\s*\/>)/m
DYNAMIC_EXPRESSION =
/^<%=([^%]*)%>$/

Class Method Summary collapse

Class Method Details

.attribute_value(name = 'value') ⇒ Object



3
4
5
# File 'lib/theo-rails/theo.rb', line 3

def self.attribute_value(name = 'value')
  /(?:(?:"(?<#{name}>[^"]*)")|(?:'(?<#{name}>[^']*)'))/.source
end