worque 0.1.3 → 0.1.4
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/README.md +20 -1
- data/lib/worque/cli.rb +13 -0
- data/lib/worque/command/push/options.rb +15 -0
- data/lib/worque/command/push.rb +48 -0
- data/lib/worque/utils/slack.rb +23 -0
- data/lib/worque/version.rb +1 -1
- data/lib/worque.rb +0 -1
- metadata +18 -2
- data/lib/worque/command.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e69180a79a7932c847b6cd6d1ca3858449cc153
|
4
|
+
data.tar.gz: c28418960047a74bc6e571657bc0ff1e4e6cb694
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f094c9d4e657115a7f1454348be306e99d89981e843477fd8ca054666921cc383c7684b91f934754f7b1f72c532071526ad3373ebb690350d453025ec873d3bd
|
7
|
+
data.tar.gz: b9529cb56dcd47374310f4b8524b03c96e346fab1f70714dab910b6faa491acd162f4ec875dcb869fedb978d1fa38bb992383a73b9de5da020b86759908a012b
|
data/README.md
CHANGED
@@ -77,6 +77,26 @@ alias today="vim $(worque todo) +':cd $WORQUE_PATH'"
|
|
77
77
|
alias ytd="vim $(worque todo) +':cd $WORQUE_PATH'"
|
78
78
|
```
|
79
79
|
|
80
|
+
#### `worque todo`
|
81
|
+
|
82
|
+
Please remember to add `SLACK_API_TOKEN` in your `.bash_profile`
|
83
|
+
|
84
|
+
```sh
|
85
|
+
export SLACK_API_TOKEN=very-$3Cr3T
|
86
|
+
```
|
87
|
+
|
88
|
+
Then the note for today will be automatically posted to the channel specified.
|
89
|
+
|
90
|
+
```sh
|
91
|
+
worque push --channel=daily-report
|
92
|
+
```
|
93
|
+
|
94
|
+
Alternatively, you can choose to push the note for yesterday
|
95
|
+
|
96
|
+
```sh
|
97
|
+
worque push --channel daily-report --for yesterday
|
98
|
+
```
|
99
|
+
|
80
100
|
### VIM Integration
|
81
101
|
|
82
102
|
Add this to your VIM plugin manager
|
@@ -105,7 +125,6 @@ Something in my plan:
|
|
105
125
|
* Test suites: Embarrassingly there's no test currently, but this will be my
|
106
126
|
first priority.
|
107
127
|
* `worque list`: List all notes you have.
|
108
|
-
* `worque push`: Push your daily notes to your specified Slack channel.
|
109
128
|
* `worque changelog`: Sync your Git commits to daily notes.
|
110
129
|
|
111
130
|
## Contributing
|
data/lib/worque/cli.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'worque/command/todo'
|
3
3
|
require 'worque/command/todo/options'
|
4
|
+
require 'worque/command/push'
|
5
|
+
require 'worque/command/push/options'
|
4
6
|
|
5
7
|
module Worque
|
6
8
|
class CLI < ::Thor
|
9
|
+
package_name 'Worque CLI'
|
10
|
+
|
7
11
|
desc 'todo', 'Make a todo'
|
8
12
|
|
9
13
|
method_option :for, force: false, type: :string, enum: ['today', 'yesterday'], default: 'today'
|
@@ -13,5 +17,14 @@ module Worque
|
|
13
17
|
def todo
|
14
18
|
$stdout.puts Worque::Command::Todo.run(options)
|
15
19
|
end
|
20
|
+
|
21
|
+
desc 'push', 'Push your notes to Slack channel'
|
22
|
+
|
23
|
+
method_option :for, force: false, type: :string, enum: ['today', 'yesterday'], default: 'today'
|
24
|
+
method_option :channel, force: true, required: true, type: :string, desc: 'Can be channel, private group ID or name. E.g. #daily-report'
|
25
|
+
|
26
|
+
def push
|
27
|
+
$stdout.puts Worque::Command::Push.run(options)
|
28
|
+
end
|
16
29
|
end
|
17
30
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Worque
|
2
|
+
module Command
|
3
|
+
class Push::Options
|
4
|
+
attr_reader :channel
|
5
|
+
attr_reader :token
|
6
|
+
attr_reader :for
|
7
|
+
|
8
|
+
def initialize(options)
|
9
|
+
@channel = options[:channel]
|
10
|
+
@for = options[:for]
|
11
|
+
@token = ENV['SLACK_API_TOKEN']
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'worque/utils/slack'
|
2
|
+
require 'worque/utils/business_day'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Worque
|
6
|
+
module Command
|
7
|
+
class Push
|
8
|
+
def initialize(options)
|
9
|
+
@options = options
|
10
|
+
end
|
11
|
+
|
12
|
+
def call
|
13
|
+
slack = Worque::Utils::Slack.new(options.token)
|
14
|
+
JSON.dump(slack.post(options.channel, report_file_content))
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.run(options)
|
18
|
+
require 'worque/command/push/options'
|
19
|
+
|
20
|
+
Worque::Command::Push.new(
|
21
|
+
Worque::Command::Push::Options.new(options)
|
22
|
+
).call()
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
attr_reader :options
|
28
|
+
|
29
|
+
def date_for
|
30
|
+
case options.for.to_sym
|
31
|
+
when :today
|
32
|
+
Date.today
|
33
|
+
when :yesterday
|
34
|
+
Worque::Utils::BusinessDay.previous(Date.today, true)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def report_file_content
|
39
|
+
File.open(report_file_path).read
|
40
|
+
end
|
41
|
+
|
42
|
+
def report_file_path
|
43
|
+
"#{ ENV['WORQUE_PATH'] }/notes-#{date_for}.md"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'net/http'
|
3
|
+
|
4
|
+
module Worque
|
5
|
+
module Utils
|
6
|
+
class Slack
|
7
|
+
def initialize(token)
|
8
|
+
@token = token
|
9
|
+
end
|
10
|
+
|
11
|
+
def post(channel, message)
|
12
|
+
JSON.parse(post_form(channel, message).body)
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def post_form(channel, message)
|
18
|
+
uri = URI('https://slack.com/api/chat.postMessage')
|
19
|
+
Net::HTTP.post_form(uri, as_user: true, channel: channel, token: @token, text: message)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/worque/version.rb
CHANGED
data/lib/worque.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worque
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cam Huynh
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.8.1
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: webmock
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.1'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.1'
|
83
97
|
description: Manage your daily working list in Ruby
|
84
98
|
email:
|
85
99
|
- huynhquancam@gmail.com
|
@@ -94,11 +108,13 @@ files:
|
|
94
108
|
- bin/worque
|
95
109
|
- lib/worque.rb
|
96
110
|
- lib/worque/cli.rb
|
97
|
-
- lib/worque/command.rb
|
111
|
+
- lib/worque/command/push.rb
|
112
|
+
- lib/worque/command/push/options.rb
|
98
113
|
- lib/worque/command/todo.rb
|
99
114
|
- lib/worque/command/todo/options.rb
|
100
115
|
- lib/worque/utils/business_day.rb
|
101
116
|
- lib/worque/utils/command.rb
|
117
|
+
- lib/worque/utils/slack.rb
|
102
118
|
- lib/worque/version.rb
|
103
119
|
homepage: https://github.com/huynhquancam/worque
|
104
120
|
licenses:
|