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 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