Module: Errbit::Cloudfuji

Defined in:
lib/errbit/cloudfuji.rb,
lib/errbit_cloudfuji/engine.rb,
lib/errbit_cloudfuji/version.rb,
lib/errbit/cloudfuji/event_observers/app_observer.rb,
lib/errbit/cloudfuji/event_observers/user_observer.rb,
lib/errbit/cloudfuji/event_observers/project_task_observer.rb

Defined Under Namespace

Modules: EventObservers Classes: Engine

Constant Summary collapse

VERSION =
'0.2.4'

Class Method Summary collapse

Class Method Details

.disable_devise_for_cloudfuji_controllers!Object

Temporary hack because all routes require authentication in Errbit



56
57
58
59
60
61
62
63
64
# File 'lib/errbit/cloudfuji.rb', line 56

def disable_devise_for_cloudfuji_controllers!
  puts "Disabling devise auth protection on cloudfuji controllers"

  ::Cloudfuji::DataController.instance_eval { before_filter :authenticate_user!, :except => [:index]  }
  ::Cloudfuji::EnvsController.instance_eval { before_filter :authenticate_user!, :except => [:update] }
  ::Cloudfuji::MailController.instance_eval { before_filter :authenticate_user!, :except => [:index]  }

  puts "Devise checks disabled for Cloudfuji controllers"
end

.enable_cloudfuji!Object



4
5
6
7
8
9
10
# File 'lib/errbit/cloudfuji.rb', line 4

def enable_cloudfuji!
  load_observers!
  extend_user!
  extend_err!
  extend_app!
  disable_devise_for_cloudfuji_controllers!
end

.extend_app!Object



37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/errbit/cloudfuji.rb', line 37

def extend_app!
  # Make CloudfujiTracker the default tracker
  AppsController.class_eval do
    def plug_params_with_cloudfuji_tracker(app)
      plug_params_without_cloudfuji_tracker(app)
      if app.issue_tracker.class == IssueTracker
        app.issue_tracker = CloudfujiTracker.new
      end
    end
    alias_method_chain :plug_params, :cloudfuji_tracker
  end
end

.extend_err!Object



27
28
29
30
31
32
33
34
35
# File 'lib/errbit/cloudfuji.rb', line 27

def extend_err!
  Err.class_eval do
    field                   :ido_id
    validates_presence_of   :ido_id
    validates_uniqueness_of :ido_id

    before_validation Proc.new { |e| e.ido_id ||= UUID.new.generate  }
  end
end

.extend_user!Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/errbit/cloudfuji.rb', line 12

def extend_user!
  puts "Extending the user model"
  User.class_eval do
    field                   :ido_id
    validates_presence_of   :ido_id
    validates_uniqueness_of :ido_id

    def cloudfuji_extra_attributes(extra_attributes)
      self.name  = "#{extra_attributes['first_name'].to_s} #{extra_attributes['last_name'].to_s}"
      self.email = extra_attributes["email"]
      self.admin = true
    end
  end
end

.load_observers!Object



50
51
52
# File 'lib/errbit/cloudfuji.rb', line 50

def load_observers!
  Dir[File.expand_path("../cloudfuji/event_observers/*.rb", __FILE__)].each { |file| require file }
end