fulcrum_cloudfuji 0.1.1 → 0.2.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.
@@ -0,0 +1,51 @@
|
|
1
|
+
class CloudfujiStoryObserver < ActiveRecord::Observer
|
2
|
+
observe :story
|
3
|
+
|
4
|
+
def after_create(story)
|
5
|
+
return unless ::Cloudfuji::Platform.on_cloudfuji?
|
6
|
+
|
7
|
+
event = {
|
8
|
+
:category => :project_task,
|
9
|
+
:name => :created,
|
10
|
+
:data => event_data_for_story(story)
|
11
|
+
}
|
12
|
+
|
13
|
+
puts "Publishing Cloudfuji Event: #{event.inspect}"
|
14
|
+
::Cloudfuji::Event.publish(event)
|
15
|
+
end
|
16
|
+
|
17
|
+
def after_update(story)
|
18
|
+
return unless ::Cloudfuji::Platform.on_cloudfuji?
|
19
|
+
|
20
|
+
event = {
|
21
|
+
:category => :project_task,
|
22
|
+
:name => :updated,
|
23
|
+
:data => event_data_for_story(story)
|
24
|
+
}
|
25
|
+
|
26
|
+
puts "Publishing Cloudfuji Event: #{event.inspect}"
|
27
|
+
::Cloudfuji::Event.publish(event)
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def event_data_for_story(story)
|
34
|
+
project_url = Rails.application.routes.url_helpers.project_url(story.project, :host => ENV['CLOUDFUJI_DOMAIN'])
|
35
|
+
{
|
36
|
+
:ido_id => story.ido_id,
|
37
|
+
:title => story.title,
|
38
|
+
:description => story.description,
|
39
|
+
:estimate => story.estimate,
|
40
|
+
:task_type => story.story_type,
|
41
|
+
:state => story.state,
|
42
|
+
:accepted_at => story.accepted_at,
|
43
|
+
:owned_by_id => story.owned_by && story.owned_by.ido_id,
|
44
|
+
:requested_by_id => story.requested_by && story.requested_by.ido_id,
|
45
|
+
:project_id => story.project.ido_id,
|
46
|
+
:labels => story.labels,
|
47
|
+
:url => project_url
|
48
|
+
}
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
data/fulcrum_cloudfuji.gemspec
CHANGED
@@ -12,7 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.files = `git ls-files`.split("\n")
|
13
13
|
s.version = Fulcrum::Cloudfuji::VERSION
|
14
14
|
|
15
|
-
s.add_dependency 'cloudfuji', '>= 0.0.
|
15
|
+
s.add_dependency 'cloudfuji', '>= 0.0.44'
|
16
16
|
s.add_dependency 'devise_cloudfuji_authenticatable'
|
17
|
+
s.add_dependency 'uuid'
|
17
18
|
|
18
19
|
end
|
data/lib/fulcrum/cloudfuji.rb
CHANGED
@@ -55,6 +55,10 @@ module Fulcrum
|
|
55
55
|
Project.class_eval do
|
56
56
|
after_create :add_all_users!
|
57
57
|
|
58
|
+
validates_presence_of :ido_id
|
59
|
+
validates_uniqueness_of :ido_id
|
60
|
+
before_validation Proc.new { |p| p.ido_id ||= UUID.new.generate }
|
61
|
+
|
58
62
|
def add_all_users!
|
59
63
|
User.all.each do |user|
|
60
64
|
unless self.users.include?(user)
|
@@ -1,6 +1,12 @@
|
|
1
1
|
module Fulcrum
|
2
2
|
module Cloudfuji
|
3
3
|
class Engine < Rails::Engine
|
4
|
+
config.before_initialize do
|
5
|
+
# Register observers to fire Cloudfuji events
|
6
|
+
config.active_record.observers = [(config.active_record.observers || [])].flatten
|
7
|
+
config.active_record.observers << :cloudfuji_story_observer
|
8
|
+
end
|
9
|
+
|
4
10
|
config.to_prepare do
|
5
11
|
::Fulcrum::Application.class_eval do
|
6
12
|
# Add migrations from engine to main migrations
|
data/lib/fulcrum_cloudfuji.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fulcrum_cloudfuji
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-05-
|
13
|
+
date: 2012-05-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: cloudfuji
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.0.
|
22
|
+
version: 0.0.44
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,7 +27,7 @@ dependencies:
|
|
27
27
|
requirements:
|
28
28
|
- - ! '>='
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 0.0.
|
30
|
+
version: 0.0.44
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: devise_cloudfuji_authenticatable
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,6 +44,22 @@ dependencies:
|
|
44
44
|
- - ! '>='
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: uuid
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
47
63
|
description: Integrates Fulcrum with the Cloudfuji hosting platform.
|
48
64
|
email: s@cloudfuji.com
|
49
65
|
executables: []
|
@@ -56,6 +72,7 @@ files:
|
|
56
72
|
- MIT-LICENSE
|
57
73
|
- README
|
58
74
|
- Rakefile
|
75
|
+
- app/observers/cloudfuji_story_observer.rb
|
59
76
|
- app/views/layouts/application.html.erb
|
60
77
|
- app/views/users/index.html.erb
|
61
78
|
- config.ru
|
@@ -90,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
107
|
version: '0'
|
91
108
|
segments:
|
92
109
|
- 0
|
93
|
-
hash: -
|
110
|
+
hash: -4296676230947075107
|
94
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
112
|
none: false
|
96
113
|
requirements:
|
@@ -99,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
116
|
version: '0'
|
100
117
|
segments:
|
101
118
|
- 0
|
102
|
-
hash: -
|
119
|
+
hash: -4296676230947075107
|
103
120
|
requirements: []
|
104
121
|
rubyforge_project:
|
105
122
|
rubygems_version: 1.8.24
|