Sha256: 1c83971e385a4aecee406db2e05eefd73450e23e157b4e83be88a9228afaabe1

Contents?: true

Size: 776 Bytes

Versions: 3

Compression:

Stored size: 776 Bytes

Contents

class BashpassPassword < Password
  
  def initialize
    generate!
  end
  
  def self.generate
    correct_battery_horse_staple_de
  end
  
  # This uses bashpass and a German dictionary to generate xkcd passwords
  # like "correct horse battery staple".
  #
  # See: vendor/scripts/bashpass
  #
  def self.correct_battery_horse_staple_de
    `cd #{bashpass_dir} && #{osx_shuf_path_workaround} #{bashpass_command}`.gsub("\n", "").gsub(" n ", "")
  end
  
  def self.bashpass_dir
    YourPlatform::Engine.root.join('vendor/scripts/bashpass').to_s
  end
  
  def self.bashpass_command
    './bashpass -d german.dic -n 4 |tr "&1234567890\`=@+#~\!\%*_^-" " "'
  end
  
  def self.osx_shuf_path_workaround
    'PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"'
  end  
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
your_platform-1.0.1 app/models/bashpass_password.rb
your_platform-1.0.0 app/models/bashpass_password.rb
your_platform-0.0.2 app/models/bashpass_password.rb