ruboty-variable 0.0.4 → 0.1.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 +4 -4
- data/lib/ruboty/handlers/variable.rb +14 -60
- data/lib/ruboty/variable.rb +8 -8
- data/lib/ruboty/variable/actions/array_init.rb +28 -0
- data/lib/ruboty/variable/actions/array_push.rb +44 -0
- data/lib/ruboty/variable/actions/array_remove.rb +44 -0
- data/lib/ruboty/variable/actions/delete.rb +25 -0
- data/lib/ruboty/variable/actions/get.rb +20 -0
- data/lib/ruboty/variable/actions/list.rb +40 -0
- data/lib/ruboty/variable/actions/set.rb +30 -0
- data/lib/ruboty/variable/actions/variable.rb +2 -96
- data/lib/ruboty/variable/version.rb +1 -1
- metadata +8 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d609c506eaa0a6f86ad30db21ced82e2389710e5
|
4
|
+
data.tar.gz: 1f96504e71d3bb97dc5767f78519a434d9ccc341
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27a0a6d3dc19e263d39c22607eb58668579058750d2387987e15b67532bb2c54ff8c017feb3a61391d555ceb82eb0f6000aaab4cb18990ff9e36bd98bffa38dd
|
7
|
+
data.tar.gz: 71beb09f1e8c92a14dc4ddd0e379ec37f5a9aa009e1be71c5483f350bf3043624d7646036576025ddd17d52dba7ea00b58699ddcb5a8675699a3d68780905144
|
@@ -1,4 +1,11 @@
|
|
1
1
|
require "ruboty/variable/actions/variable"
|
2
|
+
require "ruboty/variable/actions/set"
|
3
|
+
require "ruboty/variable/actions/get"
|
4
|
+
require "ruboty/variable/actions/delete"
|
5
|
+
require "ruboty/variable/actions/list"
|
6
|
+
require "ruboty/variable/actions/array_init"
|
7
|
+
require "ruboty/variable/actions/array_push"
|
8
|
+
require "ruboty/variable/actions/array_remove"
|
2
9
|
|
3
10
|
module Ruboty
|
4
11
|
module Handlers
|
@@ -12,84 +19,31 @@ module Ruboty
|
|
12
19
|
on /var array remove (?<key>\S+?) (?<values>.+?)\z/, name: 'array_remove', description: 'Remove values from array'
|
13
20
|
|
14
21
|
def get_value(message)
|
15
|
-
Ruboty::Variable::Actions::
|
22
|
+
Ruboty::Variable::Actions::Get.new(message).call(message[:key])
|
16
23
|
end
|
17
24
|
|
18
25
|
def set_value(message)
|
19
|
-
Ruboty::Variable::Actions::
|
26
|
+
Ruboty::Variable::Actions::Set.new(message).call(message[:key], message[:value])
|
20
27
|
end
|
21
28
|
|
22
29
|
def delete_value(message)
|
23
|
-
Ruboty::Variable::Actions::
|
30
|
+
Ruboty::Variable::Actions::Delete.new(message).call(message[:key])
|
24
31
|
end
|
25
32
|
|
26
33
|
def list_values(message)
|
27
|
-
Ruboty::Variable::Actions::
|
34
|
+
Ruboty::Variable::Actions::List.new(message).call
|
28
35
|
end
|
29
36
|
|
30
37
|
def array_init(message)
|
31
|
-
Ruboty::Variable::Actions::
|
38
|
+
Ruboty::Variable::Actions::ArrayInit.new(message).call(message[:key])
|
32
39
|
end
|
33
40
|
|
34
41
|
def array_push(message)
|
35
|
-
Ruboty::Variable::Actions::
|
42
|
+
Ruboty::Variable::Actions::ArrayPush.new(message).call(message[:key], message[:values])
|
36
43
|
end
|
37
44
|
|
38
45
|
def array_remove(message)
|
39
|
-
Ruboty::Variable::Actions::
|
40
|
-
end
|
41
|
-
|
42
|
-
on /var test\z/, name: 'test_values', hide: true
|
43
|
-
|
44
|
-
def test_values(message)
|
45
|
-
var = Ruboty::Variable::Actions::Variable.new(message)
|
46
|
-
puts '# set'
|
47
|
-
var.set("hoge", "hoge_value")
|
48
|
-
var.set("123457", "999")
|
49
|
-
var.set("aohef23", "awef8a23a3a32")
|
50
|
-
var.set("string", "string_value")
|
51
|
-
|
52
|
-
puts "\n# get"
|
53
|
-
var.get("hoge")
|
54
|
-
var.get("piyo")
|
55
|
-
|
56
|
-
puts "\n# list"
|
57
|
-
var.list
|
58
|
-
|
59
|
-
puts "\n# delete"
|
60
|
-
var.delete("hoge")
|
61
|
-
var.delete("hoge")
|
62
|
-
var.list
|
63
|
-
|
64
|
-
puts "\n# init array"
|
65
|
-
var.array_init("ary")
|
66
|
-
var.array_init("string")
|
67
|
-
var.array_init("string")
|
68
|
-
var.list
|
69
|
-
|
70
|
-
puts "\n# push array"
|
71
|
-
var.array_push("ary", "one")
|
72
|
-
var.array_push("ary", "two")
|
73
|
-
var.array_push("ary", "two")
|
74
|
-
var.list
|
75
|
-
|
76
|
-
puts "\n# push array to empty array"
|
77
|
-
var.array_push("hoge", "kkkk")
|
78
|
-
var.array_push("zxcv", "pppp")
|
79
|
-
|
80
|
-
puts "\n# push values to array"
|
81
|
-
var.array_push("ary", "three four five")
|
82
|
-
var.list
|
83
|
-
|
84
|
-
puts "\n# remove values from array"
|
85
|
-
var.array_remove("ary", "one three")
|
86
|
-
var.list
|
87
|
-
|
88
|
-
puts "\n# remove error"
|
89
|
-
var.array_remove("ary", "one three")
|
90
|
-
var.array_remove("noary", "one")
|
91
|
-
var.array_remove("123457", "one")
|
92
|
-
var.list
|
46
|
+
Ruboty::Variable::Actions::ArrayRemove.new(message).call(message[:key], message[:values])
|
93
47
|
end
|
94
48
|
end
|
95
49
|
end
|
data/lib/ruboty/variable.rb
CHANGED
@@ -11,40 +11,40 @@ module Ruboty
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def set(key, value)
|
14
|
-
|
14
|
+
data[key] = {
|
15
15
|
:type => 'string',
|
16
16
|
:value => value
|
17
17
|
}
|
18
18
|
end
|
19
19
|
|
20
20
|
def get(key)
|
21
|
-
|
21
|
+
data[key][:value] if data.has_key?(key)
|
22
22
|
end
|
23
23
|
|
24
24
|
def type(key)
|
25
|
-
|
25
|
+
data[key][:type] if data.has_key?(key)
|
26
26
|
end
|
27
27
|
|
28
28
|
def array_init(key)
|
29
|
-
|
29
|
+
data[key] = {
|
30
30
|
:type => 'array',
|
31
31
|
:value => []
|
32
32
|
}
|
33
33
|
end
|
34
34
|
|
35
35
|
def array_push(key, value)
|
36
|
-
|
36
|
+
data[key][:value] << value unless array_include?(key, value)
|
37
37
|
end
|
38
38
|
|
39
39
|
def array_remove(key, value)
|
40
|
-
|
40
|
+
data[key][:value].delete(value) if array_include?(key, value)
|
41
41
|
end
|
42
42
|
|
43
43
|
def array_include?(key, value)
|
44
|
-
|
44
|
+
data[key][:value].include?(value) if type(key) == 'array'
|
45
45
|
end
|
46
46
|
|
47
|
-
def
|
47
|
+
def data
|
48
48
|
@values
|
49
49
|
end
|
50
50
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Ruboty
|
2
|
+
module Variable
|
3
|
+
module Actions
|
4
|
+
class ArrayInit < Ruboty::Variable::Actions::Variable
|
5
|
+
def call(key)
|
6
|
+
was_type = var.type(key)
|
7
|
+
|
8
|
+
var.array_init(key)
|
9
|
+
|
10
|
+
if was_type == 'array'
|
11
|
+
message.reply(clear_message(key))
|
12
|
+
else
|
13
|
+
message.reply(create_message(key))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def create_message(key)
|
18
|
+
"Created #{key} empty array"
|
19
|
+
end
|
20
|
+
|
21
|
+
def clear_message(key)
|
22
|
+
"Clear #{key} array"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Ruboty
|
2
|
+
module Variable
|
3
|
+
module Actions
|
4
|
+
class ArrayPush < Ruboty::Variable::Actions::Variable
|
5
|
+
def call(key, values)
|
6
|
+
case var.type(key)
|
7
|
+
when 'array'
|
8
|
+
values.split(/\s+/).each {|value| push(key, value)}
|
9
|
+
when nil
|
10
|
+
message.reply(undefined_message(key))
|
11
|
+
else
|
12
|
+
message.reply(type_error_message(key))
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def push(key, value)
|
17
|
+
if var.array_include?(key, value)
|
18
|
+
message.reply(included_message(key, value))
|
19
|
+
else
|
20
|
+
var.array_push(key, value)
|
21
|
+
message.reply(push_message(key, value))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def included_message(key, value)
|
26
|
+
"#{key} already included #{value}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def push_message(key, value)
|
30
|
+
"Push #{value} to #{key}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def type_error_message(key)
|
34
|
+
"#{key} is not array type"
|
35
|
+
end
|
36
|
+
|
37
|
+
def undefined_message(key)
|
38
|
+
"Undefined #{key}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Ruboty
|
2
|
+
module Variable
|
3
|
+
module Actions
|
4
|
+
class ArrayRemove < Ruboty::Variable::Actions::Variable
|
5
|
+
def call(key, values)
|
6
|
+
case var.type(key)
|
7
|
+
when 'array'
|
8
|
+
values.split(/\s+/).each {|value| remove(key, value)}
|
9
|
+
when nil
|
10
|
+
message.reply(undefined_message(key))
|
11
|
+
else
|
12
|
+
message.reply(type_error_message(key))
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def remove(key, value)
|
17
|
+
if var.array_include?(key, value)
|
18
|
+
var.array_remove(key, value)
|
19
|
+
message.reply(remove_message(key, value))
|
20
|
+
else
|
21
|
+
message.reply(not_found_message(key, value))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def remove_message(key, value)
|
26
|
+
"Remove #{value} from #{key}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def not_found_message(key, value)
|
30
|
+
"#{value} is not found in #{key}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def type_error_message(key)
|
34
|
+
"#{key} is not array type"
|
35
|
+
end
|
36
|
+
|
37
|
+
def undefined_message(key)
|
38
|
+
"Undefined #{key}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Ruboty
|
2
|
+
module Variable
|
3
|
+
module Actions
|
4
|
+
class Delete < Ruboty::Variable::Actions::Variable
|
5
|
+
def call(key)
|
6
|
+
if var.data.has_key?(key)
|
7
|
+
var.data.delete(key)
|
8
|
+
message.reply(delete_message(key))
|
9
|
+
else
|
10
|
+
message.reply(undefined_message(key))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def delete_message(key)
|
15
|
+
"Deleted #{key}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def undefined_message(key)
|
19
|
+
"Undefined #{key}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Ruboty
|
2
|
+
module Variable
|
3
|
+
module Actions
|
4
|
+
class Get < Ruboty::Variable::Actions::Variable
|
5
|
+
def call(key)
|
6
|
+
if var.data.has_key?(key)
|
7
|
+
message.reply(var.get(key))
|
8
|
+
else
|
9
|
+
message.reply(undefined_message(key))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def undefined_message(key)
|
14
|
+
"Undefined #{key}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Ruboty
|
2
|
+
module Variable
|
3
|
+
module Actions
|
4
|
+
class List < Ruboty::Variable::Actions::Variable
|
5
|
+
def call
|
6
|
+
if var.data.empty?
|
7
|
+
message.reply(empty_message)
|
8
|
+
else
|
9
|
+
message.reply(variable_descriptions, code: true)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def empty_message
|
14
|
+
'Variable is empty'
|
15
|
+
end
|
16
|
+
|
17
|
+
def variable_descriptions
|
18
|
+
key_len = [max_key_length, 'key'.size].max
|
19
|
+
type_len = [max_type_length, 'type'.size].max
|
20
|
+
|
21
|
+
header = "%-#{key_len}s %-#{type_len}s value\n" % %w(key type)
|
22
|
+
|
23
|
+
body = var.data.map do |k, v|
|
24
|
+
"%-#{key_len}s - %-#{type_len}s - #{v[:value]}" % [k, v[:type]]
|
25
|
+
end.join("\n")
|
26
|
+
|
27
|
+
header << body
|
28
|
+
end
|
29
|
+
|
30
|
+
def max_key_length
|
31
|
+
var.data.keys.map(&:size).max
|
32
|
+
end
|
33
|
+
|
34
|
+
def max_type_length
|
35
|
+
var.data.values.map {|x| x[:type].size}.max
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Ruboty
|
2
|
+
module Variable
|
3
|
+
module Actions
|
4
|
+
class Set < Ruboty::Variable::Actions::Variable
|
5
|
+
def call(key, value)
|
6
|
+
had_key = var.data.has_key?(key)
|
7
|
+
|
8
|
+
var.set(key, value)
|
9
|
+
|
10
|
+
message.reply(
|
11
|
+
if had_key
|
12
|
+
overwrite_message(key, value)
|
13
|
+
else
|
14
|
+
set_message(key, value)
|
15
|
+
end
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
def set_message(key, value)
|
20
|
+
"Set #{value} to #{key}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def overwrite_message(key, value)
|
24
|
+
"Overwrite #{value} to #{key}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -7,102 +7,8 @@ module Ruboty
|
|
7
7
|
@var = Ruboty::Variable::Variable.new(message)
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
11
|
-
|
12
|
-
message.reply("Overwrite #{value} to #{key}")
|
13
|
-
else
|
14
|
-
message.reply("Set #{value} to #{key}")
|
15
|
-
end
|
16
|
-
|
17
|
-
@var.set(key, value)
|
18
|
-
end
|
19
|
-
|
20
|
-
def get(key)
|
21
|
-
if @var.values.has_key?(key)
|
22
|
-
message.reply(@var.get(key))
|
23
|
-
else
|
24
|
-
message.reply("Undefined #{key}")
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def delete(key)
|
29
|
-
if @var.values.has_key?(key)
|
30
|
-
@var.values.delete(key)
|
31
|
-
message.reply("Deleted #{key}")
|
32
|
-
else
|
33
|
-
message.reply("Undefined #{key}")
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def list
|
38
|
-
if @var.values.empty?
|
39
|
-
message.reply('Variable is empty')
|
40
|
-
else
|
41
|
-
message.reply(variable_descriptions, code: true)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def array_init(key)
|
46
|
-
if @var.type(key) == 'array'
|
47
|
-
message.reply("Clear #{key} array")
|
48
|
-
else
|
49
|
-
message.reply("Created #{key} empty array")
|
50
|
-
end
|
51
|
-
@var.array_init(key)
|
52
|
-
end
|
53
|
-
|
54
|
-
def array_push(key, values)
|
55
|
-
case @var.type(key)
|
56
|
-
when 'array'
|
57
|
-
values.split(/\s+/).each do |value|
|
58
|
-
if @var.array_include?(key, value)
|
59
|
-
message.reply("#{key} already included #{value}")
|
60
|
-
else
|
61
|
-
@var.array_push(key, value)
|
62
|
-
message.reply("Push #{value} to #{key}")
|
63
|
-
end
|
64
|
-
end
|
65
|
-
when nil
|
66
|
-
message.reply("Undefined #{key}")
|
67
|
-
else
|
68
|
-
message.reply("#{key} is not array type")
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def array_remove(key, values)
|
73
|
-
case @var.type(key)
|
74
|
-
when 'array'
|
75
|
-
values.split(/\s+/).each do |value|
|
76
|
-
if @var.array_include?(key, value)
|
77
|
-
@var.array_remove(key, value)
|
78
|
-
message.reply("Remove #{value} from #{key}")
|
79
|
-
else
|
80
|
-
message.reply("#{value} is not found in #{key}")
|
81
|
-
end
|
82
|
-
end
|
83
|
-
when nil
|
84
|
-
message.reply("Undefined #{key}")
|
85
|
-
else
|
86
|
-
message.reply("#{key} is not array type")
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def variable_descriptions
|
91
|
-
key_len = [max_key_length, 'key'.size].max
|
92
|
-
type_len = [max_type_length, 'type'.size].max
|
93
|
-
|
94
|
-
mes = "%-#{key_len}s %-#{type_len}s value\n" % %w(key type)
|
95
|
-
mes << @var.values.map do |k, v|
|
96
|
-
"%-#{key_len}s - %-#{type_len}s - #{v[:value]}" % [k, v[:type]]
|
97
|
-
end.join("\n")
|
98
|
-
end
|
99
|
-
|
100
|
-
def max_key_length
|
101
|
-
@var.values.keys.map(&:size).max
|
102
|
-
end
|
103
|
-
|
104
|
-
def max_type_length
|
105
|
-
@var.values.values.map {|x| x[:type].size}.max
|
10
|
+
protected def var
|
11
|
+
@var
|
106
12
|
end
|
107
13
|
end
|
108
14
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruboty-variable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- snakazawa
|
@@ -66,6 +66,13 @@ files:
|
|
66
66
|
- Rakefile
|
67
67
|
- lib/ruboty/handlers/variable.rb
|
68
68
|
- lib/ruboty/variable.rb
|
69
|
+
- lib/ruboty/variable/actions/array_init.rb
|
70
|
+
- lib/ruboty/variable/actions/array_push.rb
|
71
|
+
- lib/ruboty/variable/actions/array_remove.rb
|
72
|
+
- lib/ruboty/variable/actions/delete.rb
|
73
|
+
- lib/ruboty/variable/actions/get.rb
|
74
|
+
- lib/ruboty/variable/actions/list.rb
|
75
|
+
- lib/ruboty/variable/actions/set.rb
|
69
76
|
- lib/ruboty/variable/actions/variable.rb
|
70
77
|
- lib/ruboty/variable/version.rb
|
71
78
|
- ruboty-variable.gemspec
|