svn-campfire-notifier 0.2.4 → 0.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.
@@ -1,21 +1,35 @@
1
1
  class SVNCampfireNotifier
2
2
  class GoogleImage
3
- URL = 'http://images.google.com/images?safe=active&q=%s'
3
+ URL = 'http://images.google.com/images?safe=active'
4
4
  RESULTS_REGEXP = /setResults\((\[\[.+\]\])\);/
5
5
 
6
- def initialize(query)
7
- @query = query
6
+ attr_reader :project
7
+
8
+ def initialize(project)
9
+ @project = project
10
+ end
11
+
12
+ def extra_options
13
+ {
14
+ 'isch' => '1',
15
+ 'itp' => project.image_type,
16
+ 'ic' => 'specific',
17
+ 'ics' => project.color
18
+ }.inject([]) do |serialized, (key, value)|
19
+ serialized << "#{key}:#{value}"
20
+ end.join(',')
8
21
  end
9
22
 
10
23
  def query
11
- "kitty+#{@query}"
24
+ "#{project.subject}+#{project.revision}"
12
25
  end
13
26
 
14
27
  def url
15
- URL % query
28
+ "#{URL}&q=#{query}&tbs=#{extra_options}"
16
29
  end
17
30
 
18
31
  def feeling_lucky
32
+ puts url
19
33
  response = REST.get(url)
20
34
  if response.ok? and match = RESULTS_REGEXP.match(response.body)
21
35
  data = JSON.parse(match[1]).first
@@ -16,11 +16,10 @@ class SVNCampfireNotifier
16
16
  parts = []
17
17
  parts << ["#{SALUTATIONS.random}, #{project.author.capitalize} just committed revision #{project.revision} of #{project.name}: https://fngtps.com/browser/#{project.name}/changesets/#{project.revision}"]
18
18
  parts << ["#{Wrap.wrap(project.log)}\n\n#{project.changed.strip}", {:type => :paste}]
19
- if image_url = GoogleImage.feeling_lucky(project.revision)
19
+ if image_url = GoogleImage.feeling_lucky(project)
20
20
  parts << [image_url]
21
21
  end
22
22
  parts
23
- # room.speak(IMAGE_EXCEPTIONS.has_key?(revision) ? IMAGE_EXCEPTIONS[revision] : Google::Images.feeling_lucky(revision).thumbnail_url)
24
23
  end
25
24
  end
26
25
  end
@@ -1,5 +1,9 @@
1
1
  class SVNCampfireNotifier
2
2
  class Project
3
+ SUBJECTS = %w(kitty turtle dog car computer retro)
4
+ COLORS = %w(red orange yellow green teal blue purple pink white grey black brown)
5
+ TYPES = %w(face photo clipart lineart)
6
+
3
7
  attr_reader :repository_path, :revision
4
8
 
5
9
  def initialize(repository_path, revision)
@@ -22,5 +26,21 @@ class SVNCampfireNotifier
22
26
  def log
23
27
  @log ||= `svnlook log -r #{revision} #{repository_path}`.strip
24
28
  end
29
+
30
+ def index
31
+ name[0]
32
+ end
33
+
34
+ def subject
35
+ SUBJECTS[index % SUBJECTS.length]
36
+ end
37
+
38
+ def color
39
+ COLORS[index % COLORS.length]
40
+ end
41
+
42
+ def image_type
43
+ TYPES[index % TYPES.length]
44
+ end
25
45
  end
26
46
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svn-campfire-notifier
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 4
10
- version: 0.2.4
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Manfred Stienstra