class Decidim::Mpassid::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/mpassid/install_generator.rb, line 54
def initialize(filepath)
  @filepath = filepath
end

Public Instance Methods

modify() click to toggle source
# File lib/generators/decidim/mpassid/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/mpassid/install_generator.rb, line 85
def handle_line(line)
  if inside_config && line =~ /^  omniauth:/
    self.inside_omniauth = true
  elsif inside_omniauth && line =~ /^(  )?[a-z]+/
    inject_mpassid_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

  if line =~ /^default:/
    self.inside_config = true
    self.config_branch = :default
  elsif line =~ /^development:/
    self.inside_config = true
    self.config_branch = :development
  end
end
inject_mpassid_config() click to toggle source
# File lib/generators/decidim/mpassid/install_generator.rb, line 113
def inject_mpassid_config
  @final += "    mpassid:\n"
  if config_branch == :development
    @final += "      enabled: true\n"
    @final += "      mode: test\n"
  else
    @final += "      enabled: false\n"
  end
  @final += "      icon: account-login\n"
end
insert_empty_lines() click to toggle source
# File lib/generators/decidim/mpassid/install_generator.rb, line 108
def insert_empty_lines
  @final += "\n" * empty_line_count
  @empty_line_count = 0
end