nidobata 0.3.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 +4 -4
- data/README.md +3 -2
- data/lib/nidobata/version.rb +1 -1
- data/lib/nidobata.rb +34 -13
- data/nidobata.gemspec +2 -2
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87bff0f98393cd9b66a00a0a76d819cc24502244
|
4
|
+
data.tar.gz: 89cf328c7c7d4581c0a4d34ab3f0e7f994be197e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82b9b44718a22d560e87efa4e95668a954d5845349576d2ad9bffff9f1fc91affba1973798b898a4c13349e7c59d31a4e1e6236ea0d457103456d4d8ce1f744f
|
7
|
+
data.tar.gz: 62b19ee5ef18c19d2909b30ba512dc9c6313b132047a2a1d31837f80c9a7daee9972431bdf94dbba34907ff92db104b9760506d4155b63befc54093202a322e3
|
data/README.md
CHANGED
@@ -19,10 +19,11 @@ Password: ⏎
|
|
19
19
|
$ uname -a | nidobata post my-org-slug my-room
|
20
20
|
```
|
21
21
|
|
22
|
-
`--pre` option surrounds input with
|
22
|
+
`--pre` option surrounds input with triple tildes(`~~~`) and syntax name.
|
23
|
+
:warning: It does not work when including triple backquotes or triple tildes in input text :warning:
|
23
24
|
|
24
25
|
```
|
25
|
-
$ cat README.md | nidobata post my-org-slug my-room --pre
|
26
|
+
$ cat README.md | nidobata post my-org-slug my-room --pre markdown
|
26
27
|
```
|
27
28
|
|
28
29
|
## Development
|
data/lib/nidobata/version.rb
CHANGED
data/lib/nidobata.rb
CHANGED
@@ -14,16 +14,31 @@ module Nidobata
|
|
14
14
|
def init
|
15
15
|
email = ask('Email:')
|
16
16
|
password = ask('Password:', echo: false)
|
17
|
+
puts
|
17
18
|
data = {grant_type: 'password', username: email, password: password}
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
res = http.post('/oauth/token', data.to_json, {'Content-Type' => 'application/json'})
|
20
|
+
|
21
|
+
case res
|
22
|
+
when Net::HTTPSuccess
|
23
|
+
token = JSON.parse(res.body)['access_token']
|
24
|
+
netrc = Netrc.read
|
25
|
+
netrc[IDOBATA_URL.host] = email, token
|
26
|
+
netrc.save
|
27
|
+
when Net::HTTPUnauthorized
|
28
|
+
abort 'Authentication failed. You may have entered wrong Email or Password.'
|
29
|
+
else
|
30
|
+
abort <<-EOS
|
31
|
+
Failed to initialize.
|
32
|
+
Status: #{res.code}
|
33
|
+
Body:
|
34
|
+
#{res.body}
|
35
|
+
EOS
|
36
|
+
end
|
23
37
|
end
|
24
38
|
|
25
|
-
desc 'post ORG_SLUG ROOM_NAME [MESSAGE] [--pre]', 'Post a message from stdin or 2nd argument.'
|
26
|
-
option :pre,
|
39
|
+
desc 'post ORG_SLUG ROOM_NAME [MESSAGE] [--pre] [--title]', 'Post a message from stdin or 2nd argument.'
|
40
|
+
option :pre, type: :string, lazy_default: '', desc: 'can be used syntax highlight if argument exists'
|
41
|
+
option :title, type: :string, default: nil
|
27
42
|
def post(slug, room_name, message = $stdin.read)
|
28
43
|
abort 'Message is required.' unless message
|
29
44
|
ensure_api_token
|
@@ -31,12 +46,9 @@ module Nidobata
|
|
31
46
|
rooms = JSON.parse(http.get("/api/rooms?organization_slug=#{slug}&room_name=#{room_name}", default_headers).tap(&:value).body)
|
32
47
|
room_id = rooms['rooms'][0]['id']
|
33
48
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
else
|
38
|
-
{room_id: room_id, source: message}
|
39
|
-
end
|
49
|
+
message = build_message(message, options)
|
50
|
+
payload = {room_id: room_id, source: message}
|
51
|
+
payload[:format] = 'markdown' if options[:pre]
|
40
52
|
|
41
53
|
http.post('/api/messages', payload.to_json, default_headers).value
|
42
54
|
end
|
@@ -84,6 +96,15 @@ module Nidobata
|
|
84
96
|
http.use_ssl = IDOBATA_URL.scheme == 'https'
|
85
97
|
}
|
86
98
|
end
|
99
|
+
|
100
|
+
def build_message(original_message, options)
|
101
|
+
return original_message if options.empty?
|
102
|
+
|
103
|
+
title, pre = options.values_at(:title, :pre)
|
104
|
+
|
105
|
+
message = pre ? "~~~#{pre}\n#{original_message}\n~~~" : original_message
|
106
|
+
title ? "#{title}\n\n#{message}" : message
|
107
|
+
end
|
87
108
|
end
|
88
109
|
end
|
89
110
|
end
|
data/nidobata.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'nidobata/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "nidobata"
|
8
8
|
spec.version = Nidobata::VERSION
|
9
|
-
spec.authors = ["Hibariya"]
|
10
|
-
spec.email = ["hibariya@gmail.com"]
|
9
|
+
spec.authors = ["Hibariya", "Seiei Miyagi", "Mitsutaka Mimura"]
|
10
|
+
spec.email = ["hibariya@gmail.com", "hanachin@gmail.com", "takkanm@gmail.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{Read stdin and post it into idobata.io.}
|
13
13
|
spec.homepage = 'https://github.com/idobata/nidobata'
|
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nidobata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hibariya
|
8
|
+
- Seiei Miyagi
|
9
|
+
- Mitsutaka Mimura
|
8
10
|
autorequire:
|
9
11
|
bindir: exe
|
10
12
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
13
|
+
date: 2017-01-25 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: thor
|
@@ -69,6 +71,8 @@ dependencies:
|
|
69
71
|
description:
|
70
72
|
email:
|
71
73
|
- hibariya@gmail.com
|
74
|
+
- hanachin@gmail.com
|
75
|
+
- takkanm@gmail.com
|
72
76
|
executables:
|
73
77
|
- nidobata
|
74
78
|
extensions: []
|