Module: Decidim::DecidimAwesome::MenuItemsParser

Defined in:
lib/decidim/decidim_awesome/menu_items_parser.rb

Constant Summary collapse

SAFE_URL_PATTERN =
%r{\A(#[\w-]+|/(?!/)\S*|https://\S+)\z}i

Class Method Summary collapse

Class Method Details

.parse_json(raw) ⇒ Object

Parses a JSON string of menu items into an array of hashes. Returns [] on blank input or parse errors.



10
11
12
13
14
15
16
17
18
19
# File 'lib/decidim/decidim_awesome/menu_items_parser.rb', line 10

def self.parse_json(raw)
  return [] if raw.blank?

  items = JSON.parse(raw)
  return [] unless items.is_a?(Array)

  items
rescue JSON::ParserError
  []
end