lita-random 0.4.0 → 0.5.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 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