frostyid 1.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 40afae96caec9f2b80bc08b992a3bf2fb150c6d9a7693bb1612adf0bbc372968
4
+ data.tar.gz: 5e3859b0edbaf85a4938d9ae91eb4ef007191b2908b0e2ed201264ecf6cf3f41
5
+ SHA512:
6
+ metadata.gz: 294af01e1a33fcc41604f8fbdf9c8e555f910416b77427cd374bcdc7d07f56253966cba4fdae042e9798a5784f4501339adc725cbd176cd090151667afb2751b
7
+ data.tar.gz: 32c9f1337a8959659c9c561c195b38ffdc921729796dc59befa4c9b39e1b7dc406443b1d471846fb4d05fc4f3f903014c5f30f782a4376a9f6787c5e916e1f53
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Frostyid
4
+ VERSION = "1.0.0"
5
+ end
data/lib/frostyid.rb ADDED
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "frostyid/version"
4
+
5
+ ##
6
+ # Module that contains all of Frosty's code
7
+ module Frostyid
8
+ ##
9
+ # The generator module containing the default generator.
10
+ module Generator
11
+ def self.generate_id(options)
12
+ "#{format("%0#{options[:timestamp_length]}s", (Time.now - options[:epoch]).to_i.to_s(36))}#{format("%0#{options[:random_length]}s", rand(36**options[:random_length]).to_s(36))}".gsub(' ', '0')
13
+ end
14
+ end
15
+ ##
16
+ # The ID Factory module, making generating a lot IDs easier.
17
+ class IDFactory
18
+ attr_reader :generator, :options
19
+ def initialize(generator: Generator, epoch: Time.new(2020), timestamp_length: 7, random_length: 25)
20
+ @generator = generator
21
+ @options = {epoch: epoch,
22
+ timestamp_length: timestamp_length,
23
+ random_length: random_length}
24
+ end
25
+
26
+ def generate!
27
+ Frostyid::Generator.generate_id(@options)
28
+ end
29
+ end
30
+ end
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: frostyid
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Sönke "Cubuzz" Köster
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-10-14 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: As a convenient tool to generate snowflake strings according to your
14
+ needs, FrostyID allows you to quickly get things up and running.
15
+ email:
16
+ - skoester@cubuzz.de
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/frostyid.rb
22
+ - lib/frostyid/version.rb
23
+ homepage: https://frostyid.culabs.eu
24
+ licenses:
25
+ - MIT
26
+ metadata:
27
+ homepage_uri: https://frostyid.culabs.eu
28
+ source_code_uri: https://github.com/cubuzz/frostyid
29
+ changelog_uri: https://frostyid.culabs.eu/changelog
30
+ post_install_message:
31
+ rdoc_options: []
32
+ require_paths:
33
+ - lib
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: 2.4.0
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ requirements: []
45
+ rubygems_version: 3.2.22
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: FrostyID is a snowflake-style string generator.
49
+ test_files: []