haikunate 0.1.1 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d42b1e1026d61edb66c65ce2782215450fd609fbe211b6250603f2d1bd8e1c85
4
- data.tar.gz: 222ac2a1841fc75eef6556db50fb0cc1aad62660801bd8f92afad56dfd3b8e3a
3
+ metadata.gz: 6580132b92685bfb3a1fe0e6bf70fa62899396e822ecb8f2c3854733954522a2
4
+ data.tar.gz: 82eb51564de7b4cc22be8d44ce80f91e94a01b544e41269522d36cecd446fec7
5
5
  SHA512:
6
- metadata.gz: e40ce8c32b27532ce9ae82e8a02af28aa39a1a823da3175287c548be41b66f350dfced286edce2c0137a233e83779dab06c8a642b3f0a32a58df9e86484a5226
7
- data.tar.gz: 4b829be49f75ccf912fff9c273db7eae1efaf4439a817ac64df1b3efe9e53da8a7884bd7a403746e5e37ffada75aedd5e6238e0ce56dadac7bcd4c00b181c59a
6
+ metadata.gz: aa6fca76c783d6df152176449c61f3e13e54289df7b4dd103d3f966aaa50ba13a6a7416e91a0bd647fcb296435a1319b444066d4619fda0894ddea784bf1344a
7
+ data.tar.gz: 921facde299de2bd3fbddf9ea5970876cdfab7f63c6812b4f90346e2da6f3fb3c6fd0a3f2f80c1599ddd262eead7d29caeee007383871ab155442addbe03457d
@@ -0,0 +1,4 @@
1
+ # You can read more about CODEOWNERS at
2
+ # https://help.github.com/github/creating-cloning-and-archiving-repositories/about-code-owners
3
+
4
+ * @fnando
@@ -0,0 +1,4 @@
1
+ # These are supported funding model platforms
2
+ ---
3
+ github: [fnando]
4
+ custom: ["https://paypal.me/nandovieira/🍕"]
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: "🐛 Bug Report"
3
+ about: Report a reproducible bug or regression.
4
+ title: 'Bug: '
5
+ labels: 'Status: Unconfirmed'
6
+
7
+ ---
8
+
9
+ <!--
10
+ - Please provide a clear and concise description of what the bug is.
11
+ - If possible, add an example reproducing your issue.
12
+ - Please test using the latest version of haikunate
13
+ to make sure your issue has not already been fixed.
14
+ -->
15
+
16
+ ## Description
17
+
18
+ [Add bug description here]
19
+
20
+ ## How to reproduce
21
+
22
+ [Add steps on how to reproduce this issue]
23
+
24
+ ## What do you expect
25
+
26
+ [Describe what do you expect to happen]
27
+
28
+ ## What happened instead
29
+
30
+ [Describe the actual results]
31
+
32
+ ## Software:
33
+
34
+ - Gem version: [Add gem version here]
35
+ - Ruby version: [Add version here]
36
+
37
+ ## Full backtrace
38
+
39
+ ```text
40
+ [Paste full backtrace here]
41
+ ```
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: "💡 Feature request"
3
+ about: Have an idea that may be useful? Make a suggestion!
4
+ title: 'Feature Request: '
5
+ labels: 'Feature request'
6
+
7
+ ---
8
+
9
+ ## Description
10
+
11
+ _A clear and concise description of what the problem is._
12
+
13
+ ## Describe the solution
14
+
15
+ _A clear and concise description of what you want to happen._
16
+
17
+ ## Alternatives you considered
18
+
19
+ _A clear and concise description of any alternative solutions or features you've considered._
20
+
21
+ ## Additional context
22
+
23
+ _Add any other context, screenshots, links, etc about the feature request here._
@@ -0,0 +1,38 @@
1
+ <!--
2
+ If you're making a doc PR or something tiny where the below is irrelevant,
3
+ delete this template and use a short description, but in your description aim to
4
+ include both what the change is, and why it is being made, with enough context
5
+ for anyone to understand.
6
+ -->
7
+
8
+ <details>
9
+ <summary>PR Checklist</summary>
10
+
11
+ ### PR Structure
12
+
13
+ - [ ] This PR has reasonably narrow scope (if not, break it down into smaller
14
+ PRs).
15
+ - [ ] This PR avoids mixing refactoring changes with feature changes (split into
16
+ two PRs otherwise).
17
+ - [ ] This PR's title starts is concise and descriptive.
18
+
19
+ ### Thoroughness
20
+
21
+ - [ ] This PR adds tests for the most critical parts of the new functionality or
22
+ fixes.
23
+ - [ ] I've updated any docs, `.md` files, etc… affected by this change.
24
+
25
+ </details>
26
+
27
+ ### What
28
+
29
+ [TODO: Short statement about what is changing.]
30
+
31
+ ### Why
32
+
33
+ [TODO: Why this change is being made. Include any context required to understand
34
+ the why.]
35
+
36
+ ### Known limitations
37
+
38
+ [TODO or N/A]
@@ -0,0 +1,15 @@
1
+ ---
2
+ # Documentation:
3
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
4
+
5
+ version: 2
6
+ updates:
7
+ - package-ecosystem: "github-actions"
8
+ directory: "/"
9
+ schedule:
10
+ interval: "daily"
11
+
12
+ - package-ecosystem: bundler
13
+ directory: "/"
14
+ schedule:
15
+ interval: "daily"
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: ruby-tests
3
+
4
+ on:
5
+ pull_request_target:
6
+ push:
7
+ branches:
8
+ - main
9
+ workflow_dispatch:
10
+ inputs: {}
11
+
12
+ jobs:
13
+ build:
14
+ name: Tests with Ruby ${{ matrix.ruby }} and ${{ matrix.gemfile }}
15
+ runs-on: "ubuntu-latest"
16
+ if: |
17
+ github.actor == 'dependabot[bot]' && github.event_name == 'pull_request_target' ||
18
+ github.actor != 'dependabot[bot]'
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ ruby: ["2.7", "3.0", "3.1"]
23
+ gemfile:
24
+ - Gemfile
25
+
26
+ steps:
27
+ - uses: actions/checkout@v3
28
+
29
+ - uses: actions/cache@v3
30
+ with:
31
+ path: vendor/bundle
32
+ key: >
33
+ ${{ runner.os }}-${{ matrix.ruby }}-gems-${{ hashFiles(matrix.gemfile) }}
34
+
35
+ - name: Set up Ruby
36
+ uses: ruby/setup-ruby@v1
37
+ with:
38
+ ruby-version: ${{ matrix.ruby }}
39
+
40
+ - name: Install gem dependencies
41
+ env:
42
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
43
+ run: |
44
+ gem install bundler
45
+ bundle config path vendor/bundle
46
+ bundle update --jobs 4 --retry 3
47
+
48
+ - name: Run Tests
49
+ env:
50
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
51
+ run: |
52
+ bundle exec rake
data/.rubocop.yml CHANGED
@@ -4,3 +4,7 @@ inherit_gem:
4
4
 
