lorca 0.3.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Manifest.md +2 -0
- data/ReadMe.md +85 -11
- data/Security.md +75 -0
- data/lib/lorca/expansions/cli.rb +25 -10
- data/lib/lorca/expansions/phrases.rb +5 -2
- data/lib/lorca/manifest.rb +12 -0
- data/lib/lorca/version.rb +2 -2
- data/test/_config/minitest.rb +2 -0
- data/test/bin/test_lorca.rb +1 -1
- data/test/lib/lorca/expansions/test_cli.rb +30 -4
- data/test/lib/lorca/expansions/test_phrases.rb +3 -0
- data/test/lib/lorca/test_doc.rb +4 -1
- data/test/lib/lorca/test_manifest.rb +20 -1
- data/test/lib/lorca/test_version.rb +4 -1
- data/test/lib/test_lorca.rb +6 -0
- metadata +25 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0a97e4325c07eafa5299433125654c671cd81760bfe26a19e5a8b96ce5b3286
|
4
|
+
data.tar.gz: a3b7e99eb4dd782e71a2613a76131076c954e268985ede11fd345a63326f92d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3e0ce4f5b9be532ae17115ad2763e2fe2f69c65daf6d2e6c767ef4fc1c39068e2d40d2bce6806faabdd7438844e263e072e2120026b325b794461ff112d2f0b
|
7
|
+
data.tar.gz: cac033b57be5e3353f37bc58f722329457124d53cdfd657b210ce739be911a3392b12a502a67cbc62718e1b6bce0ecbff26173e4cb940262cd51e31c8497e8b0
|
data/Manifest.md
CHANGED
data/ReadMe.md
CHANGED
@@ -1,21 +1,73 @@
|
|
1
1
|
# Lorca
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/lorca)
|
4
|
+
[](https://gitlab.com/_rem/lorca/commits/master)
|
5
|
+
|
6
|
+
|
3
7
|
## Details
|
4
8
|
|
5
|
-
Lorca
|
6
|
-
[EFF Dice-Generated Passphrases](https://www.eff.org/dice).
|
9
|
+
Lorca is a gem for generating passphrases based on the algorithm originally
|
10
|
+
described in [EFF Dice-Generated Passphrases](https://www.eff.org/dice).
|
7
11
|
It uses [EFF's long word list](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt).
|
12
|
+
The generator can be used from the command line interface, or added as
|
13
|
+
a library.
|
8
14
|
|
9
|
-
|
15
|
+
Passphrases, unlike passwords, are meant to be memorized. Check out these
|
16
|
+
links for a few ideas on how to memorize them:
|
17
|
+
|
18
|
+
- [Using memory effectively](https://www.studygs.net/memory/)
|
19
|
+
- [How to memorize lists](https://www.wikihow.com/Memorize-Lists)
|
20
|
+
|
21
|
+
Passphrases are great password manager keys.
|
22
|
+
|
23
|
+
|
24
|
+
## Quick Start
|
25
|
+
|
26
|
+
### Command line interface
|
27
|
+
|
28
|
+
Generate, and copy to clipboard, an 8-word passphrase.
|
29
|
+
|
30
|
+
```terminal
|
31
|
+
$ lorca -p
|
32
|
+
```
|
33
|
+
|
34
|
+
As Lorca is only capable of writing to the clipboard, it's up to the user
|
35
|
+
to paste it, and store it, somewhere safe.
|
36
|
+
|
37
|
+
For more details on how to use the CLI
|
38
|
+
|
39
|
+
```terminal
|
40
|
+
$ lorca
|
41
|
+
```
|
10
42
|
|
11
43
|
## System Requirements
|
12
44
|
|
13
45
|
- *nix OS.
|
46
|
+
- xsel or xclip (linux)
|
14
47
|
- Ruby 2.4+
|
15
48
|
|
49
|
+
|
16
50
|
## Installation
|
17
51
|
|
18
|
-
|
52
|
+
### CLI
|
53
|
+
|
54
|
+
To use Lorca as a command line interface:
|
55
|
+
|
56
|
+
```terminal
|
57
|
+
$ gem fetch lorca -v <version>
|
58
|
+
$ ruby -rdigest/sha2 -e "puts Digest::SHA512.new.hexdigest(File.read('lorca-<version>.gem'))"
|
59
|
+
```
|
60
|
+
|
61
|
+
Compare it with the hash in `checksum/lorca-<version>.gem.sha512` to
|
62
|
+
verify the integrity of the fetched gem. If the checksum matches
|
63
|
+
|
64
|
+
```terminal
|
65
|
+
$ gem install lorca -v <version>
|
66
|
+
```
|
67
|
+
|
68
|
+
### Gem
|
69
|
+
|
70
|
+
To use Lorca as a gem add it to the project's Gemfile:
|
19
71
|
|
20
72
|
```ruby
|
21
73
|
gem "lorca"
|
@@ -24,20 +76,42 @@ gem "lorca"
|
|
24
76
|
And then run
|
25
77
|
|
26
78
|
```bash
|
27
|
-
$ bundle
|
79
|
+
$ bundle install
|
80
|
+
```
|
81
|
+
|
82
|
+
For details on the API check out the [online documentation](https://_rem.gitlab.io/lorca).
|
83
|
+
|
84
|
+
|
85
|
+
### Updates
|
86
|
+
|
87
|
+
Subscribe to the [update notification feed](https://rubygems.org/gems/lorca/versions.atom).
|
88
|
+
Whenever there's a new release available read the
|
89
|
+
[ChangeLog.md](https://_rem.gitlab.io/lorca/files/ChangeLog_md.html)
|
90
|
+
for details on what changed since the last release.
|
91
|
+
|
92
|
+
#### CLI
|
93
|
+
|
94
|
+
Fetch and verify gem, as above,
|
95
|
+
|
96
|
+
```terminal
|
97
|
+
$ gem fetch lorca -v <version>
|
98
|
+
$ ruby -rdigest/sha2 -e "puts Digest::SHA512.new.hexdigest(File.read('lorca-<version>.gem'))"
|
28
99
|
```
|
29
100
|
|
30
|
-
|
101
|
+
then
|
31
102
|
|
32
103
|
```bash
|
33
|
-
$ gem
|
104
|
+
$ gem update lorca
|
105
|
+
$ gem cleanup lorca
|
34
106
|
```
|
35
107
|
|
36
|
-
|
108
|
+
#### Gem
|
37
109
|
|
38
|
-
|
110
|
+
```bash
|
111
|
+
$ bundle update lorca
|
112
|
+
```
|
39
113
|
|
40
114
|
## License
|
41
115
|
|
42
|
-
Copyright (c) 2018, René Maya. Licensed ISC. Read attached
|
43
|
-
for details.
|
116
|
+
Copyright (c) 2018-2019, René Maya. Licensed ISC. Read attached
|
117
|
+
`License.md` file for details.
|
data/Security.md
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
# Security
|
2
|
+
|
3
|
+
Security issues take precedence over bug fixes, and feature work.
|
4
|
+
Peer reviews, and security research, are also welcome to prevent users
|
5
|
+
from being compromised.
|
6
|
+
|
7
|
+
|
8
|
+
## Where should I report security issues?
|
9
|
+
|
10
|
+
Email directly `rem at disroot [dot] org` with details, and reproduction
|
11
|
+
steps. Please allow 90-days, from when we first reply to your report,
|
12
|
+
before public disclosure. At that time you may add a copy of your
|
13
|
+
published findings in the `disclosed` directory to help update users
|
14
|
+
about new, or improved security measures.
|
15
|
+
|
16
|
+
If you wish to be acknowledge below, mention it explicitly, and include
|
17
|
+
|
18
|
+
- Your name or alias
|
19
|
+
- Report date. YYYY-MM-DD
|
20
|
+
- Bug reported. Name or one-line description.
|
21
|
+
- Main contact (optional)
|
22
|
+
|
23
|
+
(Lack of a `disclosed` folder only means nothing has been reported)
|
24
|
+
|
25
|
+
|
26
|
+
## Configuration
|
27
|
+
|
28
|
+
According to [EFF's deep dive](https://www.eff.org/ar/deeplinks/2016/07/new-wordlists-random-passphrases)
|
29
|
+
into their wordlist released on 2016, each word has about 12.92 bits of
|
30
|
+
entropy.
|
31
|
+
|
32
|
+
By default, `Lorca` generates an 8-word passphrase (about 102.8 bits of
|
33
|
+
entropy). Which, considering the relevant calculations on this
|
34
|
+
[table](https://i.imgur.com/e3mGIFY.png), should take about 1.6 billion
|
35
|
+
years to guess when the cracker is able to generate 10^13 permutations
|
36
|
+
per second. Depending on the user's threat model `Lorca` may be configured
|
37
|
+
to return a passphrase with up to 53 words; about 684.76 bits of entropy.
|
38
|
+
|
39
|
+
|
40
|
+
## Checksum
|
41
|
+
|
42
|
+
Although it's possible to install gems with a trust policy, is not a
|
43
|
+
widely used feature. In practice, we'd have to allow installing gems
|
44
|
+
without a cert defeating the purpose of having a policy.
|
45
|
+
|
46
|
+
Instead, we include the checksum of the released gems, as recommended on
|
47
|
+
[rubygems](https://guides.rubygems.org/security/#include-checksum-of-released-gems-in-your-repository).
|
48
|
+
To verify the gem before installing it
|
49
|
+
|
50
|
+
```terminal
|
51
|
+
$ gem fetch lorca -v <version>
|
52
|
+
$ ruby -rdigest/sha2 -e "puts Digest::SHA512.new.hexdigest(File.read('lorca-<version>.gem'))"
|
53
|
+
```
|
54
|
+
|
55
|
+
Compare it with the hash in `checksum/lorca-<version>.gem.sha512` to
|
56
|
+
verify the integrity of the fetched gem. If the checksum matches
|
57
|
+
|
58
|
+
```terminal
|
59
|
+
$ gem install lorca -v <version>
|
60
|
+
```
|
61
|
+
|
62
|
+
If you wish to audit the gem locally before installation
|
63
|
+
|
64
|
+
```sh
|
65
|
+
$ gem unpack lorca -v <version>
|
66
|
+
```
|
67
|
+
|
68
|
+
|
69
|
+
## Acknowledgments
|
70
|
+
|
71
|
+
We would like to thank the following researchers:
|
72
|
+
|
73
|
+
| Name/alias | Date | Bug reported | Contact |
|
74
|
+
|------------|------|--------------|---------|
|
75
|
+
| | | | |
|
data/lib/lorca/expansions/cli.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
|
4
4
|
require "optparse"
|
5
5
|
require "clipboard"
|
6
|
+
require "lorca/version"
|
6
7
|
require "lorca/expansions/phrases"
|
7
8
|
|
8
9
|
class Lorca
|
@@ -29,32 +30,46 @@ class Lorca
|
|
29
30
|
expansion.add Lorca::Phrases
|
30
31
|
end
|
31
32
|
|
32
|
-
def parse argv=$argv, writer:Lorca.new,
|
33
|
+
def parse argv=$argv, writer:Lorca.new, stash: Clipboard, outlet: $stdout
|
33
34
|
cli = OptionParser.new do |parser|
|
34
|
-
write_phrase parser,
|
35
|
-
display_help parser,
|
35
|
+
write_phrase parser, outlet, writer, stash
|
36
|
+
display_help parser, outlet
|
37
|
+
display_version parser, outlet
|
36
38
|
end
|
37
39
|
|
38
40
|
cli.parse!(*argv)
|
39
41
|
|
40
|
-
|
42
|
+
outlet.puts cli
|
41
43
|
end
|
42
44
|
|
43
45
|
private
|
44
46
|
|
45
|
-
def write_phrase cli,
|
47
|
+
def write_phrase cli, outlet, writer, stash
|
46
48
|
description = "Generate a passphrase with optional number of WORDS"
|
47
49
|
cli.on("-p", "--phrase [WORDS]", Integer, description) { |nw|
|
48
|
-
phrase =
|
49
|
-
|
50
|
-
|
50
|
+
phrase = writer.phrase words: nw
|
51
|
+
message = outlet.tty? ? stash_away(phrase, store: stash) : phrase
|
52
|
+
|
53
|
+
outlet.puts message
|
51
54
|
exit_cli
|
52
55
|
}
|
53
56
|
end
|
54
57
|
|
55
|
-
def
|
58
|
+
def stash_away phrase, store:
|
59
|
+
store.copy phrase
|
60
|
+
"passphrase copied to clipboard"
|
61
|
+
end
|
62
|
+
|
63
|
+
def display_help cli, outlet
|
56
64
|
cli.on_tail("-h", "--help", "Show this message") {
|
57
|
-
|
65
|
+
outlet.puts cli
|
66
|
+
exit_cli
|
67
|
+
}
|
68
|
+
end
|
69
|
+
|
70
|
+
def display_version cli, outlet
|
71
|
+
cli.on("--version", "Show Lorca's current version") {
|
72
|
+
outlet.puts Lorca::LorcaVersion
|
58
73
|
exit_cli
|
59
74
|
}
|
60
75
|
end
|
@@ -39,9 +39,11 @@ class Lorca
|
|
39
39
|
end
|
40
40
|
|
41
41
|
module LorcaPlugin
|
42
|
-
# The phrase written given a number of +words+.
|
43
|
-
|
42
|
+
# The phrase written given a number of +words+. Defaults to
|
43
|
+
# Phrases::MIN_WORDS
|
44
|
+
def phrase words: nil
|
44
45
|
conf = settings[:phrases]
|
46
|
+
words = words ? words : conf[:min_words]
|
45
47
|
words = validate_counter words, range: conf[:min_words]..conf[:max_words]
|
46
48
|
phrase_ids = []
|
47
49
|
words.times { phrase_ids.push(roll_word_id dice: conf[:dice_to_toss]) }
|
@@ -52,6 +54,7 @@ class Lorca
|
|
52
54
|
private
|
53
55
|
|
54
56
|
WordIdError = Class.new StandardError
|
57
|
+
private_constant :WordIdError
|
55
58
|
|
56
59
|
def word id, wordlist: settings[:phrases][:vocabulary], manager: SDBM
|
57
60
|
read_only = 0444
|
data/lib/lorca/manifest.rb
CHANGED
@@ -34,6 +34,15 @@ class Lorca
|
|
34
34
|
"ISC"
|
35
35
|
end
|
36
36
|
|
37
|
+
# Online resources.
|
38
|
+
def self.metadata
|
39
|
+
{
|
40
|
+
"source_code_uri" => repo,
|
41
|
+
"bug_tracker_uri" => "https://notabug.org/rem/lorca/issues",
|
42
|
+
"changelog_uri" => "https://notabug.org/rem/lorca/src/master/ChangeLog.md"
|
43
|
+
}.freeze
|
44
|
+
end
|
45
|
+
|
37
46
|
# Array of official gem files. Manually maintained at Manifest.md.
|
38
47
|
#--
|
39
48
|
# Not frozen, raises warnings building gem.
|
@@ -65,6 +74,9 @@ class Lorca
|
|
65
74
|
end
|
66
75
|
|
67
76
|
# Array of binstubs.
|
77
|
+
#---
|
78
|
+
# Officially, there can only be one
|
79
|
+
#+++
|
68
80
|
def self.binstubs
|
69
81
|
%w[lorca].freeze
|
70
82
|
end
|
data/lib/lorca/version.rb
CHANGED
@@ -6,10 +6,10 @@ class Lorca
|
|
6
6
|
LorcaMajorVersion = 0
|
7
7
|
|
8
8
|
# Minor version. Updated for new feature releases.
|
9
|
-
LorcaMinorVersion =
|
9
|
+
LorcaMinorVersion = 5
|
10
10
|
|
11
11
|
# Patch version. Updated only for bug fixes from the last feature release.
|
12
|
-
LorcaPatchVersion =
|
12
|
+
LorcaPatchVersion = 0
|
13
13
|
|
14
14
|
# Full version as a string.
|
15
15
|
LorcaVersion = "#{LorcaMajorVersion}.#{LorcaMinorVersion}.#{LorcaPatchVersion}"
|
data/test/_config/minitest.rb
CHANGED
data/test/bin/test_lorca.rb
CHANGED
@@ -3,6 +3,16 @@
|
|
3
3
|
require_relative "./../../../_config/minitest"
|
4
4
|
require "lorca/expansions/cli"
|
5
5
|
|
6
|
+
class FakeOutlet
|
7
|
+
def tty?
|
8
|
+
true
|
9
|
+
end
|
10
|
+
|
11
|
+
def puts text
|
12
|
+
$stdout.puts text
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
6
16
|
class TestLorcaCLIExpansion < Minitest::Test
|
7
17
|
|
8
18
|
# test dependencies, useful for testing Lorca::CLI but should be replaceable
|
@@ -27,26 +37,42 @@ class TestLorcaCLIExpansion < Minitest::Test
|
|
27
37
|
writer = Lorca.add(Lorca::Phrases).new
|
28
38
|
message = %r"\Apassphrase copied to clipboard\n"i # no `\z` due to `exit_cli`
|
29
39
|
copied = "ah"
|
40
|
+
outlet = FakeOutlet.new
|
30
41
|
|
31
42
|
writer.stub :phrase, copied do
|
32
|
-
assert_output(message) { @cli.parse @argv.("--phrase"), writer: writer }
|
33
|
-
assert_output { @cli.parse @argv.("-p"), writer: writer }
|
43
|
+
assert_output(message) { @cli.parse @argv.("--phrase"), writer: writer, outlet: outlet }
|
44
|
+
assert_output(message) { @cli.parse @argv.("-p"), writer: writer, outlet: outlet }
|
34
45
|
end
|
35
46
|
|
36
47
|
assert_equal copied, Clipboard.paste
|
37
48
|
Clipboard.clear
|
38
49
|
end
|
39
50
|
|
40
|
-
def
|
51
|
+
def test_phrase_flag_can_take_an_optional_number_argument
|
41
52
|
writer = Lorca.add(Lorca::Phrases).new
|
42
53
|
copied = "ah"
|
54
|
+
outlet = FakeOutlet.new
|
43
55
|
|
44
56
|
writer.stub :phrase, copied do
|
45
|
-
_ = capture_io { @cli.parse @argv.("--phrase 9"), writer: writer }
|
57
|
+
_ = capture_io { @cli.parse @argv.("--phrase 9"), writer: writer, outlet: outlet }
|
46
58
|
assert_equal copied, Clipboard.paste
|
47
59
|
end
|
48
60
|
Clipboard.clear
|
49
61
|
end
|
62
|
+
|
63
|
+
def test_phrase_can_be_streamed
|
64
|
+
writer = Lorca.add(Lorca::Phrases).new
|
65
|
+
copied = "ah"
|
66
|
+
|
67
|
+
writer.stub :phrase, copied do
|
68
|
+
assert_output(%r"\Aah") { @cli.parse @argv.("--phrase"), writer: writer }
|
69
|
+
assert_output(%r"\Aah") { @cli.parse @argv.("-p"), writer: writer }
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def test__version_displays_lorca_version
|
74
|
+
assert_output(%r"\A#{Lorca::LorcaVersion}") { @cli.parse @argv.("--version") }
|
75
|
+
end
|
50
76
|
end
|
51
77
|
|
52
78
|
class TestCLILorcaPlugin < Minitest::Test
|
data/test/lib/lorca/test_doc.rb
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# -*- frozen_string_literal: true -*-
|
3
3
|
|
4
|
-
|
4
|
+
require_relative "./../../_config/minitest"
|
5
5
|
require "lorca/doc"
|
6
6
|
|
7
7
|
# Tests w/ assert_respond_to show we care about the method existing not what's
|
8
8
|
# returned, nor it's type. The type is implicitly check by building a gem w/o
|
9
9
|
# warnings. There's a test for that.
|
10
10
|
class TestLorcaDoc < Minitest::Test
|
11
|
+
|
12
|
+
parallelize_me!
|
13
|
+
|
11
14
|
def test_has_summary
|
12
15
|
assert_respond_to Lorca::LorcaDoc, :summary
|
13
16
|
end
|
@@ -4,6 +4,9 @@ require_relative "./../../_config/minitest"
|
|
4
4
|
require "lorca/manifest"
|
5
5
|
|
6
6
|
class TestLorcaManifest < Minitest::Test
|
7
|
+
|
8
|
+
parallelize_me!
|
9
|
+
|
7
10
|
def test_has_gem_name
|
8
11
|
assert_equal "lorca", Lorca::LorcaManifest.gem_name
|
9
12
|
end
|
@@ -35,10 +38,23 @@ class TestLorcaManifest < Minitest::Test
|
|
35
38
|
assert_equal "ISC", Lorca::LorcaManifest.license
|
36
39
|
end
|
37
40
|
|
41
|
+
def test_has_metadata
|
42
|
+
expected_metadata = {
|
43
|
+
"source_code_uri" => "https://notabug.org/rem/lorca",
|
44
|
+
"bug_tracker_uri" => "https://notabug.org/rem/lorca/issues",
|
45
|
+
"changelog_uri" => "https://notabug.org/rem/lorca/src/master/ChangeLog.md"
|
46
|
+
}
|
47
|
+
|
48
|
+
metadata = Lorca::LorcaManifest.metadata
|
49
|
+
|
50
|
+
assert_equal expected_metadata, metadata
|
51
|
+
assert_frozen metadata
|
52
|
+
end
|
53
|
+
|
38
54
|
def test_has_files
|
39
55
|
# test/**/dev/**/*.* files are excluded because they are development helpers
|
40
56
|
expected_files =
|
41
|
-
%w[ChangeLog.md License.md Manifest.md ReadMe.md _expand_lib_path.rb] +
|
57
|
+
%w[ChangeLog.md License.md Manifest.md ReadMe.md Security.md _expand_lib_path.rb] +
|
42
58
|
Dir["bin/*"] +
|
43
59
|
Dir["{lib,test}/**/*.{rb,txt,dir,pag}"] -
|
44
60
|
Dir["test/**/dev/**/*.{rb,txt}"]
|
@@ -75,12 +91,15 @@ class TestLorcaManifest < Minitest::Test
|
|
75
91
|
assert_equal "bin", Lorca::LorcaManifest.bindir
|
76
92
|
end
|
77
93
|
|
94
|
+
# We don't check all binstubs in bin/ are included. Officially, there
|
95
|
+
# can only be one
|
78
96
|
def test_binstubs_are_among_files_in_the_manifest
|
79
97
|
binstubs = Lorca::LorcaManifest.binstubs
|
80
98
|
files = Lorca::LorcaManifest.files
|
81
99
|
bindir = Lorca::LorcaManifest.bindir
|
82
100
|
|
83
101
|
binstubs.each { |b| assert_includes files, "#{bindir}/#{b}" }
|
102
|
+
|
84
103
|
assert_frozen binstubs
|
85
104
|
end
|
86
105
|
end
|
@@ -1,10 +1,13 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# -*- frozen_string_literal: true -*-
|
3
3
|
|
4
|
-
|
4
|
+
require_relative "./../../_config/minitest"
|
5
5
|
require "lorca/version"
|
6
6
|
|
7
7
|
class TestLorcaVersion < Minitest::Test
|
8
|
+
|
9
|
+
parallelize_me!
|
10
|
+
|
8
11
|
def test_lorca_has_a_version
|
9
12
|
assert_match %r{\d+.\d+.\d+}, Lorca::LorcaVersion
|
10
13
|
end
|
data/test/lib/test_lorca.rb
CHANGED
@@ -42,6 +42,9 @@ module ConfigurableExpansion
|
|
42
42
|
end
|
43
43
|
|
44
44
|
class TestLorcaCoreExtension < Minitest::Test
|
45
|
+
|
46
|
+
parallelize_me!
|
47
|
+
|
45
48
|
def test_lorca_can_add_expansions
|
46
49
|
Lorca.add FakeExpansion
|
47
50
|
lorca = Lorca.new
|
@@ -80,6 +83,9 @@ class TestLorcaCoreExtension < Minitest::Test
|
|
80
83
|
end
|
81
84
|
|
82
85
|
class TestLorcaCorePlugin < Minitest::Test
|
86
|
+
|
87
|
+
parallelize_me!
|
88
|
+
|
83
89
|
def setup
|
84
90
|
@lorca = Lorca.new
|
85
91
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lorca
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- René Maya
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clipboard
|
@@ -16,40 +16,40 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.3'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
22
|
+
version: 1.3.3
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1.
|
29
|
+
version: '1.3'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
32
|
+
version: 1.3.3
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: bundler
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
39
|
+
version: '2.0'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: 2.0.1
|
43
43
|
type: :development
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
49
|
+
version: '2.0'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
52
|
+
version: 2.0.1
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: rake
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: '12.3'
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 12.3.
|
62
|
+
version: 12.3.2
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: '12.3'
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 12.3.
|
72
|
+
version: 12.3.2
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: hanna-nouveau
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,22 +134,22 @@ dependencies:
|
|
134
134
|
name: minitest-proveit
|
135
135
|
requirement: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- - "~>"
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: '1.0'
|
140
137
|
- - ">="
|
141
138
|
- !ruby/object:Gem::Version
|
142
139
|
version: 1.0.0
|
140
|
+
- - "~>"
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '1.0'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
145
|
version_requirements: !ruby/object:Gem::Requirement
|
146
146
|
requirements:
|
147
|
-
- - "~>"
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: '1.0'
|
150
147
|
- - ">="
|
151
148
|
- !ruby/object:Gem::Version
|
152
149
|
version: 1.0.0
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '1.0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: minitest-autotest
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -183,11 +183,13 @@ extra_rdoc_files:
|
|
183
183
|
- License.md
|
184
184
|
- Manifest.md
|
185
185
|
- ReadMe.md
|
186
|
+
- Security.md
|
186
187
|
files:
|
187
188
|
- ChangeLog.md
|
188
189
|
- License.md
|
189
190
|
- Manifest.md
|
190
191
|
- ReadMe.md
|
192
|
+
- Security.md
|
191
193
|
- _expand_lib_path.rb
|
192
194
|
- bin/lorca
|
193
195
|
- bin/lorca-alpine
|
@@ -210,7 +212,10 @@ files:
|
|
210
212
|
homepage: https://notabug.org/rem/lorca
|
211
213
|
licenses:
|
212
214
|
- ISC
|
213
|
-
metadata:
|
215
|
+
metadata:
|
216
|
+
source_code_uri: https://notabug.org/rem/lorca
|
217
|
+
bug_tracker_uri: https://notabug.org/rem/lorca/issues
|
218
|
+
changelog_uri: https://notabug.org/rem/lorca/src/master/ChangeLog.md
|
214
219
|
post_install_message:
|
215
220
|
rdoc_options:
|
216
221
|
- "--line-numbers"
|
@@ -231,8 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
236
|
- !ruby/object:Gem::Version
|
232
237
|
version: '0'
|
233
238
|
requirements: []
|
234
|
-
|
235
|
-
rubygems_version: 2.7.7
|
239
|
+
rubygems_version: 3.0.2
|
236
240
|
signing_key:
|
237
241
|
specification_version: 4
|
238
242
|
summary: Passphrase, and password generator
|