Class: ActiveAdmin::Favorites::Favorite::MacroBuilder

Inherits:
Object
  • Object
show all
Defined in:
app/models/active_admin/favorites/favorite/macro_builder.rb

Class Method Summary collapse

Class Method Details

.from_json(json_string) ⇒ Object

Raises:

  • (JSON::ParserError)


23
24
25
26
27
28
# File 'app/models/active_admin/favorites/favorite/macro_builder.rb', line 23

def self.from_json(json_string)
  parsed = JSON.parse(json_string)
  raise JSON::ParserError unless parsed.is_a?(Array)

  parsed
end

.from_template_assignments(assignments) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/models/active_admin/favorites/favorite/macro_builder.rb', line 7

def self.from_template_assignments(assignments)
  assignment_rows(assignments).filter_map do |assignment|
    next unless ActiveModel::Type::Boolean.new.cast(assignment["enabled"])

    attribute = assignment["attribute"].to_s
    template_name = assignment["name"].to_s
    next if attribute.blank? || template_name.blank?

    {
      "type" => "template",
      "name" => template_name,
      "attribute" => attribute
    }
  end
end

.template(attribute, name:) ⇒ Object



30
31
32
# File 'app/models/active_admin/favorites/favorite/macro_builder.rb', line 30

def self.template(attribute, name:)
  [{"type" => "template", "name" => name.to_s, "attribute" => attribute.to_s}]
end