easy_passwords 0.3 → 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 33b44c7ae93ae47a020b52010f2da4ad14adfeb4
4
+ data.tar.gz: 4229c09699050e8d80b1448f6009246e6c71c504
5
+ SHA512:
6
+ metadata.gz: f4b7b1a9bf60f2be97cf1ca5ce62e43d3701f24b87cd6a033f630b21d593cd6cfb4334a3aef28ee8f676b7d8110617b87912eae7673dba5b804ea0e0975abd90
7
+ data.tar.gz: d08bef840c1f262a022221d442142cca09e4fe45fb29a0c0940995c325d106b32379f36eb89967bf963b905c49ec535b75d022dca16b9c895260685e2eadee2a
@@ -0,0 +1,5 @@
1
+ Metrics/LineLength:
2
+ Max: 120
3
+
4
+ Style/Documentation:
5
+ Enabled: false
@@ -1,13 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
- - 1.9.2
5
- - 1.8.7
6
- - jruby-19mode
7
- - ruby-head
8
- - jruby-head
9
-
10
- matrix:
11
- allow_failures:
12
- - rvm: jruby-head
13
- - rvm: jruby-19mode
3
+ - 1.9.3
4
+ - 2.1
5
+ - 2.2
6
+ - 2.3.0
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
-
1
+ source 'http://rubygems.org'
2
2
  gemspec
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # easy_passwords.rb
2
2
 
