rbpw 0.0.2 → 0.0.3

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: b767a91e222295053e95667b39dccb51d06183ba44646c9ec76df081830cf64f
4
- data.tar.gz: 0b1103ce27b0f3afad2e902bd24005720d1c3a70e0efc0a0a990b76e6f6e45a4
3
+ metadata.gz: 90e9af3c77bb0ca69e37d58f98ad317a48df0fbeb952feac9af1298654168abe
4
+ data.tar.gz: 627602162f7657301f258a849313bbd07b0b7a929457ca562dc36afaedf4a208
5
5
  SHA512:
6
- metadata.gz: 5401920de12b31a82eb6a55c0c36443261fe1f8132b234e82f1b7fe5e31812da35aa469a36906e05aca5943384420307ccfb41706798056cc24731ea995a5a69
7
- data.tar.gz: 7cb6e31215afcc2b77f0759251a499173ba06681588c2284070be8f30b149c272e39eec5d9e56e4d6ef32854dde33e00cd342a125433b3bf3063ffcdcf38b9ff
6
+ metadata.gz: 88c19d8914060aaf76b76f28eea59bb39777d9d62fe5f397e2e120b462857189622015249bf0673e706daba131db8971ef85b3f69786b8a711f14bf5a9484b5d
7
+ data.tar.gz: 769d630f9f022b5e694f4d97d83e5f4f9fc7da057e999f61a040842b748e4981f0f45c49a84b5ddad41abd64ca0bd007f09b9bdfb9c519b6ce7e2ec83979cfb0
data/CHANGELOG.md CHANGED
@@ -5,4 +5,15 @@ This version is just to check if the gem is ready for release.
5
5
  This program does not work yet for confirmation.
6
6
  Please wait a little longer.
7
7
  ### Added
8
- - Prepare commands for minimum CRUD operations.
8
+ - Prepare commands for minimum CRUD operations.
9
+
10
+ ## [0.0.2] - 2021-01-25
11
+ Implemented some fixes, but it's a trial change, so it won't work perfectly.
12
+
13
+ ## [0.0.3] - 2021-05-13
14
+ It now works decently.
15
+ Do not use version 0.2 or earlier.
16
+ ### Added
17
+ - Password data can be stored in Redis
18
+ ### Changed
19
+ - Change some of the command names
data/Gemfile CHANGED
@@ -3,7 +3,13 @@ source "https://rubygems.org"
3
3
  gemspec
4
4
  gem "clipboard"
5
5
  gem "minitest"
6
+ gem "redic"
6
7
  group :doc do
7
8
  gem 'yard', require: false
8
9
  end
9
10
 
