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