Class: Blacklight::Icon

Inherits:
Object
  • Object
show all
Defined in:
app/models/blacklight/icon.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(icon_name, classes: '', aria_hidden: false, label: true, role: 'img', additional_options: {}) ⇒ Icon

Returns a new instance of Icon.

Parameters:

  • icon_name (String, Symbol)
  • classes (String) (defaults to: '')

    additional classes separated by a string

  • aria_hidden (Boolean) (defaults to: false)

    include aria_hidden attribute

  • label (Boolean) (defaults to: true)

    include and aria-label as part of svg</p></div> </li> <li> <span class='name'>role</span> <span class='type'>(<tt>String</tt>)</span> <em class="default">(defaults to: <tt>'img'</tt>)</em> — <div class='inline'><p>role attribute to be included in svg</p></div> </li> <li> <span class='name'>additional_options</span> <span class='type'>(<tt>Hash</tt>)</span> <em class="default">(defaults to: <tt>{}</tt>)</em> — <div class='inline'><p>the way forward instead of named arguments</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 16 17 18 19 20 21 22 23</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 16</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_icon_name'>icon_name</span><span class='comma'>,</span> <span class='label'>classes:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>aria_hidden:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='label'>label:</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='label'>role:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>img</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>additional_options:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='ivar'>@icon_name</span> <span class='op'>=</span> <span class='id identifier rubyid_icon_name'>icon_name</span> <span class='ivar'>@classes</span> <span class='op'>=</span> <span class='id identifier rubyid_classes'>classes</span> <span class='ivar'>@aria_hidden</span> <span class='op'>=</span> <span class='id identifier rubyid_aria_hidden'>aria_hidden</span> <span class='ivar'>@label</span> <span class='op'>=</span> <span class='id identifier rubyid_label'>label</span> <span class='ivar'>@role</span> <span class='op'>=</span> <span class='id identifier rubyid_role'>role</span> <span class='ivar'>@additional_options</span> <span class='op'>=</span> <span class='id identifier rubyid_additional_options'>additional_options</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> <div id="instance_attr_details" class="attr_details"> <h2>Instance Attribute Details</h2> <span id=""></span> <div class="method_details first"> <h3 class="signature first" id="additional_options-instance_method"> #<strong>additional_options</strong> ⇒ <tt>Object</tt> <span class="extras">(readonly)</span> </h3><script> document.getElementById("additional_options-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:additional_options">permalink</a>' ); </script> <div class="docstring"> <div class="discussion"> <p>Returns the value of attribute additional_options.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 5 6 7</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 5</span> <span class='kw'>def</span> <span class='id identifier rubyid_additional_options'>additional_options</span> <span class='ivar'>@additional_options</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <span id=""></span> <div class="method_details "> <h3 class="signature " id="aria_hidden-instance_method"> #<strong>aria_hidden</strong> ⇒ <tt>Object</tt> <span class="extras">(readonly)</span> </h3><script> document.getElementById("aria_hidden-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:aria_hidden">permalink</a>' ); </script> <div class="docstring"> <div class="discussion"> <p>Returns the value of attribute aria_hidden.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 5 6 7</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 5</span> <span class='kw'>def</span> <span class='id identifier rubyid_aria_hidden'>aria_hidden</span> <span class='ivar'>@aria_hidden</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <span id=""></span> <div class="method_details "> <h3 class="signature " id="icon_name-instance_method"> #<strong>icon_name</strong> ⇒ <tt>Object</tt> <span class="extras">(readonly)</span> </h3><script> document.getElementById("icon_name-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:icon_name">permalink</a>' ); </script> <div class="docstring"> <div class="discussion"> <p>Returns the value of attribute icon_name.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 5 6 7</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 5</span> <span class='kw'>def</span> <span class='id identifier rubyid_icon_name'>icon_name</span> <span class='ivar'>@icon_name</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <span id=""></span> <div class="method_details "> <h3 class="signature " id="label-instance_method"> #<strong>label</strong> ⇒ <tt>Object</tt> <span class="extras">(readonly)</span> </h3><script> document.getElementById("label-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:label">permalink</a>' ); </script> <div class="docstring"> <div class="discussion"> <p>Returns the value of attribute label.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 5 6 7</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 5</span> <span class='kw'>def</span> <span class='id identifier rubyid_label'>label</span> <span class='ivar'>@label</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <span id=""></span> <div class="method_details "> <h3 class="signature " id="role-instance_method"> #<strong>role</strong> ⇒ <tt>Object</tt> <span class="extras">(readonly)</span> </h3><script> document.getElementById("role-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:role">permalink</a>' ); </script> <div class="docstring"> <div class="discussion"> <p>Returns the value of attribute role.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 5 6 7</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 5</span> <span class='kw'>def</span> <span class='id identifier rubyid_role'>role</span> <span class='ivar'>@role</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> <div id="instance_method_details" class="method_details_list"> <h2>Instance Method Details</h2> <div class="method_details first"> <h3 class="signature first" id="file_source-instance_method"> #<strong>file_source</strong> ⇒ <tt>String</tt> </h3><script> document.getElementById("file_source-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:file_source">permalink</a>' ); </script> <div class="docstring"> <div class="discussion"> </div> </div> <div class="tags"> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>String</tt>)</span> </li> </ul> <p class="tag_title">Raises:</p> <ul class="raise"> <li> <span class='type'>(<tt><span class='object_link'><a href="/gems/blacklight/Blacklight/Exceptions/IconNotFound" title="Blacklight::Exceptions::IconNotFound (class)">Blacklight::Exceptions::IconNotFound</a></span></tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 57 58 59 60 61 62 63 64</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 57</span> <span class='kw'>def</span> <span class='id identifier rubyid_file_source'>file_source</span> <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="/gems/blacklight/Blacklight" title="Blacklight (module)">Blacklight</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="/gems/blacklight/Blacklight/Exceptions" title="Blacklight::Exceptions (module)">Exceptions</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="/gems/blacklight/Blacklight/Exceptions/IconNotFound" title="Blacklight::Exceptions::IconNotFound (class)">IconNotFound</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Could not find </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_path'>path</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span> <span class='comment'># Handle both Sprockets::Asset and Propshaft::Asset </span> <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:source</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_source'>source</span> <span class='op'>:</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_path'>path</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_force_encoding'>force_encoding</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>UTF-8</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="icon_label-instance_method"> #<strong>icon_label</strong> ⇒ <tt>Object</tt> </h3><script> document.getElementById("icon_label-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:icon_label">permalink</a>' ); </script> <table class="source_code"> <tr> <td> <pre class="lines"> 36 37 38</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 36</span> <span class='kw'>def</span> <span class='id identifier rubyid_icon_label'>icon_label</span> <span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_t'>t</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>blacklight.icon.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_icon_name_context'>icon_name_context</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='label'>default:</span> <span class='id identifier rubyid_icon_name'>icon_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_titleize'>titleize</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="ng_xml-instance_method"> #<strong>ng_xml</strong> ⇒ <tt>Object</tt> </h3><script> document.getElementById("ng_xml-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:ng_xml">permalink</a>' ); </script> <table class="source_code"> <tr> <td> <pre class="lines"> 66 67 68</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 66</span> <span class='kw'>def</span> <span class='id identifier rubyid_ng_xml'>ng_xml</span> <span class='ivar'>@ng_xml</span> <span class='op'>||=</span> <span class='const'>Nokogiri</span><span class='op'>::</span><span class='const'>XML</span><span class='lparen'>(</span><span class='id identifier rubyid_file_source'>file_source</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_remove_namespaces!'>remove_namespaces!</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="options-instance_method"> #<strong>options</strong> ⇒ <tt>Hash</tt> </h3><script> document.getElementById("options-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:options">permalink</a>' ); </script> <div class="docstring"> <div class="discussion"> </div> </div> <div class="tags"> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 42 43 44 45 46 47</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 42</span> <span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span> <span class='lbrace'>{</span> <span class='label'>class:</span> <span class='id identifier rubyid_classes'>classes</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>aria-hidden</span><span class='label_end'>':</span> <span class='lparen'>(</span><span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_aria_hidden'>aria_hidden</span><span class='rparen'>)</span> <span class='rbrace'>}</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="path-instance_method"> #<strong>path</strong> ⇒ <tt>String</tt> </h3><script> document.getElementById("path-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:path">permalink</a>' ); </script> <div class="docstring"> <div class="discussion"> </div> </div> <div class="tags"> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>String</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 51 52 53</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 51</span> <span class='kw'>def</span> <span class='id identifier rubyid_path'>path</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>blacklight/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_icon_name'>icon_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>.svg</span><span class='tstring_end'>"</span></span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="svg-instance_method"> #<strong>svg</strong> ⇒ <tt>String</tt> </h3><script> document.getElementById("svg-instance_method").insertAdjacentHTML( "afterbegin", '<a class="permalink" href="/gems/blacklight/Blacklight%2FIcon:svg">permalink</a>' ); </script> <div class="docstring"> <div class="discussion"> <p>Returns an updated version of the svg source</p> </div> </div> <div class="tags"> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>String</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 28 29 30 31 32 33 34</pre> </td> <td> <pre class="code"><span class="info file"># File 'app/models/blacklight/icon.rb', line 28</span> <span class='kw'>def</span> <span class='id identifier rubyid_svg'>svg</span> <span class='id identifier rubyid_svg'>svg</span> <span class='op'>=</span> <span class='id identifier rubyid_ng_xml'>ng_xml</span><span class='period'>.</span><span class='id identifier rubyid_at_xpath'>at_xpath</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>svg</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='id identifier rubyid_svg'>svg</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>aria-label</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_icon_label'>icon_label</span> <span class='kw'>if</span> <span class='id identifier rubyid_label'>label</span> <span class='id identifier rubyid_svg'>svg</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>role</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_role'>role</span> <span class='id identifier rubyid_svg'>svg</span><span class='period'>.</span><span class='id identifier rubyid_prepend_child'>prepend_child</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'><title></span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_icon_label'>icon_label</span><span class='embexpr_end'>}</span><span class='tstring_content'></title></span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_label'>label</span> <span class='id identifier rubyid_ng_xml'>ng_xml</span><span class='period'>.</span><span class='id identifier rubyid_to_xml'>to_xml</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> </div> <div id="footer"> Generated on Tue Sep 22 09:05:38 2026 by <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a> 0.9.45 (ruby-4.0.7). </div> </div> </body> </html>