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[t-path t-as t-yields t-collection t-if %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(?:t-if|%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 |