passwd 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ repo_token: juJNf3K7FF93l6tzdF8cv1V2NFgGdCaWv
data/Gemfile CHANGED
@@ -2,3 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in passwd.gemspec
4
4
  gemspec
5
+
6
+ group :test do
7
+ gem 'coveralls', require: false
8
+ end
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # Passwd
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/passwd.png)](http://badge.fury.io/rb/passwd)
3
4
  [![Build Status](https://travis-ci.org/i2bskn/passwd.png?branch=master)](https://travis-ci.org/i2bskn/passwd)
5
+ [![Code Climate](https://codeclimate.com/github/i2bskn/passwd.png)](https://codeclimate.com/github/i2bskn/passwd)
6
+ [![Coverage Status](https://coveralls.io/repos/i2bskn/passwd/badge.png?branch=master)](https://coveralls.io/r/i2bskn/passwd?branch=master)
4
7
 
5
8
  Password utilities.
6
9
 
@@ -60,31 +63,6 @@ Options that can be specified:
60
63
  * :letters_upper => Define an array of upper case. default is ("A".."Z").to_a
61
64
  * :letters_number => Define an array of numbers. default is ("0".."9").to_a
62
65
 
63
- ### Password policy check
64
-
65
- ```ruby
66
- Passwd.policy_check(password)
67
- ```
68
-
69
- ### Policy settings
70
-
71
- Default policy is stored in the class variable. (@@policy)
72
- Changing the default policy are as follows:
73
-
74
- ```ruby
75
- Passwd.policy => Get policy hash.
76
- Passwd.policy(min_length: 10) => Change to the default min_length.
77
- ```
78
-
79
- Options that can be specified:
80
-
81
- * :min_length => Minimum length of password. default is 8.
82
- * :min_type => Minimum types of password. default is 2.(types is lower/upper/number)
83
- * :specify_type => Check of each types. default is false.
84
- * :require_lower => Require lower case if set true. specify_type enabled when true.
85
- * :require_upper => Require upper case if set true. specify_type enabled when true.
86
- * :require_number => Require number case if set true. specify_type enabled when true.
87
-
88
66
  ### Password object
89
67
 
90
68
  Default password is randomly generated.
data/lib/passwd.rb CHANGED
@@ -17,55 +17,22 @@ module Passwd
17
17
  letters_number: ('0'..'9').to_a
18
18
  }
19
19
 
20
- @@policy = {
21
- min_length: 8,
22
- min_type: 2,
23
- specify_type: false,
24
- require_lower: true,
25
- require_upper: true,
26
- require_number: true
27
- }
28
-
29
20
  class << self
30
21
  def create(options={})
31
22
  config = @@config.merge(options)
23
+ letters = get_retters(config)
32
24
 
25
+ # Create random password
26
+ Array.new(config[:length]){letters[rand(letters.size)]}.join
27
+ end
28
+
29
+ def get_retters(config)
33
30
  # Create letters
34
31
  letters = Array.new
35
32
  letters += config[:letters_lower] if config[:lower]
36
33
  letters += config[:letters_upper] if config[:upper]
37
34
  letters += config[:letters_number] if config[:number]
38
-
39
- # Create random password
40
- Array.new(config[:length]){letters[rand(letters.size)]}.join
41
- end
42
-
43
- def policy_check(passwd, options={})
44
- policy = @@policy.merge(options)
45
-
46
- # Check number of characters
47
- return false if passwd.size < policy[:min_length]
48
-
49
- # Check number of types of characters
50
- ctype = Array.new
51
- passwd.each_char.with_index do |char, i|
52
- case
53
- when @@config[:letters_lower].include?(char) then ctype << 0
54
- when @@config[:letters_upper].include?(char) then ctype << 1
55
- when @@config[:letters_number].include?(char) then ctype << 2
56
- end
57
- end
58
- ctype.uniq!
59
- return false if ctype.size < policy[:min_type]
60
-
61
- # Check of each character type
62
- if policy[:specify_type]
63
- return false if policy[:require_lower] && !ctype.include?(0)
64
- return false if policy[:require_upper] && !ctype.include?(1)
65
- return false if policy[:require_number] && !ctype.include?(2)
66
- end
67
-
68
- true
35
+ letters
69
36
  end
70
37
 
71
38
  def auth(password_text, salt_hash, password_hash)
@@ -80,9 +47,5 @@ module Passwd
80
47
  def config(options={})
81
48
  @@config.merge!(options)
82
49
  end
83
-
84
- def policy(options={})
85
- @@policy.merge!(options)
86
- end
87
50
  end
88
51
  end
@@ -33,10 +33,6 @@ module Passwd
33
33
  @salt_hash = salt_hash
34
34
  end
35
35
 
36
- def policy_check
37
- Passwd.policy_check @text
38
- end
39
-
40
36
  def ==(password)
41
37
  enc_pass = Passwd.hashing("#{@salt_hash}#{password}")
42
38
  @hash == enc_pass
@@ -1,3 +1,3 @@
1
1
  module Passwd
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -122,15 +122,6 @@ describe Passwd::Password do
122
122
  end
123
123
  end
124
124
 
125
- context "#policy_check" do
126
- it "Passwd.policy_check is called with pass_text" do
127
- pass_text = Passwd.create
128
- Passwd.should_receive(:policy_check).with(pass_text)
129
- password = Passwd::Password.new(password: pass_text)
130
- password.policy_check
131
- end
132
- end
133
-
134
125
  context "#==" do
135
126
  before(:each) do
136
127
  @password = Passwd::Password.new
data/spec/passwd_spec.rb CHANGED
@@ -33,41 +33,6 @@ describe Passwd do
33
33
  end
34
34
  end
35
35
 
36
- context "#policy_check" do
37
- it "return true with valid password" do
38
- expect(Passwd.policy_check("09aVCud5")).to eq(true)
39
- end
40
-
41
- it "return false with less number of characters" do
42
- expect(Passwd.policy_check("Secret")).to eq(false)
43
- end
44
-
45
- it "return false with less number of types" do
46
- expect(Passwd.policy_check("password")).to eq(false)
47
- end
48
-
49
- it "require lower case if require_lower is true" do
50
- password = Passwd.create(lower: false)
51
- expect(
52
- Passwd.policy_check(password, min_type: 1, specify_type: true, require_lower: true)
53
- ).to eq(false)
54
- end
55
-
56
- it "require upper case if require_upper is true" do
57
- password = Passwd.create(upper: false)
58
- expect(
59
- Passwd.policy_check(password, min_type: 1, specify_type: true, require_upper: true)
60
- ).to eq(false)
61
- end
62
-
63
- it "require number case if require_number is true" do
64
- password = Passwd.create(number: false)
65
- expect(
66
- Passwd.policy_check(password, min_type: 1, specify_type: true, require_number: true)
67
- ).to eq(false)
68
- end
69
- end
70
-
71
36
  context "#auth" do
72
37
  it "return true with valid password" do
73
38
  password = Passwd.create
@@ -115,25 +80,5 @@ describe Passwd do
115
80
  expect(Passwd.config[:length]).not_to eq(old_value)
116
81
  end
117
82
  end
118
-
119
- context "#policy" do
120
- before(:all) do
121
- @default_value = Passwd.policy.clone
122
- end
123
-
124
- after(:all) do
125
- Passwd.policy(@default_value)
126
- end
127
-
128
- it "return policy hash" do
129
- expect(Passwd.policy.class).to eq(Hash)
130
- end
131
-
132
- it "set config value" do
133
- old_value = Passwd.policy[:min_length]
134
- Passwd.policy(min_length: 10)
135
- expect(Passwd.policy[:min_length]).not_to eq(old_value)
136
- end
137
- end
138
83
  end
139
84
  end
data/spec/spec_helper.rb CHANGED
@@ -1 +1,4 @@
1
1
  require "passwd"
2
+
3
+ require "coveralls"
4
+ Coveralls.wear!
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passwd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -66,6 +66,7 @@ executables: []
66
66
  extensions: []
67
67
  extra_rdoc_files: []
68
68
  files:
69
+ - .coveralls.yml
69
70
  - .gitignore
70
71
  - .travis.yml
71
72
  - Gemfile
@@ -96,7 +97,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
97
  version: '0'
97
98
  segments:
98
99
  - 0
99
- hash: 109903666620076134
100
+ hash: -540825171026277875
100
101
  required_rubygems_version: !ruby/object:Gem::Requirement
101
102
  none: false
102
103
  requirements:
@@ -105,10 +106,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
106
  version: '0'
106
107
  segments:
107
108
  - 0
108
- hash: 109903666620076134
109
+ hash: -540825171026277875
109
110
  requirements: []
110
111
  rubyforge_project:
111
- rubygems_version: 1.8.25
112
+ rubygems_version: 1.8.23
112
113
  signing_key:
113
114
  specification_version: 3
114
115
  summary: Password utility