lita-random 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c67828bb15939d57f5bec91b06da08d4d6aee941
4
- data.tar.gz: 1cfe508040cdac80136ece314a00ebb8ba475e7e
3
+ metadata.gz: c7291fd0f94e4f720014972892ee56aa6af1ade6
4
+ data.tar.gz: 3e0197b92dea5a058e0c59c6d35d5454c689f868
5
5
  SHA512:
6
- metadata.gz: 88025951bc7403f01a417f3df20e9ee9eb44dd823b124a9182b40239185847868adaf7fbe74d64f4164cd45b797d156da9bd911d63997e91c069f5e6355b924e
7
- data.tar.gz: eef729336d090cf88bffde3a8337b4882f7e0c4fa96e5bd281ac303888d6757224b5140e11610813118548b173b2904fb281f466ca2414012612dcffdfefb704
6
+ metadata.gz: c43770feea99772e18862c0a9704113df03a4fcf7c18972eca634875ff8fd36f6c9d16c46b58d6017649cf36b5bc35fb84dacfb1cb28721cfa6f1df649bc953d
7
+ data.tar.gz: a0f1601a1d74da07ece00975bbe20153ef95185fe84de199497241faf5a1c0e5b630b31328efee43fc1a742ce1f6ffafb7bd63e28c70bfc848b5af6bafcc1fa1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.5.0](https://github.com/braiden-vasco/lita-random/tree/v0.5.0) (2015-06-24)
4
+
5
+ [Full Changelog](https://github.com/braiden-vasco/lita-random/compare/v0.4.0...v0.5.0)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Add command "random case" [\#34](https://github.com/braiden-vasco/lita-random/pull/34) ([braiden-vasco](https://github.com/braiden-vasco))
10
+
11
+ - Add command "sample" [\#33](https://github.com/braiden-vasco/lita-random/pull/33) ([braiden-vasco](https://github.com/braiden-vasco))
12
+
13
+ - Add command "shuffle" [\#31](https://github.com/braiden-vasco/lita-random/pull/31) ([braiden-vasco](https://github.com/braiden-vasco))
14
+
15
+ - Move development dependencies to gemspec [\#30](https://github.com/braiden-vasco/lita-random/pull/30) ([braiden-vasco](https://github.com/braiden-vasco))
16
+
3
17
  ## [v0.4.0](https://github.com/braiden-vasco/lita-random/tree/v0.4.0) (2015-06-23)
4
18
 
5
19
  [Full Changelog](https://github.com/braiden-vasco/lita-random/compare/v0.3.0...v0.4.0)
data/Gemfile CHANGED
@@ -2,15 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in lita-random.gemspec
4
4
  gemspec
5
-
6
- gem 'github_changelog_generator', '~> 1.6.1'
7
-
8
- gem 'yard', '~> 0.8.7.6', require: false
9
- gem 'redcarpet', require: false
10
-
11
- gem 'rubocop', '~> 0.31.0', require: false
12
-
13
- gem 'rspec', '~> 3.3.0'
14
-
15
- gem 'simplecov', '~> 0.10.0', require: false
16
- gem 'coveralls', require: false
data/README.md CHANGED
@@ -17,7 +17,7 @@ At first, see the documentation for Lita: https://docs.lita.io/
17
17
  Add **lita-random** to your Lita instance's Gemfile:
18
18
 
19
19
  ```ruby
20
- gem 'lita-random', '~> 0.4.0'
20
+ gem 'lita-random', '~> 0.5.0'
21
21
  ```
22
22
 
23
23
  ### Commands
@@ -36,6 +36,9 @@ Command `random` has alias `rand`
36
36
  * `random <from> <to>` -
37
37
  random integer or float number, greater or equal to `from` and lesser than `to`
38
38
 
39
+ * `random case <s>` -
40
+ randomize case of each character of string `s`
41
+
39
42
  Command `base64` has alias `b64`
40
43
 
41
44
  * `random base64 <n=16>` -
@@ -63,6 +66,12 @@ Command `password` has alias `pass`
63
66
  * `random smart password <n=8>` -
64
67
  random pronounceable password with a minimum length of `n`
65
68
 
69
+ * `shuffle <array, ...>` -
70
+ new array with elements of `array` shuffled
71
+
72
+ * `sample <n=1> <array, ...>` -
73
+ choose `n` random elements from `array`
74
+
66
75
  ### Examples
67
76
 
68
77
  ```
@@ -85,6 +94,9 @@ Lita: 1240
85
94
  You: lita random 12 13.5
86
95
  Lita: 13.458799783677263
87
96
 
97
+ You: lita random case foo bar car cdr
98
+ Lita: FoO bAr CAr Cdr
99
+
88
100
  You: lita random base64
89
101
  Lite: 56wnZVVVStKG5+I6L4LVGw==
90
102
  You: lita randb64 10
@@ -107,4 +119,12 @@ You: lita random smart password
107
119
  Lita: mospowot
108
120
  You: lita random smartpass 16
109
121
  Lita: jophemyrdivezagi
122
+
123
+ You: lita shuffle 1, 2, 3, 4, 5
124
+ Lita: 3, 1, 5, 2, 4
125
+
126
+ You: lita sample 1, 2, 3, 4, 5
127
+ Lita: 4
128
+ You: lita sample 3 1, 2, 3, 4, 5
129
+ Lita: 5, 1, 2
110
130
  ```
@@ -22,6 +22,9 @@ module Lita
22
22
  'random integer or float number, ' \
23
23
  'greater or equal to `from` and lesser than `to`',
24
24
 
25
+ 'random case <s>' =>
26
+ 'randomize case of each character of string `s`',
27
+
25
28
  'random base64 <n=16>' =>
26
29
  'random base64 string, length of source string is n, ' \
27
30
  'length of result is about `n * 4 / 3` ' \
@@ -42,6 +45,12 @@ module Lita
42
45
 
43
46
  'random smart password <n=8>' =>
44
47
  'random pronounceable password with a minimum length of `n`',
48
+
49
+ 'shuffle <array, ...>' =>
50
+ 'new array with elements of `array` shuffled',
51
+
52
+ 'sample <n=1> <array, ...>' =>
53
+ 'choose `n` random elements from `array`',
45
54
  }
46
55
 
47
56
  route(/^rand(om)?$/i, :route_random, command: true, help: HELP)
@@ -80,6 +89,12 @@ module Lita
80
89
  response.reply(::Random.rand(from...to).to_s)
81
90
  end
82
91
 
92
+ route(/^rand(om)?\s*case(\s+(?<s>.*))?$/i,
93
+ :route_random_case, command: true)
94
+ def route_random_case(response)
95
+ response.reply(random_case(response.matches[0][0] || ''))
96
+ end
97
+
83
98
  route(/^rand(om)?\s*b(ase)?64$/i, :route_random_base64, command: true)
84
99
  def route_random_base64(response)
85
100
  response.reply(SecureRandom.base64)
@@ -134,8 +149,32 @@ module Lita
134
149
  response.reply(password(length))
135
150
  end
136
151
 
152
+ route(/^shuffle(\s+(?<array>.*))?$/i, :route_shuffle, command: true)
153
+ def route_shuffle(response)
154
+ s = response.matches[0][0]
155
+ a = s ? s.split(',').map(&:strip) : []
156
+ response.reply(a.shuffle.join(', '))
157
+ end
158
+
159
+ route(/^sample(\s+((?<n>\d+)\s+)?(?<array>.*))?$/i,
160
+ :route_sample, command: true)
161
+ def route_sample(response)
162
+ matches = response.matches[0]
163
+ n = matches[0]
164
+ s = matches[1]
165
+ a = s ? s.split(',').map(&:strip) : []
166
+ result = n ? a.sample(n.to_i).join(', ') : a.sample.to_s
167
+ response.reply(result)
168
+ end
169
+
137
170
  protected
138
171
 
172
+ def random_case(s)
173
+ s.each_char.map do |c|
174
+ ::Random.rand(2).zero? ? c.upcase : c.downcase
175
+ end.join
176
+ end
177
+
139
178
  SMART_PASS_SEQS = {
140
179
  false => %w(
141
180
  b c d f g h j k l m n p qu r s t v w x z
data/lita-random.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'lita-random'
5
- spec.version = '0.4.0'
5
+ spec.version = '0.5.0'
6
6
  spec.authors = ['Braiden Vasco']
7
7
  spec.email = ['braiden-vasco@mailtor.net']
8
8
 
@@ -26,6 +26,13 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.add_development_dependency 'bundler', '~> 1.7'
28
28
  spec.add_development_dependency 'rake', '~> 10.0'
29
+ spec.add_development_dependency 'github_changelog_generator', '~> 1.6'
30
+ spec.add_development_dependency 'yard', '~> 0.8'
31
+ spec.add_development_dependency 'redcarpet'
32
+ spec.add_development_dependency 'rubocop', '~> 0.31'
33
+ spec.add_development_dependency 'rspec', '~> 3.3'
34
+ spec.add_development_dependency 'simplecov', '~> 0.10'
35
+ spec.add_development_dependency 'coveralls'
29
36
 
30
37
  spec.add_runtime_dependency 'lita', '>= 4.4'
31
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-random
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Braiden Vasco
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-23 00:00:00.000000000 Z
11
+ date: 2015-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,104 @@ dependencies:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: github_changelog_generator
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0.8'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '0.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: redcarpet
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '0.31'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '0.31'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '3.3'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '3.3'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '0.10'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '0.10'
125
+ - !ruby/object:Gem::Dependency
126
+ name: coveralls
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
41
139
  - !ruby/object:Gem::Dependency
42
140
  name: lita
43
141
  requirement: !ruby/object:Gem::Requirement