rtoken 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +18 -0
  3. data/README.rdoc +39 -0
  4. data/bin/rtoken +47 -0
  5. data/lib/rtoken.rb +3 -3
  6. metadata +44 -35
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0e7cccd8a8c08cca55c899a56d93801eff464181
4
+ data.tar.gz: 5278076136829bfb29c771f3f00a52277201a6d2
5
+ SHA512:
6
+ metadata.gz: 29c01ee58e775b58a6da902104f87413811e55350d067d5666e75c3c24a74a7db33f147e615d3c31e7d9a396bd0fb0e07b137fb7aaf657fba02b84d51df3ab13
7
+ data.tar.gz: f74a193b65bc6681eb7cebc9dae0c3b95a35aa2898854b1b81320201d7c24094ba9a98d5d9968df8657e9132c33995ac8289c1cce3add65d8d0f5359112556d0
data/LICENSE ADDED
@@ -0,0 +1,18 @@
1
+ Copyright (c) 2012 Thiago Lewin
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to
5
+ deal in the Software without restriction, including without limitation the
6
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
+ sell copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16
+ THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,39 @@
1
+ = RToken
2
+
3
+ Simple Random Token Generator for general purpose.
4
+
5
+ require 'rtoken'
6
+
7
+ # Generates a random 8 length token with letters and numbers
8
+ puts RToken.rtoken
9
+
10
+ Install the gem:
11
+
12
+ gem install rtoken
13
+
14
+ == Examples
15
+
16
+ require 'rtoken'
17
+
18
+ # Generates a random 16 length token with letters and numbers
19
+ # and some special chars
20
+ RToken.rtoken(:size => 16, :special_chars => '!@#$%')
21
+
22
+ # Generates a random 32 length token with ONLY letters
23
+ RToken.rtoken(:size => 32, :numeric => false)
24
+
25
+ # Generates a random token with all lowercase chars
26
+ RToken.rtoken(:size => 32, :numeric => false, :lowercase => true)
27
+
28
+ It is possible to create an instance with predefined options
29
+
30
+ require 'rtoken'
31
+
32
+ rtkn = RToken.new(:size => 10, :special_chars => '+-*/')
33
+
34
+ # All subsequent calls will keep the same options
35
+ rtkn.rtoken #=> Random 10 length token with special chars
36
+
37
+ # It is possible to make individual changes
38
+ rtkn.rtoken :size => 4 #=> Random 4 length token with special chars
39
+ rtkn.rtoken 4 # Less verbose fashion
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rtoken'
3
+ require 'optparse'
4
+ require 'clipboard'
5
+
6
+ options = {}
7
+
8
+ parser = OptionParser.new do |opts|
9
+ opts.banner = 'Usage: rtoken [options]'
10
+
11
+ opts.on('-s', '--size TOKEN_SIZE', Integer, "token size (default #{RToken::DEFAULT_OPTIONS[:size]})") do |size|
12
+ options[:size] = size
13
+ end
14
+
15
+ opts.on('-U', '--uppercase', "only uppercase chars (default #{RToken::DEFAULT_OPTIONS[:uppercase]})") do
16
+ options[:uppercase] = true
17
+ end
18
+
19
+ opts.on('-l', '--lowercase', "only lowercase chars (default #{RToken::DEFAULT_OPTIONS[:lowercase]})") do
20
+ options[:lowercase] = true
21
+ end
22
+
23
+ opts.on('-n', '--[no]-numeric', "allow numeric chars [0-9] (default #{RToken::DEFAULT_OPTIONS[:numeric]})") do |n|
24
+ options[:numeric] = n
25
+ end
26
+
27
+ opts.on('-p', '--special CHARS', String, 'include special chars') do |chars|
28
+ options[:special_chars] = chars
29
+ end
30
+
31
+ opts.on('-c', '--clipboard', 'copy token to the clipboard (default false)') do
32
+ options[:clipboard] = true
33
+ end
34
+
35
+ opts.on_tail('-h', '--help', 'show this message') do
36
+ puts opts
37
+ exit
38
+ end
39
+ end
40
+
41
+ parser.parse! ARGV
42
+
43
+ t = RToken.rtoken(options)
44
+
45
+ Clipboard.copy t if options[:clipboard]
46
+ puts t
47
+
@@ -21,12 +21,12 @@ class RToken
21
21
 
22
22
  NUMERIC_CHARS = ('0'..'9').to_a.freeze
23
23
 
24
- DEAFULT_OPTIONS = {
24
+ DEFAULT_OPTIONS = {
25
25
  :size => 8,
26
26
  :uppercase => false,
27
27
  :lowercase => false,
28
28
  :numeric => true,
29
- :special_cars => ''
29
+ :special_chars => ''
30
30
  }.freeze
31
31
 
32
32
  # Creates an instance of RToken and handle the options for later calls
@@ -71,7 +71,7 @@ class RToken
71
71
  # @return [String] token
72
72
  def self.rtoken(opts=nil)
73
73
  opts = check_param(opts)
74
- options = DEAFULT_OPTIONS.merge(opts || {})
74
+ options = DEFAULT_OPTIONS.merge(opts || {})
75
75
  size = options[:size] || 8
76
76
  # Merge available chars
77
77
  chars_array = options[:numeric] ? Array.new(NUMERIC_CHARS) : []
metadata CHANGED
@@ -1,55 +1,64 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rtoken
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.2.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.1
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - Thiago Lewin
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2012-03-02 00:00:00 Z
14
- dependencies: []
15
-
16
- description: "RToken generates random tokens, of any length, for multiple purposes, ex: web urls, data identification, etc."
11
+ date: 2012-03-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: clipboard
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: 'RToken generates random tokens, of any length, for multiple purposes,
28
+ ex: web urls, data identification, etc.'
17
29
  email: thiago_lewin@yahoo.com.br
18
- executables: []
19
-
30
+ executables:
31
+ - rtoken
20
32
  extensions: []
21
-
22
33
  extra_rdoc_files: []
23
-
24
- files:
34
+ files:
25
35
  - lib/rtoken.rb
36
+ - bin/rtoken
37
+ - README.rdoc
38
+ - LICENSE
26
39
  homepage: https://github.com/tlewin/rtoken
27
- licenses: []
28
-
40
+ licenses:
41
+ - MIT
42
+ metadata: {}
29
43
  post_install_message:
30
44
  rdoc_options: []
31
-
32
- require_paths:
45
+ require_paths:
33
46
  - lib
34
- required_ruby_version: !ruby/object:Gem::Requirement
35
- none: false
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: "0"
40
- required_rubygems_version: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
46
57
  requirements: []
47
-
48
58
  rubyforge_project:
49
- rubygems_version: 1.8.11
59
+ rubygems_version: 2.0.3
50
60
  signing_key:
51
- specification_version: 3
61
+ specification_version: 4
52
62
  summary: Simple Random Token Generator
53
63
  test_files: []
54
-
55
64
  has_rdoc: