lastpassify 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f0827280191e4dec87fcd1a1e07ffde7a908bc95
4
+ data.tar.gz: 3e12237c34a859ed8ff0b1aefaa3b79e288dd169
5
+ SHA512:
6
+ metadata.gz: cc029d05cb77d725fda588012b93445392891506f77101956af5661139626a7566e05cb5e734a3f72df54df33e1da46661b8e70a9f86df1710c117ef7261b41c
7
+ data.tar.gz: be02eabcdaf2bf4fa0f1301bd98eafc5df540fa231bc3f37abc37b5ee33d4d8b09851ae33f0a2a6e6887f06766d151c7c359362f3a800585956dc5e384cd921e
@@ -0,0 +1,13 @@
1
+ database.yml
2
+ bundle
3
+ .bundle
4
+ .rubocop.yml
5
+ .DS_Store
6
+ .DS_Store?
7
+ ._*
8
+ .Spotlight-V100
9
+ .Trashes
10
+ ehthumbs.db
11
+ Thumbs.db
12
+ *.swp
13
+ tmp/
@@ -0,0 +1,17 @@
1
+ PreCommit:
2
+ ALL:
3
+ exclude:
4
+ - "lib/lastpassify/runner.rb"
5
+ RuboCop:
6
+ enabled: true
7
+ on_warn: fail # Treat all warnings as failures
8
+ required_executable: "./bin/rubocop"
9
+ Reek:
10
+ enabled: true
11
+ on_fail: fail
12
+ required_executable: "./bin/reek"
13
+ PrePush:
14
+ RSpec:
15
+ enabled: true
16
+ on_warn: fail # Treat all warnings as failures
17
+ required_executable: './script/test'
data/.reek ADDED
@@ -0,0 +1,10 @@
1
+ ---
2
+ UtilityFunction:
3
+ public_methods_only: true
4
+
5
+ TooManyStatements:
6
+ enabled: true
7
+ max_statements: 7
8
+
9
+ exclude_paths:
10
+ - bundle
@@ -0,0 +1 @@
1
+ 2.2.4
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in comment_builder.gemspec
4
+ gemspec
@@ -0,0 +1,111 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ lastpassify (0.4.1)
5
+ thor
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ aruba (0.14.2)
11
+ childprocess (~> 0.5.6)
12
+ contracts (~> 0.9)
13
+ cucumber (>= 1.3.19)
14
+ ffi (~> 1.9.10)
15
+ rspec-expectations (>= 2.99)
16
+ thor (~> 0.19)
17
+ ast (2.3.0)
18
+ awesome_print (1.8.0)
19
+ axiom-types (0.1.1)
20
+ descendants_tracker (~> 0.0.4)
21
+ ice_nine (~> 0.11.0)
22
+ thread_safe (~> 0.3, >= 0.3.1)
23
+ builder (3.2.3)
24
+ childprocess (0.5.9)
25
+ ffi (~> 1.0, >= 1.0.11)
26
+ codeclimate-engine-rb (0.4.0)
27
+ virtus (~> 1.0)
28
+ coercible (1.0.0)
29
+ descendants_tracker (~> 0.0.1)
30
+ contracts (0.16.0)
31
+ cucumber (2.4.0)
32
+ builder (>= 2.1.2)
33
+ cucumber-core (~> 1.5.0)
34
+ cucumber-wire (~> 0.0.1)
35
+ diff-lcs (>= 1.1.3)
36
+ gherkin (~> 4.0)
37
+ multi_json (>= 1.7.5, < 2.0)
38
+ multi_test (>= 0.1.2)
39
+ cucumber-core (1.5.0)
40
+ gherkin (~> 4.0)
41
+ cucumber-wire (0.0.1)
42
+ descendants_tracker (0.0.4)
43
+ thread_safe (~> 0.3, >= 0.3.1)
44
+ diff-lcs (1.3)
45
+ equalizer (0.0.11)
46
+ ffi (1.9.18)
47
+ gherkin (4.1.3)
48
+ ice_nine (0.11.2)
49
+ iniparse (1.4.4)
50
+ multi_json (1.12.1)
51
+ multi_test (0.1.2)
52
+ overcommit (0.38.0)
53
+ childprocess (~> 0.5.8)
54
+ iniparse (~> 1.4)
55
+ parallel (1.11.2)
56
+ parser (2.4.0.0)
57
+ ast (~> 2.2)
58
+ powerpack (0.1.1)
59
+ rainbow (2.2.2)
60
+ rake
61
+ rake (12.0.0)
62
+ reek (4.7.1)
63
+ codeclimate-engine-rb (~> 0.4.0)
64
+ parser (>= 2.4.0.0, < 2.5)
65
+ rainbow (~> 2.0)
66
+ rspec (3.6.0)
67
+ rspec-core (~> 3.6.0)
68
+ rspec-expectations (~> 3.6.0)
69
+ rspec-mocks (~> 3.6.0)
70
+ rspec-core (3.6.0)
71
+ rspec-support (~> 3.6.0)
72
+ rspec-expectations (3.6.0)
73
+ diff-lcs (>= 1.2.0, < 2.0)
74
+ rspec-support (~> 3.6.0)
75
+ rspec-mocks (3.6.0)
76
+ diff-lcs (>= 1.2.0, < 2.0)
77
+ rspec-support (~> 3.6.0)
78
+ rspec-support (3.6.0)
79
+ rubocop (0.49.1)
80
+ parallel (~> 1.10)
81
+ parser (>= 2.3.3.1, < 3.0)
82
+ powerpack (~> 0.1)
83
+ rainbow (>= 1.99.1, < 3.0)
84
+ ruby-progressbar (~> 1.7)
85
+ unicode-display_width (~> 1.0, >= 1.0.1)
86
+ ruby-progressbar (1.8.1)
87
+ thor (0.19.4)
88
+ thread_safe (0.3.6)
89
+ unicode-display_width (1.3.0)
90
+ virtus (1.0.5)
91
+ axiom-types (~> 0.1)
92
+ coercible (~> 1.0)
93
+ descendants_tracker (~> 0.0, >= 0.0.3)
94
+ equalizer (~> 0.0, >= 0.0.9)
95
+
96
+ PLATFORMS
97
+ ruby
98
+
99
+ DEPENDENCIES
100
+ aruba (~> 0.14.2)
101
+ awesome_print
102
+ bundler (~> 1.15)
103
+ lastpassify!
104
+ overcommit
105
+ rake
106
+ reek
107
+ rspec
108
+ rubocop
109
+
110
+ BUNDLED WITH
111
+ 1.15.2
@@ -0,0 +1,62 @@
1
+ # LastPassify
2
+
3
+ LastPassify is a gem for automating `database.yml` configuration files. The goal of this gem is to populate a given a YAML ERB config file with values from LastPass. It uses the Ruby toolkit [Thor](https://github.com/erikhuda/thor) and [lastpass-cli](https://github.com/lastpass/lastpass-cli).
4
+
5
+ ### Install
6
+
7
+ LastPassify requires [lastpass-cli](https://github.com/lastpass/lastpass-cli) to be installed.
8
+
9
+ Also, LastPassify only works with Ruby version 2 and above.
10
+
11
+ LastPassify expects ERB in the inputted YAML file and uses lastpass-cli to populate these fields with data from LastPass.com
12
+
13
+ #### Adding to your project's Gemfile
14
+
15
+ You can install LastPassify by adding it to your Gemfile like so:
16
+
17
+ ```ruby
18
+ # sample Gemfile
19
+
20
+ source "https://rubygems.org" do
21
+ ruby "2.3.3"
22
+
23
+ group :development do
24
+ gem "lastpassify"
25
+ end
26
+ end
27
+ ```
28
+
29
+
30
+ ### Usage
31
+
32
+ LastPassify expects an input of one YAML file to be processed and outputs one YAML file. The input file can be passed in as an argument at the commandline like so:
33
+
34
+ `$ bundle exec lastpassify my_input_file.yml`
35
+
36
+ The output file and path can also be specified:
37
+
38
+ `$ bundle exec lastpassify my_input_file.yml config/my_output_file.yml`
39
+
40
+ LastPassify has default values that silently get passed if no input or output file is specified. The default input file LastPassify will look for is `config/database.example.yml`. The default output will also live in the `config` directory, with a filename of `database.yml`.
41
+
42
+ #### Flags
43
+
44
+ By default, LastPassify strips out any YAML keys with production, staging or qat in their names. This is a security measure to ensure no prod or staging environment credentials sit on your local development machine unnecessarily.
45
+
46
+ However, if for some reason you do want these credentials, this behavior can be overridden by passing in flags:
47
+
48
+ ```
49
+ -p flag to include production values in final output file
50
+ -s flag to include staging/qat values in final output file
51
+ ```
52
+
53
+ Example usage to include production values while using the default filenames and paths:
54
+
55
+ `$ bundle exec lastpassify -p`
56
+
57
+ Finally, upon completion, LastPassify will print the date the file was generated at the bottom of the outputted YAML file.
58
+
59
+
60
+ Author Information
61
+ ------------------
62
+ Eric Eklund, Remy Abdullahi @ ASR
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path("../../lib/", __FILE__)
3
+ require "rubygems"
4
+ require "bundler/setup"
5
+ require "thor"
6
+ require "lastpassify/runner"
7
+ LastPassify::Runner.new(ARGV.dup).execute!
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ #
4
+ # This file was generated by Bundler.
5
+ #
6
+ # The application 'reek' is installed as part of a gem, and
7
+ # this file is here to facilitate running it.
8
+ #
9
+
10
+ require "pathname"
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
+ Pathname.new(__FILE__).realpath)
13
+
14
+ require "rubygems"
15
+ require "bundler/setup"
16
+
17
+ load Gem.bin_path("reek", "reek")
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ #
4
+ # This file was generated by Bundler.
5
+ #
6
+ # The application 'rubocop' is installed as part of a gem, and
7
+ # this file is here to facilitate running it.
8
+ #
9
+
10
+ require "pathname"
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
+ Pathname.new(__FILE__).realpath)
13
+
14
+ require "rubygems"
15
+ require "bundler/setup"
16
+
17
+ load Gem.bin_path("rubocop", "rubocop")
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'lastpassify/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "lastpassify"
8
+ spec.version = LastPassify::VERSION
9
+ spec.authors = ["Eric Eklund (eeklund), Remy Abdullahi (abdu0299)"]
10
+ spec.email = ["eeklund@umn.edu", "abdu0299@umn.edu"]
11
+
12
+ spec.summary = %q{Populate ERB file with values from LastPass}
13
+ spec.description = %q{This gem populates a given ERB/YAML file with values from LastPass using LastPass-CLI.}
14
+ spec.homepage = "https://github.com/umn-asr/lastpassify"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.required_ruby_version = ">= 2.0.0"
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.15"
26
+ spec.add_development_dependency "rake"
27
+ spec.add_development_dependency "rubocop"
28
+ spec.add_development_dependency "reek"
29
+ spec.add_development_dependency "overcommit"
30
+ spec.add_development_dependency "awesome_print"
31
+ spec.add_development_dependency "aruba", "~> 0.14.2"
32
+ spec.add_development_dependency "rspec"
33
+ spec.add_dependency "thor"
34
+ end
@@ -0,0 +1,71 @@
1
+ require "thor"
2
+ require "yaml"
3
+
4
+ module LastPassify
5
+ # main LastPassify Thor script
6
+ class LastPassify < Thor::Group
7
+ include Thor::Actions
8
+
9
+ # Exception for when LastPass-CLI is not installed
10
+ class LPassNotInstalled < RuntimeError; end
11
+
12
+ # files will be available as attr_accessors
13
+ argument :input_file, type: :string, default: "config/database.example.yml", desc: "Input file"
14
+ argument :output_file, type: :string, default: "config/database.yml", desc: "Output file"
15
+
16
+ class_option :production, type: :boolean, aliases: "-p", desc: "Include production sections"
17
+ class_option :staging, type: :boolean, aliases: "-s", desc: "Include staging sections"
18
+
19
+ def self.source_root
20
+ File.expand_path("./")
21
+ end
22
+
23
+ desc "Takes a file to process, and outputs a new file populated with values from LastPass."
24
+
25
+ NOW = Time.now.strftime('%v')
26
+
27
+ def main
28
+ raise LPassNotInstalled, "Please install LastPass-CLI - https://github.com/lastpass/lastpass-cli" unless lastpass_installed?
29
+
30
+ template input_file, output_file do |content|
31
+ yml = YAML.safe_load content, [], [], true
32
+ delete_staging(yml) unless options[:staging]
33
+ delete_production(yml) unless options[:production]
34
+ content = YAML.dump(yml)
35
+ content << "# This file was automatically generated by LastPassify on #{NOW}.\n"
36
+ end
37
+ end
38
+
39
+ no_commands do
40
+ def lookup(_source, shared_path, field)
41
+ response = if %w[username password url notes id name].include? field
42
+ `lpass show --#{field} "#{shared_path}"`.chomp
43
+ else
44
+ `lpass show --field='#{field}' "#{shared_path}"`.chomp
45
+ end
46
+
47
+ puts "Please fill in: '#{shared_path}' : #{field} field" if response.empty?
48
+
49
+ response
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ def lastpass_installed?
56
+ system("command -v lpass")
57
+ end
58
+
59
+ def delete_staging(yml)
60
+ yml.keys.each do |key|
61
+ yml.delete(key) if key.to_s =~ /staging|qat/
62
+ end
63
+ end
64
+
65
+ def delete_production(yml)
66
+ yml.keys.each do |key|
67
+ yml.delete(key) if key.to_s =~ /production/
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,41 @@
1
+ require "lastpassify/lastpassify"
2
+
3
+ module LastPassify
4
+ class Runner
5
+ # Allow everything fun to be injected from the outside while defaulting to normal implementations.
6
+ def initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
7
+ @argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
8
+ end
9
+
10
+ def execute!
11
+ exit_code = begin
12
+ # Replacing streams so we can use them
13
+ $stderr = @stderr
14
+ $stdin = @stdin
15
+ $stdout = @stdout
16
+
17
+ # Execute LastPassify
18
+ LastPassify.start(@argv)
19
+
20
+ # Thor::Base#start does not have a return value, assume success if no exception is raised.
21
+ 0
22
+ rescue StandardError => e
23
+ # The ruby interpreter would pipe this to STDERR and exit 1 in the case of an unhandled exception
24
+ b = e.backtrace
25
+ @stderr.puts("#{b.shift}: #{e.message} (#{e.class})")
26
+ @stderr.puts(b.map{|s| "\tfrom #{s}"}.join("\n"))
27
+ 1
28
+ rescue SystemExit => e
29
+ e.status
30
+ ensure
31
+ # ...then we put the streams back.
32
+ $stderr = STDERR
33
+ $stdin = STDIN
34
+ $stdout = STDOUT
35
+ end
36
+
37
+ # Proxy our exit code back to the injected kernel.
38
+ @kernel.exit(exit_code)
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,3 @@
1
+ module LastPassify
2
+ VERSION = "0.4.1".freeze
3
+ end
@@ -0,0 +1,29 @@
1
+ #!/bin/sh
2
+
3
+ # script/bootstrap: Resolve all dependencies that LastPassify requires to run.
4
+
5
+ set -e
6
+
7
+ cd "$(dirname "$0")/.."
8
+
9
+ if [ "$(uname -s)" = "Darwin" ]; then
10
+ brew update
11
+
12
+ command -v lpass >/dev/null 2>&1 || {
13
+ echo "==> Installing LastPass-CLI…"
14
+ brew install lastpass-cli
15
+ }
16
+ fi
17
+
18
+ if [ -f "Gemfile" ]; then
19
+ echo "==> Installing gem dependencies…"
20
+ bundle check >/dev/null 2>&1 || {
21
+ bundle install --quiet --without production
22
+ }
23
+ fi
24
+
25
+ if [ -f ".overcommit.yml" ]; then
26
+ echo "==> Installing Overcommit hooks…"
27
+ bundle exec overcommit
28
+ bundle exec overcommit --sign
29
+ fi
@@ -0,0 +1,11 @@
1
+ #!/bin/sh
2
+
3
+ # script/setup: Set up LastPassify for the first time after cloning
4
+
5
+ set -e
6
+
7
+ cd "$(dirname "$0")/.."
8
+
9
+ script/bootstrap
10
+
11
+ echo "==> LastPassify is now ready to go!"
@@ -0,0 +1,24 @@
1
+ #!/bin/sh
2
+
3
+ # script/test: Run test suite for LastPassify gem. Optionally pass in a path to an
4
+ # individual test file to run a single test.
5
+
6
+
7
+ set -e
8
+
9
+ cd "$(dirname "$0")/.."
10
+
11
+ [ -z "$DEBUG" ] || set -x
12
+
13
+ export ENV="test"
14
+
15
+ script/update
16
+
17
+ echo "===> Running tests..."
18
+
19
+ if [ -n "$1" ]; then
20
+ # pass arguments to test call. This is useful for calling a single test.
21
+ bundle exec rspec "$1"
22
+ else
23
+ bundle exec rspec
24
+ fi
@@ -0,0 +1,9 @@
1
+ #!/bin/sh
2
+
3
+ # script/update: Update LastPassify gem to run for its current checkout.
4
+
5
+ set -e
6
+
7
+ cd "$(dirname "$0")/.."
8
+
9
+ script/bootstrap
metadata ADDED
@@ -0,0 +1,193 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lastpassify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.1
5
+ platform: ruby
6
+ authors:
7
+ - Eric Eklund (eeklund), Remy Abdullahi (abdu0299)
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-07-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.15'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: reek
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: overcommit
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: awesome_print
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: aruba
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.14.2
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.14.2
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: thor
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: This gem populates a given ERB/YAML file with values from LastPass using
140
+ LastPass-CLI.
141
+ email:
142
+ - eeklund@umn.edu
143
+ - abdu0299@umn.edu
144
+ executables:
145
+ - lastpassify
146
+ - reek
147
+ - rubocop
148
+ extensions: []
149
+ extra_rdoc_files: []
150
+ files:
151
+ - ".gitignore"
152
+ - ".overcommit.yml"
153
+ - ".reek"
154
+ - ".ruby-version"
155
+ - Gemfile
156
+ - Gemfile.lock
157
+ - README.md
158
+ - bin/lastpassify
159
+ - bin/reek
160
+ - bin/rubocop
161
+ - lastpassify.gemspec
162
+ - lib/lastpassify/lastpassify.rb
163
+ - lib/lastpassify/runner.rb
164
+ - lib/lastpassify/version.rb
165
+ - script/bootstrap
166
+ - script/setup
167
+ - script/test
168
+ - script/update
169
+ homepage: https://github.com/umn-asr/lastpassify
170
+ licenses:
171
+ - MIT
172
+ metadata: {}
173
+ post_install_message:
174
+ rdoc_options: []
175
+ require_paths:
176
+ - lib
177
+ required_ruby_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: 2.0.0
182
+ required_rubygems_version: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ requirements: []
188
+ rubyforge_project:
189
+ rubygems_version: 2.4.5.1
190
+ signing_key:
191
+ specification_version: 4
192
+ summary: Populate ERB file with values from LastPass
193
+ test_files: []