asana2flowdock 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDEyNDYxNDIzNDM0MmVlYjhlZGQwNDFjODg2Mzk2ZGMyODFjZWNkNw==
4
+ NDk0YWE5ZjM3MDc1NGNlNmQ5YzMwODRlOWQ4OWI3YzRjZWI3YjUxNw==
5
5
  data.tar.gz: !binary |-
6
- Yzg4ZGZkYWQyMmI5ZWE0ODQ4YmNkZThkMjc0NGVmNmZjOWNjODMyMQ==
6
+ YTkwY2IyYThhZTU1ZDRiMjZkNGQzODhmYmZjN2U1ZjlkYjllZmQ3Nw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NGFiNjU3NjRhOTdlMzVmYTVjNDAyMjU3YjNiN2QyMmFlMjhhOGFhMzU2ODUz
10
- NTE4NmUwNjc5MzE1ZTgwMjZmZTI0OTc0YzYwNDg1YjU2ODAwMzA3YzdlMTQ4
11
- MGQyZDJlYzY4MmY0YTExODZiZDlkOGE2ZTFmZDU1MTdkZjQ1MWY=
9
+ ODlkMTJlM2FkNGRlNGUzYTNlMWZjM2FjN2I5NGMxZmE4NjIwZjUwMGI4YWE3
10
+ MmIxYTNkM2QxYmNmNjdkZWU3YjBlZTlkNmVhMjlkNjAyZjJlNDhjNDNlY2M4
11
+ MTI0MDQwZTBmZTQ3YzE3M2RjZmVkYjNhNjlkNDgxYjQwNDAxMTQ=
12
12
  data.tar.gz: !binary |-
13
- NWM5MTMzZjc5ZDk1MzcyNWEzNjNiZTYwMTFmNjkyMjg2YzQwYWY5M2EwMGRi
14
- MjFmNDRjYzc1NjQ5ZGJkMzc4Nzc1ZjAzY2RkMDMxNGM4OWE1NzJmZWNmM2U0
15
- ODJmMjI0MzA5OTdkMmNlY2I4MjkyOGVkZDllNWZlZmYzMDJiZTc=
13
+ MDdkNjEwZTQ4OGE5NTczNTE4NzhkNDQ3ZmI4MzUzODMxMDZiNTM4YTRiMmU4
14
+ YzFjZmQyZTYwNzM3ZDM5MDU1OWYwZWI1ODQwNTVkZGZmZWYyYWE5NDc4NzYx
15
+ ZDJmMjhlMDAyMTJhZjhjYjkyMDZhNGYzNWM2OTMwNWQwMjlkNDg=
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- asana2flowdock (1.1.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)
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification::new do |spec|
5
5
  spec.name = "asana2flowdock"
6
- spec.version = "1.2.0"
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"])
@@ -41,7 +41,7 @@ Main {
41
41
  }
42
42
 
43
43
  #
44
- option('--quiet', '-q')
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
- #asana.debug = true
73
- #asana.logger = logger
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
- unless params[:quiet].given?
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(:shell){
224
+ mode(:console){
222
225
  description <<-__
223
- drop into the shell. fuck with the db.
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
@@ -14,7 +14,7 @@
14
14
  # dao libs
15
15
  #
16
16
  module Asana2Flowdock
17
- Version = '1.2.0' unless defined?(Version)
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' => [ '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
- 'amalgalite' => [ 'amalgalite' ] ,
31
- 'sequel' => [ 'sequel' ] ,
32
- 'json' => [ 'json' ] ,
33
- 'map' => [ 'map' ] ,
34
- 'coerce' => [ 'coerce' ] ,
35
- 'fattr' => [ 'fattr' ] ,
36
- 'threadify' => [ 'threadify' ] ,
37
- 'flowdock' => [ 'flowdock' ] ,
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.2.0
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-01 00:00:00.000000000 Z
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