class Decidim::Msad::Generators::InstallGenerator::SecretsModifier

Attributes

config_branch[RW]
empty_line_count[RW]
filepath[RW]
inside_config[RW]
inside_omniauth[RW]

Public Class Methods

new(filepath) click to toggle source
# File lib/generators/decidim/msad/install_generator.rb, line 54
def initialize(filepath)
  @filepath = filepath
end

Public Instance Methods

modify() click to toggle source
# File lib/generators/decidim/msad/install_generator.rb, line 58
def modify
  self.inside_config = false
  self.inside_omniauth = false
  self.config_branch = nil
  @final = ""

  @empty_line_count = 0
  File.readlines(filepath).each do |line|
    if line =~ /^$/
      @empty_line_count += 1
      next
    else
      handle_line line
      insert_empty_lines
    end

    @final += line
  end
  insert_empty_lines

  @final
end

Private Instance Methods

handle_line(line) click to toggle source
# File lib/generators/decidim/msad/install_generator.rb, line 85
def handle_line(line)
  if inside_config && line =~ /^  omniauth:/
    self.inside_omniauth = true
  elsif inside_omniauth && (line =~ /^(  )?[a-z]+/ || line =~ /^#.*/)
    inject_msad_config
    self.inside_omniauth = false
  end

  return unless line =~ /^[a-z]+/

  # A new root configuration block starts
  self.inside_config = false
  self.inside_omniauth = false

  branch = line[/^(default|development|test):/, 1]
  if branch
    self.inside_config = true
    self.config_branch = branch.to_sym
  end
end
inject_msad_config() click to toggle source
# File lib/generators/decidim/msad/install_generator.rb, line 111
def inject_msad_config
  @final += "    msad:\n"
  case config_branch
  when :development, :test
    @final += "      enabled: true\n"
  else
    @final += "      enabled: false\n"
  end
  @final += "      metadata_url:\n"
  @final += "      icon: account-login\n"
end
insert_empty_lines() click to toggle source
# File lib/generators/decidim/msad/install_generator.rb, line 106
def insert_empty_lines
  @final += "\n" * empty_line_count
  @empty_line_count = 0
end