5
5
  AllCops:
6
6
  TargetRubyVersion: 2.7
7
+ NewCops: enable
8
+ Exclude:
9
+ - vendor/**/*
10
+ - gemfiles/**/*
data/CHANGELOG.md ADDED
@@ -0,0 +1,29 @@
1
+ # Changelog
2
+
3
+ <!--
4
+ Prefix your message with one of the following:
5
+
6
+ - [Added] for new features.
7
+ - [Changed] for changes in existing functionality.
8
+ - [Deprecated] for soon-to-be removed features.
9
+ - [Removed] for now removed features.
10
+ - [Fixed] for any bug fixes.
11
+ - [Security] in case of vulnerabilities.
12
+ -->
13
+
14
+ ## Unreleased
15
+
16
+ - [Added] `Haiku.base36_variant_generator(size = 5)` and
17
+ `Haiku.random_base36(size = 5)` for base36 variants (`0-9a-z`).
18
+ - [Changed] Expanded adjective and noun dictionaries with additional
19
+ animal/insect/sea-life terms.
20
+ - [Changed] Removed potentially inappropriate dictionary terms (`ass`,
21
+ `kissable`, `juicy`, `holy`, `sacred`, `heaven`).
22
+
23
+ ## v0.1.1 - 2020-06-17
24
+
25
+ - [Fixed] Remove spaced word from source list.
26
+
27
+ ## v0.1.0 - 2020-02-09
28
+
29
+ - Initial release.
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,79 @@
1
+ # Contributing to haikunate
2
+
3
+ 👍🎉 First off, thanks for taking the time to contribute! 🎉👍
4
+
5
+ The following is a set of guidelines for contributing to this project. These are
6
+ mostly guidelines, not rules. Use your best judgment, and feel free to propose
7
+ changes to this document in a pull request.
8
+
9
+ ## Code of Conduct
10
+
11
+ Everyone interacting in this project's codebases, issue trackers, chat rooms and
12
+ mailing lists is expected to follow the [code of conduct](https://github.com/fnando/haikunate/blob/main/CODE_OF_CONDUCT.md).
13
+
14
+ ## Reporting bugs
15
+
16
+ This section guides you through submitting a bug report. Following these
17
+ guidelines helps maintainers and the community understand your report, reproduce
18
+ the behavior, and find related reports.
19
+
20
+ - Before creating bug reports, please check the open issues; somebody may
21
+ already have submitted something similar, and you may not need to create a new
22
+ one.
23
+ - When you are creating a bug report, please include as many details as
24
+ possible, with an example reproducing the issue.
25
+
26
+ ## Contributing with code
27
+
28
+ Before making any radicals changes, please make sure you discuss your intention
29
+ by [opening an issue on Github](https://github.com/fnando/haikunate/issues).
30
+
31
+ When you're ready to make your pull request, follow checklist below to make sure
32
+ your contribution is according to how this project works.
33
+
34
+ 1. [Fork](https://help.github.com/forking/) haikunate
35
+ 2. Create a topic branch - `git checkout -b my_branch`
36
+ 3. Make your changes using [descriptive commit messages](#commit-messages)
37
+ 4. Update CHANGELOG.md describing your changes by adding an entry to the
38
+ "Unreleased" section. If this section is not available, create one right
39
+ before the last version.
40
+ 5. Push to your branch - `git push origin my_branch`
41
+ 6. [Create a pull request](https://help.github.com/articles/creating-a-pull-request)
42
+ 7. That's it!
43
+
44
+ ## Styleguides
45
+
46
+ ### Commit messages
47
+
48
+ - Use the present tense ("Add feature" not "Added feature")
49
+ - Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
50
+ - Limit the first line to 72 characters or less
51
+ - Reference issues and pull requests liberally after the first line
52
+
53
+ ### Changelog
54
+
55
+ - Add a message describing your changes to the "Unreleased" section. The
56
+ changelog message should follow the same style as the commit message.
57
+ - Prefix your message with one of the following:
58
+ - `[Added]` for new features.
59
+ - `[Changed]` for changes in existing functionality.
60
+ - `[Deprecated]` for soon-to-be removed features.
61
+ - `[Removed]` for now removed features.
62
+ - `[Fixed]` for any bug fixes.
63
+ - `[Security]` in case of vulnerabilities.
64
+
65
+ ### Ruby code
66
+
67
+ - This project uses [Rubocop](https://rubocop.org) to enforce code style. Before
68
+ submitting your changes, make sure your tests are passing and code conforms to
69
+ the expected style by running `rake`.
70
+ - Do not change the library version. This will be done by the maintainer
71
+ whenever a new version is about to be released.
72
+
73
+ ### JavaScript code
74
+
75
+ - This project uses [ESLint](https://eslint.org) to enforce code style. Before
76
+ submitting your changes, make sure your tests are passing and code conforms to
77
+ the expected style by running `yarn test:ci`.
78
+ - Do not change the library version. This will be done by the maintainer
79
+ whenever a new version is about to be released.
data/Gemfile CHANGED
@@ -4,6 +4,3 @@ source "https://rubygems.org"
4
4
 
5
5
  # Specify your gem's dependencies in haikunate.gemspec
6
6
  gemspec
7
-
8
- gem "minitest", "~> 5.0"
9
- gem "rake", "~> 12.0"
data/LICENSE.md ADDED
@@ -0,0 +1,20 @@
1
+ # The MIT License (MIT)
2
+
3
+ Copyright (c) 2022 Nando Vieira
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,7 +1,11 @@
1
- # Haikunate
1
+ # haikunate
2
2
 
3
3
  Generate Heroku-like memorable random names like `adorable-ox-1234`.
4
4
 
5
+ [![Tests](https://github.com/fnando/haikunate/workflows/ruby-tests/badge.svg)](https://github.com/fnando/haikunate)
6
+ [![Gem](https://img.shields.io/gem/v/haikunate.svg)](https://rubygems.org/gems/haikunate)
7
+ [![Gem](https://img.shields.io/gem/dt/haikunate.svg)](https://rubygems.org/gems/haikunate)
8
+
5
9
  ## Installation
6
10
 
7
11
  Add this line to your application's Gemfile:
@@ -28,16 +32,24 @@ Haiku.call
28
32
  #=> satisfied-eagle-7977
29
33
  ```
30
34
 
31
- You can change the joiner string by provider the option `joiner`.
35
+ You can change the joiner string by providing the option `joiner`.
32
36
 
33
37
  ```ruby
34
38
  Haiku.call(joiner: ".")
35
39
  #=> passionate.alpaca.7619
36
40
  ```
37
41
 
38
- A haiku composed by `adjective-noun-variant`, where variant is a random number
39
- within `1000..9999` range. You can override the range by setting
40
- `Haiku.default_range`.
42
+ A haiku is composed of `adjective-noun-variant`.
43
+
44
+ | Collision namespace | Size |
45
+ | -------------------------------- | --------------------------------- |
46
+ | `nouns-adjectives-(0000-9999)` | `233 x 380 x 9,000 (~797MM)` |
47
+ | `nouns-adjectives-(00000-99999)` | `233 x 380 x 90,000 (~7.97B)` |
48
+ | `nouns-adjectives-(hex5)` | `233 x 380 x 1,048,576 (~92.84B)` |
49
+ | `nouns-adjectives-(base36(5))` | `233 x 380 x 60,466,176 (~5.35T)` |
50
+
51
+ By default, the variant is a random number within `1000..9999` range. You can
52
+ override the range by setting `Haiku.default_range`.
41
53
 
42
54
  ```ruby
43
55
  Haiku.default_range = 10_000..99_999
@@ -48,10 +60,11 @@ Alternatively, you can provide a `variant` option, which can be any object that
48
60
  responds to `.call()`.
49
61
 
50
62
  ```ruby
51
- require "securerandom"
63
+ Haiku.call(variant: Haiku.base36_variant_generator)
64
+ #=> tidy-skunk-1az9k
52
65
 
53
- Haiku.call(variant: -> { SecureRandom.alphanumeric(5).downcase })
54
- #=> tidy-skunk-s8ln0
66
+ Haiku.call(variant: Haiku.base36_variant_generator(10))
67
+ #=> tidy-skunk-k8w0mz3q2a
55
68
  ```
56
69
 
57
70
  To override the dictionary list, use `Haiku.adjectives=(list)` and
@@ -59,13 +72,13 @@ To override the dictionary list, use `Haiku.adjectives=(list)` and
59
72
 
60
73
  ```ruby
61
74
  Haiku.adjectives = %w[awful terrible crazy]
62
- Haiku.nouns = %w[lawyer judge politian]
75
+ Haiku.nouns = %w[lawyer judge politician]
63
76
 
64
77
  Haiku.call
65
- #=> terrible-politian-8116
78
+ #=> terrible-politician-8116
66
79
  ```
67
80
 
68
- If you're planning to use a haiku as some unique value on your database, you can
81
+ If you're planning to use a haiku as a unique value in your database, you can
69
82
  use `Haiku.next(options, &block)`; a new haiku will be generated until
70
83
  `block.call(haiku)` returns `false`. For instance, this is how you'd use it with
71
84
  ActiveRecord:
@@ -76,44 +89,39 @@ site.slug = Haiku.next {|slug| Site.where(slug: slug).exists? }
76
89
  site.save!
77
90
  ```
78
91
 
79
- That can be a problem for databases with lots and lots of records. If that's the
80
- case, you can then use a more random variant like 6 random alphanumeric
81
- characters.
92
+ That can be a problem for very large databases. If that's the case, you can then
93
+ use a more random variant like 6 random alphanumeric characters.
82
94
 
83
95
  You can override the default variant generator by setting
84
96
  `Haiku.default_variant=(new_variant)`.
85
97
 
86
98
  ```ruby
87
- Haiku.default_variant = -> { SecureRandom.alphanumeric(6).downcase }
99
+ Haiku.default_variant = Haiku.base36_variant_generator
100
+ # or with custom size:
101
+ Haiku.default_variant = Haiku.base36_variant_generator(10)
88
102
  ```
89
103
 
90
- ## Development
104
+ ## Maintainer
91
105
 
92
- After checking out the repo, run `bin/setup` to install dependencies. Then, run
93
- `rake test` to run the tests. You can also run `bin/console` for an interactive
94
- prompt that will allow you to experiment.
106
+ - [Nando Vieira](https://github.com/fnando)
95
107
 
96
- To install this gem onto your local machine, run `bundle exec rake install`. To
97
- release a new version, update the version number in `version.rb`, and then run
98
- `bundle exec rake release`, which will create a git tag for the version, push
99
- git commits and tags, and push the `.gem` file to
100
- [rubygems.org](https://rubygems.org).
108
+ ## Contributors
101
109
 
102
- ## Contributing
110
+ - https://github.com/fnando/haikunate/contributors
103
111
 
104
- Bug reports and pull requests are welcome on GitHub at
105
- https://github.com/fnando/haikunate. This project is intended to be a safe,
106
- welcoming space for collaboration, and contributors are expected to adhere to
107
- the [code of conduct](https://github.com/fnando/haikunate/blob/master/CODE_OF_CONDUCT.md).
112
+ ## Contributing
108
113
 
114
+ For more details about how to contribute, please read
115
+ https://github.com/fnando/haikunate/blob/main/CONTRIBUTING.md.
109
116
 
110
117
  ## License
111
118
 
112
119
  The gem is available as open source under the terms of the
113
- [MIT License](https://opensource.org/licenses/MIT).
120
+ [MIT License](https://opensource.org/licenses/MIT). A copy of the license can be
121
+ found at https://github.com/fnando/haikunate/blob/main/LICENSE.md.
114
122
 
115
123
  ## Code of Conduct
116
124
 
117
- Everyone interacting in the Haikunate project's codebases, issue trackers, chat
125
+ Everyone interacting in the haikunate project's codebases, issue trackers, chat
118
126
  rooms and mailing lists is expected to follow the
119
- [code of conduct](https://github.com/fnando/haikunate/blob/master/CODE_OF_CONDUCT.md).
127
+ [code of conduct](https://github.com/fnando/haikunate/blob/main/CODE_OF_CONDUCT.md).
data/data/adjectives.txt CHANGED
@@ -1,7 +1,10 @@
1
1
  abundant
2
2
  adaptable
3
+ accomplished
3
4
  adorable
4
5
  adored
6
+ adroit
7
+ admirable
5
8
  adventurous
6
9
  affable
7
10
  affectionate
@@ -20,14 +23,18 @@ appreciated
20
23
  appreciative
21
24
  apricot
22
25
  aquamarine
26
+ assertive
27
+ attentive
23
28
  authentic
24
29
  aware
25
30
  awesome
26
31
  azure
27
32
  balanced
28
33
  beautiful
34
+ beaming
29
35
  beige
30
36
  beloved
37
+ beneficent
31
38
  best
32
39
  black
33
40
  blessed
@@ -41,12 +48,14 @@ bright
41
48
  brilliant
42
49
  bronze
43
50
  brown
51
+ buoyant
44
52
  burgundy
45
53
  calm
46
54
  capable
47
55
  careful
48
56
  caring
49
57
  carmine
58
+ celebrated
50
59
  centered
51
60
  cerise
52
61
  cerulean
@@ -54,6 +63,7 @@ champagne
54
63
  charismatic
55
64
  charming
56
65
  cheerful
66
+ cheery
57
67
  cherished
58
68
  chocolate
59
69
  clean
@@ -78,8 +88,10 @@ cyan
78
88
  dandy
79
89
  daring
80
90
  dazzled
91
+ dazzling
81
92
  decisive
82
93
  dedicated
94
+ dependable
83
95
  delightful
84
96
  determined
85
97
  diligent
@@ -87,8 +99,10 @@ diplomatic
87
99
  discreet
88
100
  divine
89
101
  dynamic
102
+ earnest
90
103
  eager
91
104
  easygoing
105
+ ebullient
92
106
  emerald
93
107
  emotional
94
108
  empathetic
@@ -96,6 +110,7 @@ empathic
96
110
  empowered
97
111
  enchanted
98
112
  endless
113
+ encouraging
99
114
  energetic
100
115
  energized
101
116
  enlightened
@@ -116,6 +131,8 @@ faithful
116
131
  fantastic
117
132
  favorable
118
133
  fearless
134
+ flawless
135
+ flourishing
119
136
  flourished
120
137
  flowing
121
138
  focused
@@ -142,6 +159,7 @@ good
142
159
  goodness
143
160
  graceful
144
161
  gracious
162
+ gallant
145
163
  grateful
146
164
  gray
147
165
  great
@@ -154,10 +172,10 @@ harmonious
154
172
  healthy
155
173
  heartfull
156
174
  heartwarming
157
- heaven
158
175
  helpful
159
- holy
176
+ heroic
160
177
  honest
178
+ honorable
161
179
  hopeful
162
180
  humorous
163
181
  illuminated
@@ -180,20 +198,21 @@ involved
180
198
  ivory
181
199
  jade
182
200
  jazzed
201
+ jaunty
183
202
  jolly
184
203
  jovial
185
204
  joyful
186
205
  joyous
187
206
  jubilant
188
- juicy
189
207
  just
190
208
  juvenescent
191
209
  kalon
192
210
  kind
193
- kissable
211
+ kindhearted
194
212
  knowledgeable
195
213
  lavender
196
214
  lemon
215
+ legendary
197
216
  lilac
198
217
  lime
199
218
  lively
@@ -210,6 +229,7 @@ maroon
210
229
  marvelous
211
230
  mauve
212
231
  memorable
232
+ meritorious
213
233
  mindful
214
234
  miracle
215
235
  miraculous
@@ -219,6 +239,7 @@ neat
219
239
  nice
220
240
  noble
221
241
  nourished
242
+ nurturing
222
243
  nurtured
223
244
  ochre
224
245
  olive
@@ -244,6 +265,7 @@ placid
244
265
  playful
245
266
  plucky
246
267
  plum
268
+ poised
247
269
  polite
248
270
  positive
249
271
  powerful
@@ -269,11 +291,11 @@ renewed
269
291
  reserved
270
292
  resilient
271
293
  resourceful
294
+ respectful
272
295
  rich
273
296
  romantic
274
297
  rose
275
298
  ruby
276
- sacred
277
299
  safe
278
300
  sangria
279
301
  sapphire
@@ -292,12 +314,14 @@ smart
292
314
  sociable
293
315
  spectacular
294
316
  splendid
317
+ steadfast
295
318
  stellar
296
319
  straightforward
297
320
  strong
298
321
  stupendous
299
322
  successful
300
323
  super
324
+ supportive
301
325
  sustained
302
326
  sympathetic
303
327
  tan
@@ -312,6 +336,7 @@ tough
312
336
  tranquil
313
337
  triumphant
314
338
  trusting
339
+ trustworthy
315
340
  turquoise
316
341
  ultimate
317
342
  ultramarine
@@ -321,8 +346,12 @@ understanding
321
346
  unique
322
347
  unlimited
323
348
  unreal
349
+ upbeat
350
+ uplifting
324
351
  uplifted
352
+ upstanding
325
353
  valuable
354
+ valiant
326
355
  versatile
327
356
  vibrant
328
357
  victorious
@@ -335,6 +364,7 @@ wealthy
335
364
  welcomed
336
365
  white
337
366
  wholeheartedly
367
+ wholesome
338
368
  willing
339
369
  wise
340
370
  witty
@@ -345,5 +375,6 @@ yellow
345
375
  youthful
346
376
  zappiest
347
377
  zappy
378
+ zealous
348
379
  zestful
349
380
  zing
data/data/nouns.txt CHANGED
@@ -1,25 +1,43 @@
1
1
  aardvark
2
+ abalone
3
+ albatross
2
4
  alligator
3
5
  alpaca
4
6
  ant
7
+ antlion
5
8
  antelope
9
+ anemone
10
+ anglerfish
11
+ anchovy
12
+ aphid
6
13
  ape
7
14
  armadillo
8
- ass
9
15
  baboon
10
16
  badger
11
17
  bat
18
+ barracuda
19
+ barnacle
12
20
  bear
13
21
  beaver
14
22
  bee
15
23
  beetle
24
+ bison
25
+ boar
26
+ bluebird
27
+ blowfish
28
+ bumblebee
16
29
  buffalo
17
30
  butterfly
31
+ caddisfly
18
32
  camel
33
+ canary
19
34
  carabao
20
35
  caribou
36
+ cardinal
21
37
  cat
38
+ catfish
22
39
  cattle
40
+ centipede
23
41
  cheetah
24
42
  chicken
25
43
  chimpanzee
@@ -28,25 +46,42 @@ cicada
28
46
  clam
29
47
  cockroach
30
48
  cod
49
+ condor
50
+ coral
51
+ cougar
31
52
  coyote
32
53
  crab
33
54
  cricket
34
55
  crow
56
+ cuttlefish
57
+ damselfly
35
58
  deer
59
+ dragonfly
36
60
  dinosaur
37
61
  dog
38
62
  dolphin
63
+ dove
64
+ donkey
39
65
  duck
66
+ earwig
40
67
  eagle
41
68
  echidna
69
+ egret
42
70
  eel
43
71
  elephant
44
72
  elk
73
+ falcon
45
74
  ferret
75
+ finch
46
76
  fish
77
+ firefly
78
+ flea
79
+ flamingo
47
80
  fly
48
81
  fox
49
82
  frog
83
+ gazelle
84
+ gecko
50
85
  gerbil
51
86
  giraffe
52
87
  gnat
@@ -56,10 +91,16 @@ goldfish
56
91
  goose
57
92
  gorilla
58
93
  grasshopper
94
+ gull
95
+ guppy
59
96
  guinea
97
+ haddock
98
+ halibut
60
99
  hamster
61
100
  hare
101
+ hawk
62
102
  hedgehog
103
+ heron
63
104
  herring
64
105
  hippopotamus
65
106
  hornet
@@ -68,70 +109,125 @@ hound
68
109
  house
69
110
  human
70
111
  hyena
112
+ ibis
71
113
  impala
114
+ jaguar
72
115
  insect
73
116
  jackal
74
117
  jellyfish
118
+ katydid
75
119
  kangaroo
120
+ kestrel
121
+ kingfisher
76
122
  koala
123
+ krill
124
+ lacewing
125
+ ladybug
77
126
  leopard
127
+ lemur
78
128
  lion
79
129
  lizard
80
130
  llama
131
+ lobster
81
132
  locust
133
+ loon
82
134
  louse
135
+ lynx
83
136
  macaw
137
+ mackerel
138
+ magpie
84
139
  mallard
85
140
  mammoth
86
141
  manatee
142
+ manta
143
+ mantis
87
144
  marten
145
+ marlin
146
+ mayfly
147
+ mealworm
88
148
  mink
89
149
  minnow
90
150
  mole
91
151
  monkey
152
+ mongoose
92
153
  moose
93
154
  mosquito
155
+ moth
94
156
  mouse
95
157
  mule
96
158
  muskrat
159
+ narwhal
160
+ newt
161
+ nightingale
162
+ octocoral
163
+ octopus
164
+ oriole
97
165
  otter
98
166
  ox
167
+ owl
99
168
  oyster
100
169
  panda
170
+ panther
171
+ parrot
172
+ pelican
173
+ penguin
174
+ phoenix
101
175
  pig
102
176
  platypus
103
177
  porcupine
104
178
  prairie
105
179
  pug
180
+ puffin
181
+ quail
106
182
  rabbit
107
183
  raccoon
184
+ raven
185
+ ray
108
186
  reindeer
109
187
  rhinoceros
188
+ robin
110
189
  salmon
111
190
  sardine
191
+ sandpiper
112
192
  scorpion
113
193
  seal
194
+ seahorse
114
195
  serval
115
196
  shark
116
197
  sheep
117
198
  skunk
199
+ sloth
200
+ silverfish
118
201
  snail
119
202
  snake
120
203
  spider
204
+ sparrow
205
+ starling
206
+ squid
121
207
  squirrel
208
+ stickbug
209
+ sturgeon
122
210
  swan
211
+ thrips
123
212
  termite
124
213
  tiger
214
+ toucan
125
215
  trout
126
216
  turtle
217
+ urchin
218
+ viper
219
+ vulture
127
220
  walrus
128
221
  wasp
222
+ waterstrider
129
223
  weasel
224
+ weevil
130
225
  whale
131
226
  wolf
132
227
  wombat
133
228
  woodchuck
134
229
  worm
230
+ wren
135
231
  yak
136
232
  yellowjacket
137
233
  zebra
data/haikunate.gemspec CHANGED
@@ -7,6 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.version = Haikunate::VERSION
8
8
  spec.authors = ["Nando Vieira"]
9
9
  spec.email = ["me@fnando.com"]
10
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
10
11
 
11
12
  spec.summary =
12
13
  "Generate Heroku-like memorable random names like adorable-ox-1234."
@@ -17,6 +18,7 @@ Gem::Specification.new do |spec|
17
18
  spec.metadata["homepage_uri"] = spec.homepage
18
19
  spec.metadata["source_code_uri"] = spec.homepage
19
20
  spec.metadata["changelog_uri"] = spec.homepage
21
+ spec.metadata["rubygems_mfa_required"] = "true"
20
22
 
21
23
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
24
  `git ls-files -z`
@@ -30,7 +32,8 @@ Gem::Specification.new do |spec|
30
32
 
31
33
  spec.add_development_dependency "minitest"
32
34
  spec.add_development_dependency "minitest-utils"
33
- spec.add_development_dependency "pry-meta"
35
+ spec.add_development_dependency "mocha"
36
+ spec.add_development_dependency "rake"
34
37
  spec.add_development_dependency "rubocop"
35
38
  spec.add_development_dependency "rubocop-fnando"
36
39
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Haikunate
4
- VERSION = "0.1.1"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/haikunate.rb CHANGED
@@ -7,13 +7,21 @@ module Haikunate
7
7
  require "haikunate/version"
8
8
 
9
9
  class << self
10
- attr_accessor :default_range
11
- attr_accessor :default_variant
10
+ attr_accessor :default_range, :default_variant
12
11
  end
13
12
 
14
13
  self.default_range = 1000..9999
15
14
  self.default_variant = -> { rand(default_range) }
16
15
 
16
+ def self.random_base36(size = 5)
17
+ alphabet = "0123456789abcdefghijklmnopqrstuvwxyz"
18
+ Array.new(size) { alphabet[SecureRandom.random_number(36)] }.join
19
+ end
20
+
21
+ def self.base36_variant_generator(size = 5)
22
+ -> { random_base36(size) }
23
+ end
24
+
17
25
  def self.data_dir
18
26
  @data_dir ||= Pathname.new(File.expand_path("#{__dir__}/../data"))
19
27
  end
@@ -38,9 +46,9 @@ module Haikunate
38
46
  [adjectives.sample, nouns.sample, variant.call].join(joiner)
39
47
  end
40
48
 
41
- def self.next(joiner: "-", variant: default_variant, &block)
49
+ def self.next(joiner: "-", variant: default_variant)
42
50
  options = {joiner: joiner, variant: variant}
43
- name = call(**options) while !name || block.call(name)
51
+ name = call(**options) while !name || yield(name)
44
52
  name
45
53
  end
46
54
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haikunate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2020-06-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: minitest
@@ -39,7 +38,21 @@ dependencies:
39
38
  - !ruby/object:Gem::Version
40
39
  version: '0'
41
40
  - !ruby/object:Gem::Dependency
42
- name: pry-meta
41
+ name: mocha
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rake
43
56
  requirement: !ruby/object:Gem::Requirement
44
57
  requirements:
45
58
  - - ">="
@@ -87,11 +100,20 @@ executables: []
87
100
  extensions: []
88
101
  extra_rdoc_files: []
89
102
  files:
103
+ - ".github/CODEOWNERS"
104
+ - ".github/FUNDING.yml"
105
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
106
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
107
+ - ".github/PULL_REQUEST_TEMPLATE.md"
108
+ - ".github/dependabot.yml"
109
+ - ".github/workflows/ruby-tests.yml"
90
110
  - ".gitignore"
91
111
  - ".rubocop.yml"
92
- - ".travis.yml"
112
+ - CHANGELOG.md
93
113
  - CODE_OF_CONDUCT.md
114
+ - CONTRIBUTING.md
94
115
  - Gemfile
116
+ - LICENSE.md
95
117
  - LICENSE.txt
96
118
  - README.md
97
119
  - Rakefile
@@ -109,7 +131,7 @@ metadata:
109
131
  homepage_uri: https://github.com/fnando/haikunate
110
132
  source_code_uri: https://github.com/fnando/haikunate
111
133
  changelog_uri: https://github.com/fnando/haikunate
112
- post_install_message:
134
+ rubygems_mfa_required: 'true'
113
135
  rdoc_options: []
114
136
  require_paths:
115
137
  - lib
@@ -117,15 +139,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
139
  requirements:
118
140
  - - ">="
119
141
  - !ruby/object:Gem::Version
120
- version: '0'
142
+ version: 2.7.0
121
143
  required_rubygems_version: !ruby/object:Gem::Requirement
122
144
  requirements:
123
145
  - - ">="
124
146
  - !ruby/object:Gem::Version
125
147
  version: '0'
126
148
  requirements: []
127
- rubygems_version: 3.1.2
128
- signing_key:
149
+ rubygems_version: 4.0.3
129
150
  specification_version: 4
130
151
  summary: Generate Heroku-like memorable random names like adorable-ox-1234.
131
152
  test_files: []
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.7.0
6
- before_install: gem install bundler -v 2.1.2