module Promethee::Rails::Helper

Public Instance Methods

blob_from_data(blob_data = {}) click to toggle source
# File lib/promethee/rails/helper.rb, line 49
def blob_from_data(blob_data = {})
  return unless blob_data&.has_key? :id
  blob_find_method = ActiveStorage::Blob.respond_to?(:find_signed!) ? :find_signed! : :find_signed
  ActiveStorage::Blob.public_send blob_find_method, blob_data[:id]
rescue
  nil
end
promethee(data, options = {}) click to toggle source
# File lib/promethee/rails/helper.rb, line 2
def promethee(data, options = {})
  render partial: 'promethee/show', locals: { master_data: data, localization_data: options[:l] }
end
promethee_bem_classes(*args) click to toggle source

promethee_bem_classes 'promethee-edit__move__droppable', '–{{type}}', '–first' -> promethee-edit__move__droppable promethee-edit__move__droppable–{{type}} promethee-edit__move__droppable–{{type}}–first“

# File lib/promethee/rails/helper.rb, line 59
def promethee_bem_classes(*args)
  classes = ''
  current_class = ''
  args.each do |arg|
    current_class << arg
    classes << "#{current_class} "
  end
  classes
end
promethee_class_for(component, *modifiers) click to toggle source
# File lib/promethee/rails/helper.rb, line 6
def promethee_class_for(component, *modifiers)
  base = "promethee__component"
  component_base = "#{base}__#{component[:type]}"

  [
    base,
    component_base,
    modifiers.map { |modifier| "#{component_base}--#{modifier}" }
  ].flatten.select(&:present?).join ' '
end
promethee_component_partials() click to toggle source
# File lib/promethee/rails/helper.rb, line 21
def promethee_component_partials
  promethee_partials_for 'components/*/_edit_*.html.erb'
end
promethee_component_render_icon(icon) click to toggle source
# File lib/promethee/rails/helper.rb, line 25
def promethee_component_render_icon(icon)
  render(partial: "promethee/components/#{icon}/icon", formats: :svg).to_json.html_safe
end
promethee_id_for(component) click to toggle source
# File lib/promethee/rails/helper.rb, line 17
def promethee_id_for(component)
  "promethee-component-#{component[:id]}"
end
promethee_localize_partials() click to toggle source
# File lib/promethee/rails/helper.rb, line 45
def promethee_localize_partials
  promethee_partials_for 'components/*/_localize.html.erb'
end
promethee_preset_partials() click to toggle source
# File lib/promethee/rails/helper.rb, line 41
def promethee_preset_partials
  promethee_partials_for 'presets/_*.html.erb'
end
promethee_preset_render_icon(icon) click to toggle source
# File lib/promethee/rails/helper.rb, line 29
def promethee_preset_render_icon(icon)
  render(partial: "promethee/presets/icon_#{icon}", formats: :svg).to_json.html_safe
end
promethee_template_partials() click to toggle source
# File lib/promethee/rails/helper.rb, line 37
def promethee_template_partials
  promethee_partials_for 'templates/_*.html.erb'
end
promethee_util_partials() click to toggle source
# File lib/promethee/rails/helper.rb, line 33
def promethee_util_partials
  promethee_partials_for 'utils/_*.html.erb'
end

Protected Instance Methods

promethee_partial_paths_for(path) click to toggle source

Example: promethee_partial_paths_for 'components//_edit..html.erb' [

Pathname:promethee/components/column/_edit_define.html.erb,
Pathname:promethee/components/column/_edit_inspect.html.erb,
Pathname:promethee/components/column/_edit_move.html.erb,
Pathname:promethee/components/cover/_edit_define.html.erb,
Pathname:promethee/components/cover/_edit_inspect.html.erb,
...

]

# File lib/promethee/rails/helper.rb, line 93
def promethee_partial_paths_for(path)
  promethee_partial_sources.map do |source|
    Dir[source + 'promethee' + path].map { |file| Pathname.new(file).relative_path_from source }
  end.flatten.uniq(&:to_s)
end
promethee_partial_sources() click to toggle source

Example: [

Pathname:/Users/lespoupeesrusses/Developer/a-rails-app/app/views,
Pathname:/Users/lespoupeesrusses/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/promethee-1.2.12/app/views

]

# File lib/promethee/rails/helper.rb, line 104
def promethee_partial_sources
  [Rails.root, Promethee.root].map { |source| source + 'app/views' }
end
promethee_partials_for(path) click to toggle source

Example: promethee_partials_for 'components//edit.html.erb' [

'promethee/components/column/edit_define',
'promethee/components/column/edit_inspect',
'promethee/components/column/edit_move',
'promethee/components/cover/edit_define',
'promethee/components/cover/edit_inspect',
...

]

# File lib/promethee/rails/helper.rb, line 80
def promethee_partials_for(path)
  promethee_partial_paths_for(path).map { |path| (path.dirname + path.basename('.html.erb').to_s[1..-1]).to_s }
end