slackdo 0.2.3 → 0.3.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/.gitignore +2 -0
- data/Gemfile.lock +43 -1
- data/README.md +19 -2
- data/bin/slackdo +13 -4
- data/img/cli-example.png +0 -0
- data/img/slack-task.png +0 -0
- data/img/trello-card.png +0 -0
- data/lib/slackdo/version.rb +1 -1
- data/lib/slackdo.rb +99 -15
- data/slackdo.gemspec +4 -2
- data/} +0 -0
- metadata +34 -3
- data/.DS_Store +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5506335231c02001550addecf509393dd3179819
|
4
|
+
data.tar.gz: 2a375c347978f10660eed09e8a982b2af16a1125
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7848f72ae63ff078e2669162e7721c1dbc4aa7372812ef3f231598043de12e4441544be2d6607fce0706493f3de104d6a9fb8c8182dafd04ac077face9780671
|
7
|
+
data.tar.gz: ff1e8f3fbe807e5dda917ec7b96bf5b876a6875b7a88586d8ecf7fd8ddc9e67b899d0601b11506226f41c5594d51b2706adda51c4c67db2862f25c15b32e7b3c
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,16 +1,46 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
slackdo (0.
|
4
|
+
slackdo (0.3.0)
|
5
5
|
highline
|
6
|
+
json
|
7
|
+
ruby-trello
|
6
8
|
slack-notifier
|
7
9
|
|
8
10
|
GEM
|
9
11
|
remote: https://rubygems.org/
|
10
12
|
specs:
|
13
|
+
activemodel (5.1.4)
|
14
|
+
activesupport (= 5.1.4)
|
15
|
+
activesupport (5.1.4)
|
16
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
17
|
+
i18n (~> 0.7)
|
18
|
+
minitest (~> 5.1)
|
19
|
+
tzinfo (~> 1.1)
|
20
|
+
addressable (2.5.2)
|
21
|
+
public_suffix (>= 2.0.2, < 4.0)
|
22
|
+
concurrent-ruby (1.0.5)
|
11
23
|
diff-lcs (1.3)
|
24
|
+
domain_name (0.5.20170404)
|
25
|
+
unf (>= 0.0.5, < 1.0.0)
|
12
26
|
highline (1.7.8)
|
27
|
+
http-cookie (1.0.3)
|
28
|
+
domain_name (~> 0.5)
|
29
|
+
i18n (0.9.1)
|
30
|
+
concurrent-ruby (~> 1.0)
|
31
|
+
json (2.1.0)
|
32
|
+
mime-types (3.1)
|
33
|
+
mime-types-data (~> 3.2015)
|
34
|
+
mime-types-data (3.2016.0521)
|
35
|
+
minitest (5.10.3)
|
36
|
+
netrc (0.11.0)
|
37
|
+
oauth (0.5.3)
|
38
|
+
public_suffix (3.0.0)
|
13
39
|
rake (10.5.0)
|
40
|
+
rest-client (2.0.2)
|
41
|
+
http-cookie (>= 1.0.2, < 2.0)
|
42
|
+
mime-types (>= 1.16, < 4.0)
|
43
|
+
netrc (~> 0.8)
|
14
44
|
rspec (3.7.0)
|
15
45
|
rspec-core (~> 3.7.0)
|
16
46
|
rspec-expectations (~> 3.7.0)
|
@@ -24,7 +54,19 @@ GEM
|
|
24
54
|
diff-lcs (>= 1.2.0, < 2.0)
|
25
55
|
rspec-support (~> 3.7.0)
|
26
56
|
rspec-support (3.7.0)
|
57
|
+
ruby-trello (2.0.0)
|
58
|
+
activemodel (>= 3.2.0)
|
59
|
+
addressable (~> 2.3)
|
60
|
+
json
|
61
|
+
oauth (>= 0.4.5)
|
62
|
+
rest-client (>= 1.8.0)
|
27
63
|
slack-notifier (2.3.1)
|
64
|
+
thread_safe (0.3.6)
|
65
|
+
tzinfo (1.2.4)
|
66
|
+
thread_safe (~> 0.1)
|
67
|
+
unf (0.1.4)
|
68
|
+
unf_ext
|
69
|
+
unf_ext (0.0.7.4)
|
28
70
|
|
29
71
|
PLATFORMS
|
30
72
|
ruby
|
data/README.md
CHANGED
@@ -39,11 +39,11 @@ $ gem which slackdo
|
|
39
39
|
This indicates that your gem binary is located at `/usr/local/lib/ruby/gems/<ruby-version>/gems/slackdo-<gem-version>/bin`.
|
40
40
|
|
41
41
|
## Usage
|
42
|
-
|
42
|
+
### Slack
|
43
43
|
First thing you should do is configure your incoming webhook by doing the following:
|
44
44
|
|
45
45
|
```
|
46
|
-
slackdo
|
46
|
+
slackdo configure slack
|
47
47
|
```
|
48
48
|
|
49
49
|
After that you're all set to go.
|
@@ -58,6 +58,23 @@ or add a reminder with
|
|
58
58
|
slackdo reminder
|
59
59
|
```
|
60
60
|
|
61
|
+
### Trello
|
62
|
+
To start using the Trello integration of SlackDO, which enables you to push your TODO items to a list on Trello use:
|
63
|
+
|
64
|
+
```
|
65
|
+
slackdo configure trello
|
66
|
+
```
|
67
|
+
|
68
|
+
Now that this has been configured SlackDO will send your items to Trello as well using the same command.
|
69
|
+
|
70
|
+
```
|
71
|
+
slackdo task
|
72
|
+
```
|
73
|
+
|
74
|
+

|
75
|
+

|
76
|
+

|
77
|
+
|
61
78
|
## Development
|
62
79
|
|
63
80
|
Slackdo is still under development and might still be buggy. Feel free to contribute to the project.
|
data/bin/slackdo
CHANGED
@@ -2,15 +2,24 @@
|
|
2
2
|
|
3
3
|
require 'slackdo'
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
config = Slackdo::Config.new
|
6
|
+
config.configure_init
|
7
7
|
|
8
8
|
case ARGV[0]
|
9
|
-
when '
|
10
|
-
|
9
|
+
when 'configure'
|
10
|
+
config.configure_slack_webhook if ARGV[1] == 'slack'
|
11
|
+
config.configure_trello_api if ARGV[1] == 'trello'
|
11
12
|
when 'task'
|
12
13
|
slack = Slackdo::Task.new
|
13
14
|
slack.add_task
|
15
|
+
file = File.read("#{ENV['HOME']}/.slackdo/config.json")
|
16
|
+
hash = JSON.parse(file)
|
17
|
+
if hash['allow_trello_pushing'] == 'true'
|
18
|
+
card_name = slack.get_message
|
19
|
+
card_desc = slack.get_notes
|
20
|
+
trello = Slackdo::Card.new
|
21
|
+
trello.add_card(card_name, card_desc)
|
22
|
+
end
|
14
23
|
when 'reminder'
|
15
24
|
slack = Slackdo::Reminder.new
|
16
25
|
slack.add_reminder
|
data/img/cli-example.png
ADDED
Binary file
|
data/img/slack-task.png
ADDED
Binary file
|
data/img/trello-card.png
ADDED
Binary file
|
data/lib/slackdo/version.rb
CHANGED
data/lib/slackdo.rb
CHANGED
@@ -1,45 +1,129 @@
|
|
1
|
-
require
|
1
|
+
require 'slackdo/version'
|
2
2
|
require 'highline'
|
3
3
|
require 'slack-notifier'
|
4
|
+
require 'trello'
|
5
|
+
require 'json'
|
4
6
|
|
5
7
|
module Slackdo
|
6
|
-
class
|
7
|
-
def
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
class Config
|
9
|
+
def configure_init
|
10
|
+
system "mkdir #{ENV['HOME']}/.slackdo &> /dev/null"
|
11
|
+
unless File.exist?("#{ENV['HOME']}/.slackdo/config.json")
|
12
|
+
system "touch #{ENV['HOME']}/.slackdo/config.json"
|
13
|
+
hash = {
|
14
|
+
"slack_webhook" => "",
|
15
|
+
"allow_trello_pushing" => "false",
|
16
|
+
"trello_public_key" => "",
|
17
|
+
"trello_member_token" => "",
|
18
|
+
"trello_list_id" => ""
|
19
|
+
}
|
20
|
+
File.open("#{ENV['HOME']}/.slackdo/config.json",'w') do |f|
|
21
|
+
f.write(hash.to_json)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
def configure_trello_api
|
11
26
|
cli = HighLine.new
|
12
|
-
|
13
|
-
|
27
|
+
file = File.read("#{ENV['HOME']}/.slackdo/config.json")
|
28
|
+
hash = JSON.parse(file)
|
29
|
+
public_key = cli.ask 'What is your Trello public key?'.strip
|
30
|
+
member_token = cli.ask 'What is your Trello member token?'.strip
|
31
|
+
list_id = cli.ask 'What is your board list ID where the cards should be created?'.strip
|
32
|
+
hash["trello_public_key"] = public_key
|
33
|
+
hash["trello_member_token"] = member_token
|
34
|
+
hash["allow_trello_pushing"] = "true"
|
35
|
+
hash["trello_list_id"] = list_id
|
36
|
+
File.open("#{ENV['HOME']}/.slackdo/config.json",'w') do |f|
|
37
|
+
f.write(hash.to_json)
|
38
|
+
end
|
39
|
+
puts 'Trello API was configured...'
|
40
|
+
end
|
41
|
+
def configure_slack_webhook
|
42
|
+
cli = HighLine.new
|
43
|
+
file = File.read("#{ENV['HOME']}/.slackdo/config.json")
|
44
|
+
hash = JSON.parse(file)
|
45
|
+
webhook = cli.ask 'What is your Slack webhook?'.strip
|
46
|
+
hash["slack_webhook"] = webhook
|
47
|
+
File.open("#{ENV['HOME']}/.slackdo/config.json",'w') do |f|
|
48
|
+
f.write(hash.to_json)
|
49
|
+
end
|
50
|
+
puts 'Slack API was configured...'
|
14
51
|
end
|
15
52
|
end
|
53
|
+
|
54
|
+
class Card
|
55
|
+
def configure_trello
|
56
|
+
file = File.read("#{ENV['HOME']}/.slackdo/config.json")
|
57
|
+
hash = JSON.parse(file)
|
58
|
+
Trello.configure do |config|
|
59
|
+
config.developer_public_key = hash['trello_public_key']
|
60
|
+
config.member_token = hash['trello_member_token']
|
61
|
+
end
|
62
|
+
end
|
63
|
+
def add_card(card_name, card_desc)
|
64
|
+
file = File.read("#{ENV['HOME']}/.slackdo/config.json")
|
65
|
+
hash = JSON.parse(file)
|
66
|
+
configure_trello
|
67
|
+
card = Trello::Card.create(
|
68
|
+
name: card_name,
|
69
|
+
desc: card_desc,
|
70
|
+
list_id: hash['trello_list_id'],
|
71
|
+
pos: 'top',
|
72
|
+
)
|
73
|
+
card.save
|
74
|
+
puts 'Card was created on Trello...'
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
16
78
|
class Task
|
79
|
+
$note_content = ''
|
80
|
+
$message = ''
|
81
|
+
def set_message(text)
|
82
|
+
$message = text
|
83
|
+
end
|
84
|
+
def set_notes(notes)
|
85
|
+
$note_content = notes
|
86
|
+
end
|
87
|
+
def get_message
|
88
|
+
return $message
|
89
|
+
end
|
90
|
+
def get_notes
|
91
|
+
return $note_content
|
92
|
+
end
|
17
93
|
def add_task
|
18
|
-
|
94
|
+
file = File.read("#{ENV['HOME']}/.slackdo/config.json")
|
95
|
+
hash = JSON.parse(file)
|
96
|
+
webhook = hash['slack_webhook']
|
97
|
+
notifier = Slack::Notifier.new webhook
|
19
98
|
cli = HighLine.new
|
20
99
|
category = cli.ask 'What is the category of this new task? eg. DEV or GENERAL'
|
21
|
-
|
100
|
+
cli_message = cli.ask 'Type your new task:'
|
22
101
|
want_note = cli.ask 'Do you want to add a note to this new task? y/n'
|
23
|
-
|
102
|
+
cli_note = ''
|
24
103
|
while want_note == 'y'
|
25
104
|
note_text = cli.ask 'Type your note:'
|
26
|
-
|
105
|
+
cli_note << "\n`- #{note_text}`"
|
27
106
|
want_note = cli.ask 'Do you want to add another note to the task? y/n'
|
28
107
|
end
|
29
108
|
note = {
|
30
109
|
fallback: "This should've been a new note but looks like something went wrong...",
|
31
|
-
text:
|
110
|
+
text: cli_note,
|
32
111
|
color: "gray",
|
33
112
|
mrkdwn_in: ["text"]
|
34
113
|
}
|
35
|
-
|
114
|
+
set_message("[#{category}] #{cli_message}")
|
115
|
+
set_notes(cli_note)
|
116
|
+
notifier.post text: "• [#{category}] #{cli_message}", attachments: [note]
|
36
117
|
puts 'Item was posted to Slack...'
|
37
118
|
end
|
38
119
|
end
|
39
120
|
|
40
121
|
class Reminder
|
41
122
|
def add_reminder
|
42
|
-
|
123
|
+
file = File.read("#{ENV['HOME']}/.slackdo/config.json")
|
124
|
+
hash = JSON.parse(file)
|
125
|
+
webhook = hash['slack_webhook']
|
126
|
+
notifier = Slack::Notifier.new webhook
|
43
127
|
cli = HighLine.new
|
44
128
|
message = cli.ask 'Type your reminder:'
|
45
129
|
notifier.post text: "• _#{message}_"
|
data/slackdo.gemspec
CHANGED
@@ -27,6 +27,8 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency "bundler", "~> 1.16"
|
28
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
29
29
|
spec.add_development_dependency "rspec", "~> 3.0"
|
30
|
-
spec.add_dependency
|
31
|
-
spec.add_dependency
|
30
|
+
spec.add_dependency 'highline'
|
31
|
+
spec.add_dependency 'slack-notifier'
|
32
|
+
spec.add_dependency 'ruby-trello'
|
33
|
+
spec.add_dependency 'json'
|
32
34
|
end
|
data/}
ADDED
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slackdo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- segersniels
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: ruby-trello
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: json
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
description: SlackDO provides you with an easy CLI tool which allows you to write
|
84
112
|
todo tasks and reminders to yourself on Slack
|
85
113
|
email:
|
@@ -88,7 +116,6 @@ executables: []
|
|
88
116
|
extensions: []
|
89
117
|
extra_rdoc_files: []
|
90
118
|
files:
|
91
|
-
- ".DS_Store"
|
92
119
|
- ".gitignore"
|
93
120
|
- ".rspec"
|
94
121
|
- ".travis.yml"
|
@@ -100,10 +127,14 @@ files:
|
|
100
127
|
- bin/console
|
101
128
|
- bin/setup
|
102
129
|
- bin/slackdo
|
130
|
+
- img/cli-example.png
|
131
|
+
- img/slack-task.png
|
103
132
|
- img/task-example.png
|
133
|
+
- img/trello-card.png
|
104
134
|
- lib/slackdo.rb
|
105
135
|
- lib/slackdo/version.rb
|
106
136
|
- slackdo.gemspec
|
137
|
+
- "}"
|
107
138
|
homepage: https://github.com/segersniels/slackdo
|
108
139
|
licenses:
|
109
140
|
- MIT
|
data/.DS_Store
DELETED
Binary file
|