class Object

Public Instance Methods

fixture_file(file_name) click to toggle source
# File lib/generators/katapult/basics/templates/spec/support/fixture_file.rb, line 3
def fixture_file(file_name)
  file_path = Rails.root.join('spec/assets', file_name)
  File.open(file_path)
end
form_development_errors(object) click to toggle source
# File lib/generators/katapult/basics/templates/lib/ext/action_view/form_for_with_development_errors.rb, line 17
    def form_development_errors(object)
      return unless object
      return unless object.respond_to?(:errors)
      return unless object.errors.any?

      safe_messages = object.errors.full_messages.map { |message| h(message) }.join('<br />').html_safe

      styles = <<~CSS
        position: fixed;
        bottom: 0;
        right: 0;
        z-index: 999999;
        font-size: 0.8rem;
        background-color: #fed;
        border-top: 1px solid #cba;
        border-left: 1px solid #cba;
        color: #821;
        padding: 0.5em 1em;
        cursor: pointer;
        opacity: 0.8;
      CSS

      content_tag(:div, safe_messages, style: styles.squish, onclick: 'this.parentNode.removeChild(this)')
    end
form_for_with_development_errors(*args, &block) click to toggle source
# File lib/generators/katapult/basics/templates/lib/ext/action_view/form_for_with_development_errors.rb, line 4
def form_for_with_development_errors(*args, &block)
  form_for_without_development_errors(*args) do |form|
    html = ''.html_safe
    html << form_development_errors(form.object)
    html << capture(form, &block)
  end
end
parse_element(html, tag) click to toggle source
# File lib/generators/katapult/basics/templates/lib/ext/action_view/spec_label.rb, line 13
def parse_element(html, tag)
  doc = Nokogiri::XML(html)
  doc.css(tag).first or raise "Could not find CSS #{tag.inspect} in HTML #{html.inspect}"
end
spec_label(field, text = nil, options = {}) click to toggle source
# File lib/generators/katapult/basics/templates/lib/ext/action_view/spec_label.rb, line 3
def spec_label(field, text = nil, options = {})
  label_html = label(field)
  element = parse_element(label_html, 'label')
  id = element['for']
  text ||= element.text
  @template.spec_label_tag(id, text, options)
end
spec_label_tag(id, text = nil, options = {}) click to toggle source
# File lib/generators/katapult/basics/templates/lib/ext/action_view/spec_label.rb, line 22
def spec_label_tag(id, text = nil, options = {})
  count = SpecLabelCounter.next(controller, text)
  label = count == 1 ? text : "#{text} (#{count})"
  options.merge!(:class => 'hidden') unless Rails.env.test?
  html = label_tag(id, label, options)
  html
end
to_s() click to toggle source
# File lib/generators/katapult/model/templates/model.rb, line 23
  def to_s
<% if model.label_attr? -%>
    <%= model.label_attr.name %>.to_s
<% else -%>
    "<%= model.name %>##{id}"
<% end 
to_sort_atoms() click to toggle source
# File lib/generators/katapult/basics/templates/lib/ext/string/to_sort_atoms.rb, line 47
def to_sort_atoms
  SmartSortAtom.parse(self)
end
xss_aware_join(delimiter = '') click to toggle source
# File lib/generators/katapult/basics/templates/lib/ext/array/xss_aware_join.rb, line 2
def xss_aware_join(delimiter = '')
  ''.html_safe.tap do |str|
    each_with_index do |element, i|
      str << delimiter if i > 0
      str << element
    end
  end
end