11
+ group :development do
12
+ gem 'mock_redis'
13
+ end
14
+
15
+
data/Gemfile.lock CHANGED
@@ -1,16 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rbpw (0.0.1)
4
+ rbpw (0.0.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  clipboard (1.3.5)
10
+ hiredis (0.6.3)
10
11
  minitest (5.14.3)
12
+ mock_redis (0.27.3)
13
+ ruby2_keywords
11
14
  rake (12.3.3)
12
- ruby-debug-ide (0.7.2)
13
- rake (>= 0.8.1)
15
+ redic (1.5.3)
16
+ hiredis
17
+ ruby2_keywords (0.0.4)
14
18
  thor (1.0.1)
15
19
  yard (0.9.25)
16
20
 
@@ -21,9 +25,10 @@ DEPENDENCIES
21
25
  bundler
22
26
  clipboard
23
27
  minitest
28
+ mock_redis
24
29
  rake
25
30
  rbpw!
26
- ruby-debug-ide
31
+ redic
27
32
  thor
28
33
  yard
29
34
 
data/lib/rbpw/cli.rb CHANGED
@@ -4,38 +4,45 @@ require 'thor'
4
4
 
5
5
  module Rbpw
6
6
  class CLI < Thor
7
-
8
- desc "new [item]", "add new your id & password set with key item"
9
- def new(name)
10
- puts "What's your id?"
7
+ desc "new [item, username(opt), password(opt)]", "add new item"
8
+ def new(key, username = nil , password = nil )
11
9
  # Currently, it is assumed that the data is typed on the console, so it cuts line breaks.
12
- id = "#{$stdin.gets.chomp!}"
13
- puts "What's your pw? "
14
- pw = "#{$stdin.gets.chomp!}"
15
- File.write(PW_DATA, JSON.generate(new_pw(name, id, pw)))
10
+ if username.nil?
11
+ puts "What's your username?"
12
+ username = "#{$stdin.gets.chomp!}"
13
+ end
14
+ if password.nil?
15
+ puts "What's your password? "
16
+ password = "#{$stdin.gets.chomp!}"
17
+ end
18
+ save_to_db(set_data(key, username, password))
16
19
  end
17
20
 
18
- desc "list", "show site_name"
19
- def list
20
- puts load_json&.keys
21
+ desc "show [item]", "show item data set"
22
+ def show(key)
23
+ data = read_from_db(key)
24
+ puts "username: #{data.get_username}"
25
+ puts "password: #{data.get_password}"
21
26
  end
22
27
 
23
- # desc "update [item]", "update items id or password"
24
- # def update(item, value)
25
- # update_item(item, value)
26
- # show_list
27
- # end
28
-
29
- desc "delete [item]", "delete item"
30
- def delete(item)
31
- File.write(PW_DATA, JSON.generate(load_json.delete(item)))
28
+ desc "update [item]", "update item password"
29
+ def update(key)
30
+ # 例外をメソッドに書く
31
+ data = read_from_db(key)
32
+ puts "input change password"
33
+ data.set_password("#{$stdin.gets.chomp!}")
34
+ save_to_db(data)
32
35
  end
33
36
 
34
- desc "copy [item] [id or pw]", "copy item"
35
- def copy(item, value)
36
- load_json.dig(item, value)
37
- Clipboard.copy(load_json.dig(item, value))
37
+ desc "delete [item]", "delete item"
38
+ def delete(key)
39
+ delete_item(key)
40
+ puts "delete item #{key}"
38
41
  end
39
42
 
43
+ desc "copy [item]", "copy password in your Clipboard"
44
+ def copy(key)
45
+ clip_board_copy(key)
40
46
  end
47
+ end
41
48
  end
data/lib/rbpw/main.rb CHANGED
@@ -4,40 +4,42 @@
4
4
  require 'securerandom'
5
5
  require 'json'
6
6
  require 'clipboard'
7
-
8
- # TODO:パラメータは外だしにしたい。
9
- PW_DATA = Dir.pwd + "/pw.json"
10
-
11
- def load_json
12
- if File.exist?(PW_DATA) == false
13
- FileUtils.touch(PW_DATA)
14
- File.write("{}")
15
- end
16
- JSON.load(File.read(PW_DATA))
7
+ require 'rbpw/pw_data'
8
+ require 'redic'
9
+
10
+ def read_from_db(key)
11
+ db = Redic.new
12
+ value = JSON.parse(db.call("GET", key))
13
+ data = PwData.new
14
+ data.key = key
15
+ data.set_username(value["username"])
16
+ data.set_password(value["password"])
17
+ data
17
18
  end
18
19
 
19
- # @note 標準形式のアカウントの情報を作成する。
20
- # TODO: id pw 以外にも保存できるようにする。
21
- # @param [String] name password set title
22
- # @param [String] id
23
- # @param [String] pw
24
- # @return hash
25
- def new_pw(name, id, pw)
26
- hash = Hash.new { |h, k| h[k] = {} }
27
- hash["#{name}"]["id"] = "#{id}"
28
- hash["#{name}"]["pw"] = "#{pw}"
29
- hash
20
+ def save_to_db(data)
21
+ db = Redic.new
22
+ value = data.get_json_value
23
+ db.call("SET", data.key.to_s, value) #Redic is not support HASHSET
24
+ db.quit
30
25
  end
31
26
 
32
- def update_item(item, value)
33
- data = load_json.key(item).key(value)
34
- puts data
27
+ def set_data(key, username, password)
28
+ data = PwData.new
29
+ data.key = key
30
+ data.set_username(username)
31
+ data.set_password(password)
32
+ data
35
33
  end
36
34
 
35
+ def delete_item(key)
36
+ db = Redic.new
37
+ db.call("DEL", key)
38
+ db.quit
39
+ end
37
40
 
38
- def clip_board_copy(item, value)
39
- load_json.dig(item, value)
40
- Clipboard.copy(load_json.dig(item, value))
41
+ def clip_board_copy(key)
42
+ Clipboard.copy(read_from_db(key).get_password)
41
43
  end
42
44
 
43
45
 
@@ -0,0 +1,35 @@
1
+
2
+ # Redisに登録するためのデータクラス。
3
+ require 'json'
4
+ class PwData
5
+ attr_accessor :key
6
+ @username
7
+ @password
8
+
9
+ def set_username(value)
10
+ @username = value
11
+ end
12
+
13
+ def get_username
14
+ value = @username
15
+ value
16
+ end
17
+
18
+ def set_password(value)
19
+ @password = value
20
+ end
21
+
22
+ def get_password
23
+ value = @password
24
+ value
25
+ end
26
+
27
+ def get_json_value
28
+ hash = Hash.new
29
+ hash.store(:username, @username)
30
+ hash.store(:password, @password)
31
+ hash.to_json
32
+ end
33
+
34
+
35
+ end
data/lib/rbpw/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rbpw
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbpw
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masashi Otsuka
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-28 00:00:00.000000000 Z
11
+ date: 2021-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -77,10 +77,9 @@ files:
77
77
  - lib/rbpw.rb
78
78
  - lib/rbpw/cli.rb
79
79
  - lib/rbpw/main.rb
80
- - lib/rbpw/pw.json
80
+ - lib/rbpw/pw_data.rb
81
81
  - lib/rbpw/version.rb
82
82
  - rbpw.gemspec
83
- - sample.json
84
83
  homepage: https://github.com/tukapai/rbpw
85
84
  licenses:
86
85
  - MIT
data/lib/rbpw/pw.json DELETED
@@ -1 +0,0 @@
1
- {}
data/sample.json DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "username": "Bob",
3
- "password": "hogehoge"
4
- }