3
+ [![Build Status](https://travis-ci.org/piotrze/easy_passwords.svg?branch=master)](https://travis-ci.org/piotrze/easy_passwords)
4
+
3
5
  easy_passwords.rb is a Ruby implementation of passwdqc's easy_passwords, a random pronouncable password generator.
4
6
 
5
7
  ## Installation
@@ -10,16 +10,13 @@ Gem::Specification.new do |s|
10
10
  s.authors = ["Pete"]
11
11
  s.email = 'piotr.bliszczyk@gmail.com'
12
12
  s.homepage = 'https://github.com/piotrze/easy_passwords'
13
+ s.license = 'MIT'
13
14
 
14
15
  s.files = `git ls-files`.split("\n")
15
16
  s.test_files = `git ls-files -- {test,spec}/*`.split("\n")
16
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
18
  s.require_paths = ['lib']
18
19
 
19
- s.required_ruby_version = '>= 1.8.7'
20
- s.required_rubygems_version = ">= 1.3.6"
21
-
22
- s.add_development_dependency 'rake'
23
- s.add_development_dependency 'rspec'
24
- s.add_development_dependency 'debugger'
20
+ s.add_development_dependency 'rake', '~> 0'
21
+ s.add_development_dependency 'rspec', '~> 0'
25
22
  end
@@ -7,7 +7,7 @@ require 'securerandom'
7
7
  # Examples
8
8
  #
9
9
  # EasyPasswords.generate
10
- # # => "merger4Hick_"
10
+ # # => "merger4Hick"
11
11
  #
12
12
  # EasyPasswords.new.generate
13
13
  # # => "employ-Royal"
@@ -19,11 +19,10 @@ require 'securerandom'
19
19
  # # => "min5"
20
20
  #
21
21
  module EasyPasswords
22
-
23
22
  DEFAULT_MAX_LENGTH = 12
24
23
  MIN_WORD_LENGTH = 3
25
24
  MAX_WORD_LENGTH = 6
26
- SEPARATORS = "-_123456789"
25
+ SEPARATORS = '-123456789'.freeze
27
26
 
28
27
  # Public: Returns a random generated password string.
29
28
  #
@@ -42,44 +41,42 @@ module EasyPasswords
42
41
  # # => "spate7Coup"
43
42
  #
44
43
  # Returns a password string.
45
- def self.generate(max_length = DEFAULT_MAX_LENGTH, separators = SEPARATORS)
46
- self::Generator.new(separators).generate max_length
47
- end
44
+ def self.generate(max_length = DEFAULT_MAX_LENGTH, separators = SEPARATORS)
45
+ self::Generator.new(separators).generate max_length
46
+ end
48
47
 
49
- def self.new
50
- self::Generator.new
51
- end
48
+ def self.new
49
+ self::Generator.new
50
+ end
52
51
 
53
- class Generator
54
- def initialize(separators = EasyPasswords::SEPARATORS)
55
- @@wordlist_size = @@wordlist.length
56
- @@separators = separators
57
- @@separators_size = @@separators.length
58
- @rand = SecureRandom
59
- end
52
+ class Generator
53
+ def initialize(separators = EasyPasswords::SEPARATORS)
54
+ @@wordlist_size = @@wordlist.length
55
+ @@separators = separators
56
+ @@separators_size = @@separators.length
57
+ @rand = SecureRandom
58
+ end
60
59
 
61
- # Public: Returns a random generated password string.
62
- #
63
- # max_length - max number of characters used in password, it could generate password shorter by 3 characters.
64
- #
65
- # Example
66
- #
67
- # generate 8
68
- # # => "Fun_Crop"
69
- #
70
- # generate
71
- # # => "spate7Coup"
72
- #
73
- # Returns a password string.
74
- def generate(max_length = EasyPasswords::DEFAULT_MAX_LENGTH)
75
- raise "Password minimal length is #{EasyPasswords::MIN_WORD_LENGTH}" if max_length < EasyPasswords::MIN_WORD_LENGTH
76
- output = ""
60
+ # Public: Returns a random generated password string.
61
+ #
62
+ # max_length - max number of characters used in password, it could generate password shorter by 3 characters.
63
+ #
64
+ # Example
65
+ #
66
+ # generate 8
67
+ # # => "Fun_Crop"
68
+ #
69
+ # generate
70
+ # # => "spate7Coup"
71
+ #
72
+ # Returns a password string.
73
+ def generate(max_length = EasyPasswords::DEFAULT_MAX_LENGTH)
74
+ fail "Password minimal length is #{EasyPasswords::MIN_WORD_LENGTH}" if max_length < EasyPasswords::MIN_WORD_LENGTH
75
+ output = ''
77
76
  while output.size < (max_length - (EasyPasswords::MIN_WORD_LENGTH - 1))
78
- output << random_word(choose_word_length(max_length, output.size))
79
-
80
- output << @@separators[@rand.random_number(@@separators_size)] if output.size < max_length
81
- end
82
- output
77
+ add_part(output, max_length)
78
+ end
79
+ output
83
80
  end
84
81
 
85
82
  private
@@ -98,12 +95,17 @@ module EasyPasswords
98
95
 
99
96
  def random_word(maxsize = EasyPasswords::MAX_WORD_LENGTH)
100
97
  list = if maxsize < EasyPasswords::MAX_WORD_LENGTH
101
- @@wordlist.select{|w| w.size <= maxsize }
102
- else
103
- @@wordlist
104
- end
98
+ @@wordlist.select { |w| w.size <= maxsize }
99
+ else
100
+ @@wordlist
101
+ end
105
102
  word = list[@rand.random_number(list.size)]
106
- @rand.random_number(2) == 0 ? word.capitalize : word
103
+ @rand.random_number(2) == 0 ? word.capitalize : word
104
+ end
105
+
106
+ def add_part(output, max_length)
107
+ output << random_word(choose_word_length(max_length, output.size))
108
+ output << @@separators[@rand.random_number(@@separators_size)] if output.size < max_length
107
109
  end
108
- end
110
+ end
109
111
  end
@@ -1,3 +1,3 @@
1
1
  module EasyPasswords
2
- VERSION = "0.3"
2
+ VERSION = "0.4"
3
3
  end
metadata CHANGED
@@ -1,62 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_passwords
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.3'
5
- prerelease:
4
+ version: '0.4'
6
5
  platform: ruby
7
6
  authors:
8
7
  - Pete
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-10-28 00:00:00.000000000 Z
11
+ date: 2016-03-25 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: debugger
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
38
+ - - "~>"
60
39
  - !ruby/object:Gem::Version
61
40
  version: '0'
62
41
  description: Easy password is a Ruby implementation of passwdqc's easy_passwords,
@@ -66,8 +45,9 @@ executables: []
66
45
  extensions: []
67
46
  extra_rdoc_files: []
68
47
  files:
69
- - .gitignore
70
- - .travis.yml
48
+ - ".gitignore"
49
+ - ".rubocop.yml"
50
+ - ".travis.yml"
71
51
  - Gemfile
72
52
  - README.md
73
53
  - Rakefile
@@ -79,28 +59,28 @@ files:
79
59
  - spec/lib/easy_passwords_spec.rb
80
60
  - spec/spec_helper.rb
81
61
  homepage: https://github.com/piotrze/easy_passwords
82
- licenses: []
62
+ licenses:
63
+ - MIT
64
+ metadata: {}
83
65
  post_install_message:
84
66
  rdoc_options: []
85
67
  require_paths:
86
68
  - lib
87
69
  required_ruby_version: !ruby/object:Gem::Requirement
88
- none: false
89
70
  requirements:
90
- - - ! '>='
71
+ - - ">="
91
72
  - !ruby/object:Gem::Version
92
- version: 1.8.7
73
+ version: '0'
93
74
  required_rubygems_version: !ruby/object:Gem::Requirement
94
- none: false
95
75
  requirements:
96
- - - ! '>='
76
+ - - ">="
97
77
  - !ruby/object:Gem::Version
98
- version: 1.3.6
78
+ version: '0'
99
79
  requirements: []
100
80
  rubyforge_project:
101
- rubygems_version: 1.8.25
81
+ rubygems_version: 2.2.3
102
82
  signing_key:
103
- specification_version: 3
83
+ specification_version: 4
104
84
  summary: Easy passwords generator in Ruby
105
85
  test_files:
106
86
  - spec/lib/easy_passwords_spec.rb