asana2flowdock 1.2.0 → 1.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 +8 -8
- data/Gemfile.lock +16 -2
- data/asana2flowdock.gemspec +5 -2
- data/bin/asana2flowdock +19 -10
- data/lib/asana2flowdock.rb +16 -14
- data/lib/asana2flowdock/slug.rb +27 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDk0YWE5ZjM3MDc1NGNlNmQ5YzMwODRlOWQ4OWI3YzRjZWI3YjUxNw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTkwY2IyYThhZTU1ZDRiMjZkNGQzODhmYmZjN2U1ZjlkYjllZmQ3Nw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODlkMTJlM2FkNGRlNGUzYTNlMWZjM2FjN2I5NGMxZmE4NjIwZjUwMGI4YWE3
|
10
|
+
MmIxYTNkM2QxYmNmNjdkZWU3YjBlZTlkNmVhMjlkNjAyZjJlNDhjNDNlY2M4
|
11
|
+
MTI0MDQwZTBmZTQ3YzE3M2RjZmVkYjNhNjlkNDgxYjQwNDAxMTQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDdkNjEwZTQ4OGE5NTczNTE4NzhkNDQ3ZmI4MzUzODMxMDZiNTM4YTRiMmU4
|
14
|
+
YzFjZmQyZTYwNzM3ZDM5MDU1OWYwZWI1ODQwNTVkZGZmZWYyYWE5NDc4NzYx
|
15
|
+
ZDJmMjhlMDAyMTJhZjhjYjkyMDZhNGYzNWM2OTMwNWQwMjlkNDg=
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
asana2flowdock (1.
|
4
|
+
asana2flowdock (1.2.0)
|
5
5
|
amalgalite
|
6
6
|
arrayfields (~> 4.7.4)
|
7
7
|
coerce
|
@@ -10,7 +10,9 @@ PATH
|
|
10
10
|
json
|
11
11
|
main (~> 6.1.0)
|
12
12
|
map
|
13
|
-
pry
|
13
|
+
pry (~> 0.10.1)
|
14
|
+
pry-debugger (~> 0.2.3)
|
15
|
+
pry-nav (~> 0.2.4)
|
14
16
|
sequel
|
15
17
|
threadify
|
16
18
|
|
@@ -25,6 +27,13 @@ GEM
|
|
25
27
|
coderay (1.1.0)
|
26
28
|
coerce (0.0.6)
|
27
29
|
chronic (>= 0.6.2)
|
30
|
+
columnize (0.8.9)
|
31
|
+
debugger (1.6.8)
|
32
|
+
columnize (>= 0.3.1)
|
33
|
+
debugger-linecache (~> 1.2.0)
|
34
|
+
debugger-ruby_core_source (~> 1.3.5)
|
35
|
+
debugger-linecache (1.2.0)
|
36
|
+
debugger-ruby_core_source (1.3.5)
|
28
37
|
fastercsv (1.5.5)
|
29
38
|
fattr (2.2.2)
|
30
39
|
flowdock (0.5.0)
|
@@ -47,6 +56,11 @@ GEM
|
|
47
56
|
coderay (~> 1.1.0)
|
48
57
|
method_source (~> 0.8.1)
|
49
58
|
slop (~> 3.4)
|
59
|
+
pry-debugger (0.2.3)
|
60
|
+
debugger (~> 1.3)
|
61
|
+
pry (>= 0.9.10, < 0.11.0)
|
62
|
+
pry-nav (0.2.4)
|
63
|
+
pry (>= 0.9.10, < 0.11.0)
|
50
64
|
sequel (4.15.0)
|
51
65
|
slop (3.5.0)
|
52
66
|
threadify (1.3.0)
|
data/asana2flowdock.gemspec
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
Gem::Specification::new do |spec|
|
5
5
|
spec.name = "asana2flowdock"
|
6
|
-
spec.version = "1.
|
6
|
+
spec.version = "1.3.0"
|
7
7
|
spec.platform = Gem::Platform::RUBY
|
8
8
|
spec.summary = "asana2flowdock"
|
9
9
|
spec.description = "asana2flowdock relays asana events into flowdock awesomely"
|
@@ -21,7 +21,8 @@ Gem::Specification::new do |spec|
|
|
21
21
|
"lib",
|
22
22
|
"lib/asana2flowdock",
|
23
23
|
"lib/asana2flowdock.rb",
|
24
|
-
"lib/asana2flowdock/asana.rb"
|
24
|
+
"lib/asana2flowdock/asana.rb",
|
25
|
+
"lib/asana2flowdock/slug.rb"]
|
25
26
|
|
26
27
|
spec.executables = ["asana2flowdock"]
|
27
28
|
|
@@ -40,6 +41,8 @@ Gem::Specification::new do |spec|
|
|
40
41
|
|
41
42
|
spec.add_dependency(*["pry-nav", "~> 0.2.4"])
|
42
43
|
|
44
|
+
spec.add_dependency(*["stringex", ">= 2.1.0"])
|
45
|
+
|
43
46
|
spec.add_dependency(*["amalgalite"])
|
44
47
|
|
45
48
|
spec.add_dependency(*["sequel"])
|
data/bin/asana2flowdock
CHANGED
@@ -41,7 +41,7 @@ Main {
|
|
41
41
|
}
|
42
42
|
|
43
43
|
#
|
44
|
-
option('--
|
44
|
+
option('--debug', '-d')
|
45
45
|
|
46
46
|
#
|
47
47
|
daemonizes!
|
@@ -69,8 +69,11 @@ Main {
|
|
69
69
|
def process_stories!
|
70
70
|
#
|
71
71
|
asana = Asana.api_for config.get(:asana, :token)
|
72
|
-
|
73
|
-
|
72
|
+
|
73
|
+
if params[:debug].given?
|
74
|
+
asana.debug = true
|
75
|
+
asana.logger = logger
|
76
|
+
end
|
74
77
|
|
75
78
|
#
|
76
79
|
workspace = asana.my.workspaces.detect{|workspace| workspace.name == config.get(:asana, :workspace)}
|
@@ -127,7 +130,7 @@ Main {
|
|
127
130
|
flow = Flowdock::Flow.new(
|
128
131
|
:api_token => config.get(:flowdock, :token),
|
129
132
|
:source => "asana",
|
130
|
-
:project => project.name,
|
133
|
+
:project => project.name.gsub(/[^0-9a-z _\-]/i, ''),
|
131
134
|
:from => from
|
132
135
|
)
|
133
136
|
|
@@ -152,7 +155,7 @@ Main {
|
|
152
155
|
msg = Map.new
|
153
156
|
msg[:format] = "html"
|
154
157
|
msg[:subject] = "#{ project.name } :: #{ task.name }"
|
155
|
-
msg[:tags] = ["asana"]
|
158
|
+
msg[:tags] = [slug_for("asana/#{ project.name }"), "asana"]
|
156
159
|
msg[:content] = content
|
157
160
|
|
158
161
|
#
|
@@ -162,10 +165,10 @@ Main {
|
|
162
165
|
|
163
166
|
#
|
164
167
|
pushed =
|
165
|
-
|
166
|
-
flow.push_to_team_inbox(msg)
|
167
|
-
else
|
168
|
+
if params[:debug].given?
|
168
169
|
true
|
170
|
+
else
|
171
|
+
flow.push_to_team_inbox(msg)
|
169
172
|
end
|
170
173
|
|
171
174
|
#
|
@@ -218,9 +221,9 @@ Main {
|
|
218
221
|
end
|
219
222
|
|
220
223
|
#
|
221
|
-
mode(:
|
224
|
+
mode(:console){
|
222
225
|
description <<-__
|
223
|
-
drop into the
|
226
|
+
drop into the console. fuck with the db.
|
224
227
|
__
|
225
228
|
|
226
229
|
def run
|
@@ -260,6 +263,11 @@ Main {
|
|
260
263
|
|
261
264
|
(@locks ||= []).push(lock)
|
262
265
|
end
|
266
|
+
|
267
|
+
#
|
268
|
+
def slug_for(*args)
|
269
|
+
Slug.for(*args)
|
270
|
+
end
|
263
271
|
}
|
264
272
|
|
265
273
|
|
@@ -267,6 +275,7 @@ BEGIN {
|
|
267
275
|
#
|
268
276
|
require_relative '../lib/asana2flowdock.rb'
|
269
277
|
Asana = Asana2Flowdock::Asana
|
278
|
+
Slug = Asana2Flowdock::Slug
|
270
279
|
|
271
280
|
#
|
272
281
|
STDOUT.sync = true
|
data/lib/asana2flowdock.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# dao libs
|
15
15
|
#
|
16
16
|
module Asana2Flowdock
|
17
|
-
Version = '1.
|
17
|
+
Version = '1.3.0' unless defined?(Version)
|
18
18
|
|
19
19
|
def version
|
20
20
|
Asana2Flowdock::Version
|
@@ -22,19 +22,20 @@
|
|
22
22
|
|
23
23
|
def dependencies
|
24
24
|
{
|
25
|
-
'arrayfields'
|
26
|
-
'main'
|
27
|
-
'pry'
|
28
|
-
'pry-debugger'
|
29
|
-
'pry-nav'
|
30
|
-
'
|
31
|
-
'
|
32
|
-
'
|
33
|
-
'
|
34
|
-
'
|
35
|
-
'
|
36
|
-
'
|
37
|
-
'
|
25
|
+
'arrayfields' => [ 'arrayfields' , '~> 4.7.4' ] ,
|
26
|
+
'main' => [ 'main' , '~> 6.1.0' ] ,
|
27
|
+
'pry' => [ 'pry' , '~> 0.10.1' ] ,
|
28
|
+
'pry-debugger' => [ 'pry-debugger' , '~> 0.2.3' ] ,
|
29
|
+
'pry-nav' => [ 'pry-nav' , '~> 0.2.4' ] ,
|
30
|
+
'stringex' => [ 'stringex' , '>= 2.1.0' ] ,
|
31
|
+
'amalgalite' => [ 'amalgalite' ] ,
|
32
|
+
'sequel' => [ 'sequel' ] ,
|
33
|
+
'json' => [ 'json' ] ,
|
34
|
+
'map' => [ 'map' ] ,
|
35
|
+
'coerce' => [ 'coerce' ] ,
|
36
|
+
'fattr' => [ 'fattr' ] ,
|
37
|
+
'threadify' => [ 'threadify' ] ,
|
38
|
+
'flowdock' => [ 'flowdock' ] ,
|
38
39
|
}
|
39
40
|
end
|
40
41
|
|
@@ -80,6 +81,7 @@
|
|
80
81
|
end
|
81
82
|
|
82
83
|
Asana2Flowdock.load %w[
|
84
|
+
slug.rb
|
83
85
|
asana.rb
|
84
86
|
]
|
85
87
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Asana2Flowdock
|
2
|
+
class Slug < ::String
|
3
|
+
Join = '-'
|
4
|
+
|
5
|
+
def Slug.for(*args)
|
6
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
7
|
+
join = (options[:join]||options['join']||Join).to_s
|
8
|
+
string = args.flatten.compact.join(join)
|
9
|
+
string = unidecode(string)
|
10
|
+
words = string.to_s.scan(%r|[/\w]+|)
|
11
|
+
words.map!{|word| word.gsub %r|[_-]|, join}
|
12
|
+
words.map!{|word| word.gsub %r|[^/0-9a-zA-Z_-]|, ''}
|
13
|
+
words.delete_if{|word| word.nil? or word.strip.empty?}
|
14
|
+
new(words.join(join).downcase.gsub('/', (join * 2)))
|
15
|
+
end
|
16
|
+
|
17
|
+
unless defined?(Stringex::Unidecoder)
|
18
|
+
def Slug.unidecode(string)
|
19
|
+
string
|
20
|
+
end
|
21
|
+
else
|
22
|
+
def Slug.unidecode(string)
|
23
|
+
Stringex::Unidecoder.decode(string)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asana2flowdock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ara T. Howard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: arrayfields
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.2.4
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: stringex
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.1.0
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.1.0
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: amalgalite
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -207,6 +221,7 @@ files:
|
|
207
221
|
- bin/asana2flowdock
|
208
222
|
- lib/asana2flowdock.rb
|
209
223
|
- lib/asana2flowdock/asana.rb
|
224
|
+
- lib/asana2flowdock/slug.rb
|
210
225
|
homepage: https://github.com/ahoward/asana2flowdock
|
211
226
|
licenses:
|
212
227
|
- same as ruby's
|