Class: AdminSuite::Engine

Inherits:
Rails::Engine
  • Object
show all
Defined in:
lib/admin_suite/engine.rb

Class Method Summary collapse

Class Method Details

.contains_admin_suite_portal_dsl?(admin_portals_dir) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
69
70
71
72
73
74
75
76
# File 'lib/admin_suite/engine.rb', line 66

def self.contains_admin_suite_portal_dsl?(admin_portals_dir)
  portal_files = Dir[admin_portals_dir.join("**/*.rb").to_s]
  portal_files.any? do |file|
    content = File.binread(file)
    content = content.encode("UTF-8", invalid: :replace, undef: :replace, replace: "")
    portal_dsl_pattern = /(::)?AdminSuite\s*\.\s*portal\b/
    portal_dsl_pattern.match?(content)
  rescue StandardError
    false
  end
end

.host_admin_namespace_files?(admin_dir) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/admin_suite/engine.rb', line 51

def self.host_admin_namespace_files?(admin_dir)
  # True if any file under app/admin appears to define `Admin::*` constants.
  Dir[admin_dir.join("**/*.rb").to_s].any? do |file|
    next false if file.include?("/portals/")

    content = File.binread(file)
    content = content.encode("UTF-8", invalid: :replace, undef: :replace, replace: "")

    content.match?(/\b(module|class)\s+Admin\b/) ||
      content.match?(/\b(module|class)\s+Admin::/)
  rescue StandardError
    false
  end
end