random-words 1.0.4
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 +7 -0
- data/.irbrc +4 -0
- data/.rspec +4 -0
- data/.rspec_status +39 -0
- data/.rubocop.yml +64 -0
- data/CHANGELOG.md +29 -0
- data/Gemfile +18 -0
- data/Gemfile.lock +111 -0
- data/README.md +90 -0
- data/Rakefile +85 -0
- data/bin/randw +334 -0
- data/lib/random-words/generator.rb +533 -0
- data/lib/random-words/string.rb +56 -0
- data/lib/random-words/version.rb +4 -0
- data/lib/random-words/words/bacon/adjectives.txt +329 -0
- data/lib/random-words/words/bacon/adverbs.txt +69 -0
- data/lib/random-words/words/bacon/articles-plural.txt +10 -0
- data/lib/random-words/words/bacon/articles-singular.txt +10 -0
- data/lib/random-words/words/bacon/clauses.txt +639 -0
- data/lib/random-words/words/bacon/conjunctions-subordinate.txt +29 -0
- data/lib/random-words/words/bacon/nouns-plural.txt +168 -0
- data/lib/random-words/words/bacon/nouns-singular.txt +200 -0
- data/lib/random-words/words/bacon/numbers.txt +21 -0
- data/lib/random-words/words/bacon/verbs-passive.txt +105 -0
- data/lib/random-words/words/bacon/verbs-plural.txt +154 -0
- data/lib/random-words/words/bacon/verbs-singular.txt +106 -0
- data/lib/random-words/words/corporate/adjectives.txt +196 -0
- data/lib/random-words/words/corporate/adverbs.txt +462 -0
- data/lib/random-words/words/corporate/articles-plural.txt +10 -0
- data/lib/random-words/words/corporate/articles-singular.txt +10 -0
- data/lib/random-words/words/corporate/clauses.txt +101 -0
- data/lib/random-words/words/corporate/conjunctions-subordinate.txt +29 -0
- data/lib/random-words/words/corporate/nouns-plural.txt +321 -0
- data/lib/random-words/words/corporate/nouns-singular.txt +474 -0
- data/lib/random-words/words/corporate/numbers.txt +21 -0
- data/lib/random-words/words/corporate/verbs-passive.txt +495 -0
- data/lib/random-words/words/corporate/verbs-plural.txt +173 -0
- data/lib/random-words/words/corporate/verbs-singular.txt +146 -0
- data/lib/random-words/words/english/adjectives.txt +325 -0
- data/lib/random-words/words/english/adverbs.txt +462 -0
- data/lib/random-words/words/english/articles-plural.txt +10 -0
- data/lib/random-words/words/english/articles-singular.txt +10 -0
- data/lib/random-words/words/english/clauses.txt +639 -0
- data/lib/random-words/words/english/conjunctions-subordinate.txt +29 -0
- data/lib/random-words/words/english/nouns-plural.txt +524 -0
- data/lib/random-words/words/english/nouns-singular.txt +530 -0
- data/lib/random-words/words/english/numbers.txt +21 -0
- data/lib/random-words/words/english/verbs-passive.txt +495 -0
- data/lib/random-words/words/english/verbs-plural.txt +325 -0
- data/lib/random-words/words/english/verbs-singular.txt +350 -0
- data/lib/random-words/words/latin/adjectives.txt +188 -0
- data/lib/random-words/words/latin/adverbs.txt +212 -0
- data/lib/random-words/words/latin/articles-plural.txt +122 -0
- data/lib/random-words/words/latin/articles-singular.txt +19 -0
- data/lib/random-words/words/latin/clauses.txt +89 -0
- data/lib/random-words/words/latin/conjunctions-subordinate.txt +104 -0
- data/lib/random-words/words/latin/nouns-plural.txt +190 -0
- data/lib/random-words/words/latin/nouns-singular.txt +193 -0
- data/lib/random-words/words/latin/numbers.txt +21 -0
- data/lib/random-words/words/latin/verbs-passive.txt +171 -0
- data/lib/random-words/words/latin/verbs-plural.txt +177 -0
- data/lib/random-words/words/latin/verbs-singular.txt +218 -0
- data/lib/random-words.rb +6 -0
- data/random-words.gemspec +36 -0
- data/src/_README.md +92 -0
- metadata +119 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 42163e52744bbdbc3f9bd4d0353df06cfe1942d69b8af451833e5b5db370d068
|
4
|
+
data.tar.gz: 121a950df08f9729228b17382f7c6af429139d181f27b50f844969597d587c28
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 06ad1503982001ecbe33f28972f158e2afb9b77f0620fff22ee38b1ff11fffdf538756e9975fe151be652fa1849a86f748fb79bb29989ff92ba867c156d4ba2b
|
7
|
+
data.tar.gz: 6f213ced087fa35366c9cb28c2a435fac1d47f0c6b9e417e15379d814fd1e76134f075d6af8eefd5ff31df5272d1e03e970990d9885fe0d627f8a06057658311
|
data/.irbrc
ADDED
data/.rspec
ADDED
data/.rspec_status
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
example_id | status | run_time |
|
2
|
+
---------------------------------- | ------ | --------------- |
|
3
|
+
./spec/generator_spec.rb[1:1:1] | passed | 0.00343 seconds |
|
4
|
+
./spec/generator_spec.rb[1:2:1] | passed | 0.00242 seconds |
|
5
|
+
./spec/generator_spec.rb[1:3:1] | passed | 0.0016 seconds |
|
6
|
+
./spec/generator_spec.rb[1:4:1] | passed | 0.00094 seconds |
|
7
|
+
./spec/generator_spec.rb[1:5:1] | passed | 0.00259 seconds |
|
8
|
+
./spec/generator_spec.rb[1:5:2] | passed | 0.00107 seconds |
|
9
|
+
./spec/generator_spec.rb[1:5:3] | passed | 0.00061 seconds |
|
10
|
+
./spec/generator_spec.rb[1:5:4] | passed | 0.00099 seconds |
|
11
|
+
./spec/generator_spec.rb[1:5:5] | passed | 0.00092 seconds |
|
12
|
+
./spec/generator_spec.rb[1:6:1] | passed | 0.00113 seconds |
|
13
|
+
./spec/generator_spec.rb[1:7:1] | passed | 0.00059 seconds |
|
14
|
+
./spec/generator_spec.rb[1:7:2] | passed | 0.00129 seconds |
|
15
|
+
./spec/generator_spec.rb[1:7:3] | passed | 0.00067 seconds |
|
16
|
+
./spec/generator_spec.rb[1:8:1] | passed | 0.00103 seconds |
|
17
|
+
./spec/generator_spec.rb[1:9:1] | passed | 0.00069 seconds |
|
18
|
+
./spec/generator_spec.rb[1:10:1] | passed | 0.00071 seconds |
|
19
|
+
./spec/generator_spec.rb[1:11:1] | passed | 0.0005 seconds |
|
20
|
+
./spec/generator_spec.rb[1:12:1] | passed | 0.00224 seconds |
|
21
|
+
./spec/generator_spec.rb[1:13:1] | passed | 0.0005 seconds |
|
22
|
+
./spec/generator_spec.rb[1:13:2] | passed | 0.00055 seconds |
|
23
|
+
./spec/generator_spec.rb[1:14:1] | passed | 0.0005 seconds |
|
24
|
+
./spec/generator_spec.rb[1:14:2] | passed | 0.00077 seconds |
|
25
|
+
./spec/hello_world_spec.rb[1:1] | passed | 0.00003 seconds |
|
26
|
+
./spec/initialize_spec.rb[1:1:1] | passed | 0.00052 seconds |
|
27
|
+
./spec/initialize_spec.rb[1:1:2] | passed | 0.00049 seconds |
|
28
|
+
./spec/initialize_spec.rb[1:1:3] | passed | 0.00048 seconds |
|
29
|
+
./spec/initialize_spec.rb[1:1:4] | passed | 0.00043 seconds |
|
30
|
+
./spec/initialize_spec.rb[1:1:5:1] | passed | 0.00073 seconds |
|
31
|
+
./spec/initialize_spec.rb[1:1:6:1] | passed | 0.00054 seconds |
|
32
|
+
./spec/module_spec.rb[1:1] | passed | 0.00059 seconds |
|
33
|
+
./spec/string_spec.rb[1:1:1] | passed | 0.00003 seconds |
|
34
|
+
./spec/string_spec.rb[1:2:1] | passed | 0.00002 seconds |
|
35
|
+
./spec/string_spec.rb[1:2:2] | passed | 0.00002 seconds |
|
36
|
+
./spec/string_spec.rb[1:2:3] | passed | 0.00002 seconds |
|
37
|
+
./spec/string_spec.rb[1:3:1] | passed | 0.00005 seconds |
|
38
|
+
./spec/string_spec.rb[1:4:1] | passed | 0.00002 seconds |
|
39
|
+
./spec/string_spec.rb[1:5:1] | passed | 0.00003 seconds |
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
AllCops:
|
2
|
+
NewCops: enable
|
3
|
+
|
4
|
+
# Offense count: 3
|
5
|
+
# This cop supports safe autocorrection (--autocorrect).
|
6
|
+
Lint/ScriptPermission:
|
7
|
+
Exclude:
|
8
|
+
- 'lib/random-words.rb'
|
9
|
+
- 'lib/random-words/loremipsum.rb'
|
10
|
+
- 'lib/random-words/string.rb'
|
11
|
+
|
12
|
+
# Offense count: 1
|
13
|
+
# This cop supports safe autocorrection (--autocorrect).
|
14
|
+
# Configuration parameters: AutoCorrect.
|
15
|
+
Lint/UselessAssignment:
|
16
|
+
Exclude:
|
17
|
+
- 'lib/random-words/loremipsum.rb'
|
18
|
+
|
19
|
+
# Offense count: 3
|
20
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
|
21
|
+
Metrics/AbcSize:
|
22
|
+
Max: 39
|
23
|
+
|
24
|
+
# Offense count: 1
|
25
|
+
# Configuration parameters: CountComments, CountAsOne.
|
26
|
+
Metrics/ClassLength:
|
27
|
+
Max: 300
|
28
|
+
|
29
|
+
# Offense count: 2
|
30
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns.
|
31
|
+
Metrics/CyclomaticComplexity:
|
32
|
+
Max: 10
|
33
|
+
|
34
|
+
# Offense count: 3
|
35
|
+
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
|
36
|
+
Metrics/MethodLength:
|
37
|
+
Max: 50
|
38
|
+
|
39
|
+
# Offense count: 1
|
40
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns.
|
41
|
+
Metrics/PerceivedComplexity:
|
42
|
+
Max: 11
|
43
|
+
|
44
|
+
# Offense count: 1
|
45
|
+
# Configuration parameters: AllowedConstants.
|
46
|
+
Style/Documentation:
|
47
|
+
Exclude:
|
48
|
+
- 'spec/**/*'
|
49
|
+
- 'test/**/*'
|
50
|
+
- 'lib/random-words/string.rb'
|
51
|
+
|
52
|
+
# Offense count: 1
|
53
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
54
|
+
# Configuration parameters: RequireEnglish.
|
55
|
+
# SupportedStyles: use_perl_names, use_english_names, use_builtin_english_names
|
56
|
+
Style/SpecialGlobalVars:
|
57
|
+
EnforcedStyle: use_perl_names
|
58
|
+
|
59
|
+
# Offense count: 1
|
60
|
+
# This cop supports safe autocorrection (--autocorrect).
|
61
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
|
62
|
+
# URISchemes: http, https
|
63
|
+
Layout/LineLength:
|
64
|
+
Max: 135
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
### 1.0.3
|
2
|
+
|
3
|
+
2025-04-09 09:00
|
4
|
+
|
5
|
+
### 1.0.2
|
6
|
+
|
7
|
+
2025-04-09 08:59
|
8
|
+
|
9
|
+
### 1.0.1
|
10
|
+
|
11
|
+
2025-04-09 08:41
|
12
|
+
|
13
|
+
#### NEW
|
14
|
+
|
15
|
+
- Add randw binary
|
16
|
+
|
17
|
+
#### IMPROVED
|
18
|
+
|
19
|
+
- More testable methods
|
20
|
+
- Expand README
|
21
|
+
|
22
|
+
### 1.0.0
|
23
|
+
|
24
|
+
2025-04-08 07:34
|
25
|
+
|
26
|
+
#### IMPROVED
|
27
|
+
|
28
|
+
- Add documentation
|
29
|
+
|
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
# Specify your gem's dependencies in snibbets.gemspec.
|
6
|
+
gemspec
|
7
|
+
|
8
|
+
gem 'awesome_print', '~> 1.9'
|
9
|
+
gem 'bundler', '~> 2.0'
|
10
|
+
gem 'gem-release', '~> 2.2'
|
11
|
+
gem 'parse_gemspec-cli', '~> 1.0'
|
12
|
+
gem 'rake', '~> 13.0'
|
13
|
+
gem 'rdoc', '~> 6.3.4.1'
|
14
|
+
gem 'rspec', '~> 3.0'
|
15
|
+
gem 'simplecov', '~> 0.21'
|
16
|
+
gem 'simplecov-console', '~> 0.9'
|
17
|
+
gem 'standard', '~> 1.3'
|
18
|
+
gem 'yard', '~> 0.9', '>= 0.9.36'
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
random-words (1.0.4)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
ansi (1.5.0)
|
10
|
+
ast (2.4.3)
|
11
|
+
awesome_print (1.9.2)
|
12
|
+
diff-lcs (1.6.1)
|
13
|
+
docile (1.4.1)
|
14
|
+
gem-release (2.2.2)
|
15
|
+
json (2.10.2)
|
16
|
+
language_server-protocol (3.17.0.4)
|
17
|
+
lint_roller (1.1.0)
|
18
|
+
multi_json (1.15.0)
|
19
|
+
parallel (1.26.3)
|
20
|
+
parse_gemspec (1.0.0)
|
21
|
+
parse_gemspec-cli (1.0.0)
|
22
|
+
multi_json
|
23
|
+
parse_gemspec
|
24
|
+
thor
|
25
|
+
parser (3.3.7.4)
|
26
|
+
ast (~> 2.4.1)
|
27
|
+
racc
|
28
|
+
prism (1.4.0)
|
29
|
+
racc (1.8.1)
|
30
|
+
rainbow (3.1.1)
|
31
|
+
rake (13.2.1)
|
32
|
+
rdoc (6.3.4.1)
|
33
|
+
regexp_parser (2.10.0)
|
34
|
+
rexml (3.4.1)
|
35
|
+
rspec (3.13.0)
|
36
|
+
rspec-core (~> 3.13.0)
|
37
|
+
rspec-expectations (~> 3.13.0)
|
38
|
+
rspec-mocks (~> 3.13.0)
|
39
|
+
rspec-core (3.13.3)
|
40
|
+
rspec-support (~> 3.13.0)
|
41
|
+
rspec-expectations (3.13.3)
|
42
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
43
|
+
rspec-support (~> 3.13.0)
|
44
|
+
rspec-mocks (3.13.2)
|
45
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
46
|
+
rspec-support (~> 3.13.0)
|
47
|
+
rspec-support (3.13.2)
|
48
|
+
rubocop (1.52.1)
|
49
|
+
json (~> 2.3)
|
50
|
+
parallel (~> 1.10)
|
51
|
+
parser (>= 3.2.2.3)
|
52
|
+
rainbow (>= 2.2.2, < 4.0)
|
53
|
+
regexp_parser (>= 1.8, < 3.0)
|
54
|
+
rexml (>= 3.2.5, < 4.0)
|
55
|
+
rubocop-ast (>= 1.28.0, < 2.0)
|
56
|
+
ruby-progressbar (~> 1.7)
|
57
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
58
|
+
rubocop-ast (1.43.0)
|
59
|
+
parser (>= 3.3.7.2)
|
60
|
+
prism (~> 1.4)
|
61
|
+
rubocop-performance (1.18.0)
|
62
|
+
rubocop (>= 1.7.0, < 2.0)
|
63
|
+
rubocop-ast (>= 0.4.0)
|
64
|
+
ruby-progressbar (1.13.0)
|
65
|
+
simplecov (0.22.0)
|
66
|
+
docile (~> 1.1)
|
67
|
+
simplecov-html (~> 0.11)
|
68
|
+
simplecov_json_formatter (~> 0.1)
|
69
|
+
simplecov-console (0.9.1)
|
70
|
+
ansi
|
71
|
+
simplecov
|
72
|
+
terminal-table
|
73
|
+
simplecov-html (0.13.1)
|
74
|
+
simplecov_json_formatter (0.1.4)
|
75
|
+
standard (1.29.0)
|
76
|
+
language_server-protocol (~> 3.17.0.2)
|
77
|
+
lint_roller (~> 1.0)
|
78
|
+
rubocop (~> 1.52.0)
|
79
|
+
standard-custom (~> 1.0.0)
|
80
|
+
standard-performance (~> 1.1.0)
|
81
|
+
standard-custom (1.0.1)
|
82
|
+
lint_roller (~> 1.0)
|
83
|
+
standard-performance (1.1.0)
|
84
|
+
lint_roller (~> 1.0)
|
85
|
+
rubocop-performance (~> 1.18.0)
|
86
|
+
terminal-table (3.0.2)
|
87
|
+
unicode-display_width (>= 1.1.1, < 3)
|
88
|
+
thor (1.3.2)
|
89
|
+
unicode-display_width (2.6.0)
|
90
|
+
yard (0.9.37)
|
91
|
+
|
92
|
+
PLATFORMS
|
93
|
+
arm64-darwin-24
|
94
|
+
ruby
|
95
|
+
|
96
|
+
DEPENDENCIES
|
97
|
+
awesome_print (~> 1.9)
|
98
|
+
bundler (~> 2.0)
|
99
|
+
gem-release (~> 2.2)
|
100
|
+
parse_gemspec-cli (~> 1.0)
|
101
|
+
rake (~> 13.0)
|
102
|
+
random-words!
|
103
|
+
rdoc (~> 6.3.4.1)
|
104
|
+
rspec (~> 3.0)
|
105
|
+
simplecov (~> 0.21)
|
106
|
+
simplecov-console (~> 0.9)
|
107
|
+
standard (~> 1.3)
|
108
|
+
yard (~> 0.9, >= 0.9.36)
|
109
|
+
|
110
|
+
BUNDLED WITH
|
111
|
+
2.6.6
|
data/README.md
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
[](https://rubygems.org/gems/snibbets)
|
4
|
+
|
5
|
+
A random text (Lorem Ipsum) generator.
|
6
|
+
|
7
|
+
### Installation
|
8
|
+
|
9
|
+
gem install random-words
|
10
|
+
|
11
|
+
Depending on your setup, you may need `gem install --user-install random-words`, or in worst case scenario, `sudo gem install random-words`. You can also use `brew gem install random-words` if you use [Homebrew](https://brew.sh).
|
12
|
+
|
13
|
+
### CLI
|
14
|
+
|
15
|
+
The gem installs a binary `randw`. It can generate random characters, sentences, paragraphs, and passwords.
|
16
|
+
|
17
|
+
```console
|
18
|
+
Usage: randw [options]
|
19
|
+
Options:
|
20
|
+
-S, --source [SOURCE] Specify the source language (default: latin)
|
21
|
+
-l [short|medium|long|very_long],
|
22
|
+
--length Specify the length of the sentence
|
23
|
+
--graf-length [NUMBER] Specify the number of sentences in a paragraph
|
24
|
+
-s, --sentences [NUMBER] Generate random sentences
|
25
|
+
-p, --paragraphs [NUMBER] Generate random paragraphs
|
26
|
+
-w, --words [NUMBER] Generate random words
|
27
|
+
-c, --characters [NUMBER] Generate random characters
|
28
|
+
--password Generate a random password
|
29
|
+
--separator [CHAR] Specify the separator character for the password
|
30
|
+
-n, --no-whitespace Specify whether to remove whitespace in generated text (characters only)
|
31
|
+
-d, --debug Enable debug mode, displays sentence/word/character counts
|
32
|
+
-h, --help Display this help message
|
33
|
+
-v, --version Display the version
|
34
|
+
-t, --test Run the full debug test
|
35
|
+
```
|
36
|
+
|
37
|
+
### Library
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
require 'random-words'
|
41
|
+
|
42
|
+
# Argument defines source dictionary (latin, english, corporate, bacon)
|
43
|
+
rw = RandomWords::Generator.new(:corporate)
|
44
|
+
# Change source dictionary and re-init
|
45
|
+
rw.source = :bacon
|
46
|
+
|
47
|
+
rw.paragraph_length = 5 # Number of sentences in a paragraph (default 3)
|
48
|
+
rw.sentence_length = :short # :short, :medium, :long, :verylong (default :medium)
|
49
|
+
|
50
|
+
# Redefine lengths, can include :short, :medium, :long, and :verylong
|
51
|
+
rw.lengths = { short: 100, medium: 300 }
|
52
|
+
|
53
|
+
## Characters
|
54
|
+
# Outputs words but limits total to characters
|
55
|
+
puts rw.characters(20)
|
56
|
+
# limits total characters, allowing truncation
|
57
|
+
puts rw.characters(20, whole_words: false)
|
58
|
+
|
59
|
+
## Sentences
|
60
|
+
# Output a sentence based on @sentence_length
|
61
|
+
puts rw.sentence
|
62
|
+
# Output a sentence with a specific number of characters
|
63
|
+
puts rw.sentence(300)
|
64
|
+
# Output an array of # sentences
|
65
|
+
puts rw.sentences(3)
|
66
|
+
|
67
|
+
## Paragraphs
|
68
|
+
# Output a paragraph based on @paragraph_length
|
69
|
+
puts rw.paragraph
|
70
|
+
# Output a paragraph with a specified number of sentences
|
71
|
+
# Sentence length is still determined by @sentence_length
|
72
|
+
puts rw.paragraph(2)
|
73
|
+
|
74
|
+
## Attributes
|
75
|
+
# Parts of speech (arrays, r/w)
|
76
|
+
rw.adjectives
|
77
|
+
rw.articles
|
78
|
+
rw.clauses
|
79
|
+
rw.nouns
|
80
|
+
rw.plural_nouns
|
81
|
+
rw.verbs
|
82
|
+
rw.plural_verbs
|
83
|
+
rw.subordinate_conjunctions
|
84
|
+
rw.numbers
|
85
|
+
|
86
|
+
# Other attributes (r/w)
|
87
|
+
rw.source
|
88
|
+
rw.paragraph_length
|
89
|
+
rw.sentence_length
|
90
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
require 'rdoc/task'
|
4
|
+
require 'standard/rake'
|
5
|
+
require 'yard'
|
6
|
+
|
7
|
+
Rake::RDocTask.new do |rd|
|
8
|
+
rd.main = 'README.rdoc'
|
9
|
+
rd.rdoc_files.include('README.rdoc', 'lib/**/*.rb', 'bin/**/*')
|
10
|
+
rd.title = 'RandomWords'
|
11
|
+
end
|
12
|
+
|
13
|
+
YARD::Rake::YardocTask.new do |t|
|
14
|
+
t.files = ['lib/random-words/**/*.rb']
|
15
|
+
t.options = ['--markup-provider=redcarpet', '--markup=markdown', '--no-private', '-p', 'yard_templates']
|
16
|
+
# t.stats_options = ['--list-undoc']
|
17
|
+
end
|
18
|
+
|
19
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
20
|
+
t.rspec_opts = '--pattern spec/**/*_spec.rb'
|
21
|
+
end
|
22
|
+
|
23
|
+
task default: %i[test]
|
24
|
+
|
25
|
+
desc 'Alias for build'
|
26
|
+
task package: :build
|
27
|
+
|
28
|
+
task test: 'spec'
|
29
|
+
task lint: 'standard'
|
30
|
+
task format: 'standard:fix'
|
31
|
+
|
32
|
+
desc 'Open an interactive ruby console'
|
33
|
+
task :console do
|
34
|
+
require 'irb'
|
35
|
+
require 'bundler/setup'
|
36
|
+
require 'random-words'
|
37
|
+
ARGV.clear
|
38
|
+
IRB.start
|
39
|
+
end
|
40
|
+
|
41
|
+
desc 'Development version check'
|
42
|
+
task :ver do
|
43
|
+
gver = `git ver`
|
44
|
+
cver = IO.read(File.join(File.dirname(__FILE__), 'CHANGELOG.md')).match(/^#+ (\d+\.\d+\.\d+(\w+)?)/)[1]
|
45
|
+
res = `grep VERSION lib/random-words/version.rb`
|
46
|
+
version = res.match(/VERSION *= *['"](\d+\.\d+\.\d+(\w+)?)/)[1]
|
47
|
+
puts "git tag: #{gver}"
|
48
|
+
puts "version.rb: #{version}"
|
49
|
+
puts "changelog: #{cver}"
|
50
|
+
end
|
51
|
+
|
52
|
+
desc 'Changelog version check'
|
53
|
+
task :cver do
|
54
|
+
puts IO.read(File.join(File.dirname(__FILE__), 'CHANGELOG.md')).match(/^#+ (\d+\.\d+\.\d+(\w+)?)/)[1]
|
55
|
+
end
|
56
|
+
|
57
|
+
desc 'Bump incremental version number'
|
58
|
+
task :bump, :type do |_, args|
|
59
|
+
args.with_defaults(type: 'inc')
|
60
|
+
version_file = 'lib/random-words/version.rb'
|
61
|
+
content = IO.read(version_file)
|
62
|
+
content.sub!(/VERSION = '(?<major>\d+)\.(?<minor>\d+)\.(?<inc>\d+)(?<pre>\S+)?'/) do
|
63
|
+
m = Regexp.last_match
|
64
|
+
major = m['major'].to_i
|
65
|
+
minor = m['minor'].to_i
|
66
|
+
inc = m['inc'].to_i
|
67
|
+
pre = m['pre']
|
68
|
+
|
69
|
+
case args[:type]
|
70
|
+
when /^maj/
|
71
|
+
major += 1
|
72
|
+
minor = 0
|
73
|
+
inc = 0
|
74
|
+
when /^min/
|
75
|
+
minor += 1
|
76
|
+
inc = 0
|
77
|
+
else
|
78
|
+
inc += 1
|
79
|
+
end
|
80
|
+
|
81
|
+
$stdout.puts "At version #{major}.#{minor}.#{inc}#{pre}"
|
82
|
+
"VERSION = '#{major}.#{minor}.#{inc}#{pre}'"
|
83
|
+
end
|
84
|
+
File.open(version_file, 'w+') { |f| f.puts content }
|
85
|
+
end
|