hoptoad-api 1.0.0 → 2.0.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.
data/README.textile CHANGED
@@ -1,6 +1,7 @@
1
1
  h1. Hoptoad API
2
2
 
3
3
  An unofficial Ruby library for interacting with the "Hoptoad API":http://hoptoadapp.com/pages/api
4
+ "Hoptoad-2 API":http://help.hoptoadapp.com/faqs/api-2/api-overview
4
5
 
5
6
  h2. Usage
6
7
 
@@ -14,7 +15,7 @@ Hoptoad::Error.find(12345)
14
15
 
15
16
  # or get a list of errors using:
16
17
  Hoptoad::Error.find(:all)
17
- Hoptoad::Error.find(:all, :params => { :page => 2 })
18
+ Hoptoad::Error.find(:all, { :page => 2 })
18
19
  </code>
19
20
  </pre>
20
21
 
@@ -27,4 +28,3 @@ h2. Requirements
27
28
  h2. Acknowledgements
28
29
 
29
30
  * "Hoptoad":http://hoptoadapp.com
30
- * "Lighthouse-api":http://github.com/Caged/lighthouse-api (inspiration for much of this code)
data/Rakefile CHANGED
@@ -1,18 +1,62 @@
1
+ require 'rubygems'
1
2
  require 'rake'
2
3
 
4
+ $LOAD_PATH.unshift 'lib'
5
+
3
6
  begin
4
7
  require 'jeweler'
5
- Jeweler::Tasks.new do |s|
6
- s.name = "hoptoad-api"
7
- s.summary = %Q{An unofficial gem for interacting with the Hoptoad API}
8
- s.email = "steve.agalloco@gmail.com"
9
- s.homepage = "http://github.com/spagalloco/hoptoad-api"
10
- s.description = "An unofficial gem for interacting with the Hoptoad API"
11
- s.authors = ["Steve Agalloco"]
12
- s.add_dependency(%q<activesupport>, [">= 2.1.0"])
13
- s.add_dependency(%q<activeresource>, [">= 2.1.0"])
8
+ require 'hoptoad-api/version'
9
+
10
+ Jeweler::Tasks.new do |gem|
11
+ gem.name = "hoptoad-api"
12
+ gem.summary = %Q{An unofficial gem for interacting with the Hoptoad API}
13
+ gem.email = "steve.agalloco@gmail.com"
14
+ gem.homepage = "http://github.com/spagalloco/hoptoad-api"
15
+ gem.description = "An unofficial gem for interacting with the Hoptoad API"
16
+ gem.authors = ["Steve Agalloco"]
17
+ gem.version = Hoptoad::VERSION
18
+
19
+ gem.add_dependency(%q<httparty>, [">= 0.5.2"])
20
+ gem.add_dependency(%q<hashie>, [">= 0.2.0"])
21
+
22
+ gem.add_development_dependency "shoulda", ">= 0"
23
+ gem.add_development_dependency "fakeweb", ">= 0"
14
24
  end
15
25
  Jeweler::GemcutterTasks.new
16
26
  rescue LoadError
17
- puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
18
- end
27
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
28
+ end
29
+
30
+ require 'rake/testtask'
31
+ Rake::TestTask.new(:test) do |test|
32
+ test.libs << 'lib' << 'test'
33
+ test.pattern = 'test/**/test_*.rb'
34
+ test.verbose = true
35
+ end
36
+
37
+ begin
38
+ require 'rcov/rcovtask'
39
+ Rcov::RcovTask.new do |test|
40
+ test.libs << 'test'
41
+ test.pattern = 'test/**/test_*.rb'
42
+ test.verbose = true
43
+ end
44
+ rescue LoadError
45
+ task :rcov do
46
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
47
+ end
48
+ end
49
+
50
+ task :test => :check_dependencies
51
+
52
+ task :default => :test
53
+
54
+ require 'rake/rdoctask'
55
+ Rake::RDocTask.new do |rdoc|
56
+ version = Hoptoad::VERSION
57
+
58
+ rdoc.rdoc_dir = 'rdoc'
59
+ rdoc.title = "hoptoad-api #{version}"
60
+ rdoc.rdoc_files.include('README*')
61
+ rdoc.rdoc_files.include('lib/**/*.rb')
62
+ end
data/hoptoad-api.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{hoptoad-api}
8
- s.version = "1.0.0"
8
+ s.version = "2.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Steve Agalloco"]
12
- s.date = %q{2010-04-24}
12
+ s.date = %q{2010-04-23}
13
13
  s.description = %q{An unofficial gem for interacting with the Hoptoad API}
14
14
  s.email = %q{steve.agalloco@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -19,10 +19,16 @@ Gem::Specification.new do |s|
19
19
  ".gitignore",
20
20
  "README.textile",
21
21
  "Rakefile",
22
- "VERSION.yml",
23
22
  "hoptoad-api.gemspec",
24
23
  "lib/hoptoad-api.rb",
25
- "test/hoptoad-api.rb"
24
+ "lib/hoptoad-api/client.rb",
25
+ "lib/hoptoad-api/core_extensions.rb",
26
+ "lib/hoptoad-api/version.rb",
27
+ "test/fixtures/errors.xml",
28
+ "test/fixtures/individual_error.xml",
29
+ "test/fixtures/paginated_errors.xml",
30
+ "test/test_helper.rb",
31
+ "test/test_hoptoad-api.rb"
26
32
  ]
27
33
  s.homepage = %q{http://github.com/spagalloco/hoptoad-api}
28
34
  s.rdoc_options = ["--charset=UTF-8"]
@@ -30,7 +36,8 @@ Gem::Specification.new do |s|
30
36
  s.rubygems_version = %q{1.3.5}
31
37
  s.summary = %q{An unofficial gem for interacting with the Hoptoad API}
32
38
  s.test_files = [
33
- "test/hoptoad-api.rb"
39
+ "test/test_helper.rb",
40
+ "test/test_hoptoad-api.rb"
34
41
  ]
35
42
 
36
43
  if s.respond_to? :specification_version then
@@ -38,15 +45,21 @@ Gem::Specification.new do |s|
38
45
  s.specification_version = 3
39
46
 
40
47
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
41
- s.add_runtime_dependency(%q<activesupport>, [">= 2.1.0"])
42
- s.add_runtime_dependency(%q<activeresource>, [">= 2.1.0"])
48
+ s.add_runtime_dependency(%q<httparty>, [">= 0.5.2"])
49
+ s.add_runtime_dependency(%q<hashie>, [">= 0.2.0"])
50
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
51
+ s.add_development_dependency(%q<fakeweb>, [">= 0"])
43
52
  else
44
- s.add_dependency(%q<activesupport>, [">= 2.1.0"])
45
- s.add_dependency(%q<activeresource>, [">= 2.1.0"])
53
+ s.add_dependency(%q<httparty>, [">= 0.5.2"])
54
+ s.add_dependency(%q<hashie>, [">= 0.2.0"])
55
+ s.add_dependency(%q<shoulda>, [">= 0"])
56
+ s.add_dependency(%q<fakeweb>, [">= 0"])
46
57
  end
47
58
  else
48
- s.add_dependency(%q<activesupport>, [">= 2.1.0"])
49
- s.add_dependency(%q<activeresource>, [">= 2.1.0"])
59
+ s.add_dependency(%q<httparty>, [">= 0.5.2"])
60
+ s.add_dependency(%q<hashie>, [">= 0.2.0"])
61
+ s.add_dependency(%q<shoulda>, [">= 0"])
62
+ s.add_dependency(%q<fakeweb>, [">= 0"])
50
63
  end
51
64
  end
52
65
 
data/lib/hoptoad-api.rb CHANGED
@@ -1,122 +1,28 @@
1
- require 'rubygems'
1
+ require 'hashie'
2
+ require 'httparty'
2
3
 
3
- begin
4
- require 'uri'
5
- require 'addressable/uri'
6
-
7
- module URI
8
- def decode(*args)
9
- Addressable::URI.decode(*args)
10
- end
11
-
12
- def escape(*args)
13
- Addressable::URI.escape(*args)
14
- end
15
-
16
- def parse(*args)
17
- Addressable::URI.parse(*args)
18
- end
19
- end
20
- rescue LoadError
21
- puts "Install the Addressable gem to support accounts with subdomains."
22
- puts "# sudo gem install addressable"
23
- puts
24
- end
25
-
26
- require 'activesupport'
27
- require 'activeresource'
28
-
29
- # Ruby lib for working with the Hoptoad API's XML interface.
30
- # The first thing you need to set is the account name. This is the same
31
- # as the web address for your account.
32
- #
33
- # Hoptoad.account = 'myaccount'
34
- #
35
- # Then, you should set the authentication token.
36
- #
37
- # Hoptoad.token = 'abcdefg'
38
- #
39
- # If no token or authentication info is given, a HoptoadError exception will be raised.
40
- #
41
- # For more details, check out the hoptoad docs at http://hoptoadapp.com/pages/api.
42
- #
43
4
  module Hoptoad
5
+ extend self
6
+
44
7
  class HoptoadError < StandardError; end
45
- class << self
46
- attr_accessor :host_format, :domain_format, :protocol, :port
47
- attr_reader :account, :token
48
-
49
- # Sets the account name, and updates all the resources with the new domain.
50
- def account=(name)
51
- resources.each do |klass|
52
- klass.site = klass.site_format % (host_format % [protocol, domain_format % name, ":#{port}"])
53
- end
54
- @account = name
55
- end
56
-
57
- # Sets the API token for all the resources.
58
- def token=(value)
59
- @token = value
60
- end
61
-
62
- def resources
63
- @resources ||= []
64
- end
8
+
9
+ def account=(account)
10
+ @account = account
65
11
  end
66
-
67
- self.host_format = '%s://%s%s'
68
- self.domain_format = '%s.hoptoadapp.com'
69
- self.protocol = 'http'
70
- self.port = ''
71
-
72
- class Base < ActiveResource::Base
73
- def self.inherited(base)
74
- Hoptoad.resources << base
75
- class << base
76
- attr_accessor :site_format
77
-
78
- def append_auth_token_to_params(*arguments)
79
- opts = arguments.last.is_a?(Hash) ? arguments.pop : {}
80
- opts = opts.has_key?(:params) ? opts : opts.merge(:params => {})
81
- opts[:params] = opts[:params].merge(:auth_token => Hoptoad.token)
82
- arguments << opts
83
- arguments
84
- end
85
- end
86
- base.site_format = '%s'
87
- super
88
- end
12
+
13
+ def account
14
+ "http://#{@account}.hoptoadapp.com"
89
15
  end
90
-
91
- # Find errors
92
- #
93
- # Errors are paginated. You get 25 at a time.
94
- # Hoptoad::Error.find(:all)
95
- # Hoptoad::Error.find(:all, :params => { :page => 2 })
96
- #
97
- # find individual error by ID
98
- # Hoptoad::Error.find(44)
99
- #
100
- class Error < Base
101
-
102
- # find using token
103
- def self.find(*arguments)
104
- raise HoptoadError.new('API Token cannot be nil') if Hoptoad.token.blank?
105
- raise HoptoadError.new('Account cannot be nil') if Hoptoad.account.blank?
106
-
107
- arguments = append_auth_token_to_params(*arguments)
108
- super(*arguments)
109
- end
110
-
111
- # produces the url on hoptoad's site
112
- def url
113
- path = Error.site.to_s
114
- path << collection_path.gsub!(/^\//,'')
115
- path.gsub!('.xml','')
116
- path << '/'
117
- path << self.id.to_s
118
- end
119
-
16
+
17
+ def auth_token=(token)
18
+ @auth_token = token
19
+ end
20
+
21
+ def auth_token
22
+ @auth_token
120
23
  end
121
-
122
24
  end
25
+
26
+ require 'hoptoad-api/version'
27
+ require 'hoptoad-api/core_extensions'
28
+ require 'hoptoad-api/client'
@@ -0,0 +1,95 @@
1
+ # Ruby lib for working with the Hoptoad API's XML interface.
2
+ # The first thing you need to set is the account name. This is the same
3
+ # as the web address for your account.
4
+ #
5
+ # Hoptoad.account = 'myaccount'
6
+ #
7
+ # Then, you should set the authentication token.
8
+ #
9
+ # Hoptoad.token = 'abcdefg'
10
+ #
11
+ # If no token or authentication info is given, a HoptoadError exception will be raised.
12
+ #
13
+ # For more details, check out the hoptoad docs at http://hoptoadapp.com/pages/api.
14
+ #
15
+ # Find errors
16
+ #
17
+ # Errors are paginated. You get 25 at a time.
18
+ # errors = Hoptoad::Error.find(:all)
19
+ #
20
+ # with pagination:
21
+ # Hoptoad::Error.find(:all, :params => { :page => 2 })
22
+ #
23
+ # find individual error by ID
24
+ # Hoptoad::Error.find(44)
25
+
26
+ module Hoptoad
27
+ class Error
28
+ include HTTParty
29
+ format :xml
30
+
31
+ # cattr_accessor :collection_path, :individual_collection_path
32
+
33
+ @@collection_path = '/errors.xml'
34
+ @@individual_collection_path = '/errors/'
35
+
36
+ # def initialize
37
+ # self.class.base_uri "http://#{account}.hoptoadapp.com"
38
+ # self.class.default_params :auth_token => token
39
+ #
40
+ #
41
+ # end
42
+
43
+ def self.collection_path
44
+ @@collection_path
45
+ end
46
+
47
+ def self.find(*args)
48
+ base_uri Hoptoad.account
49
+ default_params :auth_token => Hoptoad.auth_token
50
+
51
+ check_configuration
52
+
53
+ results = case args.first
54
+ when Fixnum
55
+ find_individual(args)
56
+ when :all
57
+ find_all(args)
58
+ else
59
+ raise HoptoadError.new('Invalid argument')
60
+ end
61
+
62
+ # puts results.inspect
63
+
64
+ raise HoptoadError.new('No results found.') if results.nil?
65
+ raise HoptoadError.new(results.errors.error) if results.errors
66
+
67
+ results.group || results.groups
68
+ end
69
+
70
+ def self.update(error, options)
71
+ check_configuration
72
+
73
+ self.class.put("#{@collection_path}", options)
74
+ end
75
+
76
+ private
77
+
78
+ def self.check_configuration
79
+ raise HoptoadError.new('API Token cannot be nil') if default_options.nil? || default_options[:default_params].nil? || !default_options[:default_params].has_key?(:auth_token)
80
+ raise HoptoadError.new('Account cannot be nil') unless default_options.has_key?(:base_uri)
81
+ end
82
+
83
+ def self.find_all(args)
84
+ options = args.extract_options!
85
+ Hashie::Mash.new(get("#{@@collection_path}", { :query => options }))
86
+ end
87
+
88
+ def self.find_individual(args)
89
+ id = args.shift
90
+ options = args.extract_options!
91
+ Hashie::Mash.new(get("#{@@individual_collection_path}#{id}.xml", { :query => options }))
92
+ end
93
+
94
+ end
95
+ end
@@ -0,0 +1,21 @@
1
+ class Array
2
+ def extract_options!
3
+ last.is_a?(::Hash) ? pop : {}
4
+ end
5
+ end
6
+
7
+ class Hash
8
+
9
+ # Converts all of the keys to strings, optionally formatting key name
10
+ def rubyify_keys!
11
+ keys.each{|k|
12
+ v = delete(k)
13
+ new_key = k.to_s.underscore
14
+ self[new_key] = v
15
+ v.rubyify_keys! if v.is_a?(Hash)
16
+ v.each{|p| p.rubyify_keys! if p.is_a?(Hash)} if v.is_a?(Array)
17
+ }
18
+ self
19
+ end
20
+
21
+ end
@@ -0,0 +1,3 @@
1
+ module Hoptoad
2
+ VERSION = '2.0.0'
3
+ end
@@ -0,0 +1,545 @@
1
+ HTTP/1.1 200 OK
2
+
3
+ <?xml version="1.0" encoding="UTF-8"?>
4
+ <groups type="array">
5
+ <group>
6
+ <action>index</action>
7
+ <controller>shades</controller>
8
+ <created-at type="datetime">2010-04-16T21:45:30Z</created-at>
9
+ <error-class>ActiveRecord::StatementInvalid</error-class>
10
+ <error-message>ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'otype' in 'order clause': SELECT shades.id, shades.member_id, shades.equity_id, shades.etype, shades.shade_type, shade_features.shade_id, shade_features.price_in_cents, shade_features.tra</error-message>
11
+ <file>/data/myapp/releases/20100416200739/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb</file>
12
+ <id type="integer">1696170</id>
13
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
14
+ <line-number type="integer">219</line-number>
15
+ <most-recent-notice-at type="datetime">2010-04-24T02:27:11Z</most-recent-notice-at>
16
+ <notice-hash>71ce436b9c091d468daf479eeee4b216</notice-hash>
17
+ <notices-count type="integer">455</notices-count>
18
+ <project-id type="integer">248</project-id>
19
+ <rails-env>production</rails-env>
20
+ <resolved type="boolean">false</resolved>
21
+ <updated-at type="datetime">2010-04-24T02:27:11Z</updated-at>
22
+ </group>
23
+ <group>
24
+ <action>index</action>
25
+ <controller>member_ballots</controller>
26
+ <created-at type="datetime">2010-04-16T20:19:25Z</created-at>
27
+ <error-class>ActiveRecord::StatementInvalid</error-class>
28
+ <error-message>ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'group_count' in 'order clause': SELECT `members`.* FROM `members` right join member_ballots on member_ballots.member_id = members.id WHERE (member_ballots.posting_id = 4703) ORDER BY `group_cou</error-message>
29
+ <file>/data/myapp/releases/20100416200739/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb</file>
30
+ <id type="integer">1695879</id>
31
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
32
+ <line-number type="integer">219</line-number>
33
+ <most-recent-notice-at type="datetime">2010-04-24T02:25:41Z</most-recent-notice-at>
34
+ <notice-hash>8e80ee8d42a6922f28d936eb25b1203e</notice-hash>
35
+ <notices-count type="integer">895</notices-count>
36
+ <project-id type="integer">248</project-id>
37
+ <rails-env>production</rails-env>
38
+ <resolved type="boolean">false</resolved>
39
+ <updated-at type="datetime">2010-04-24T02:25:41Z</updated-at>
40
+ </group>
41
+ <group>
42
+ <action>index</action>
43
+ <controller>shade_notes</controller>
44
+ <created-at type="datetime">2010-04-17T02:21:58Z</created-at>
45
+ <error-class>NoMethodError</error-class>
46
+ <error-message>NoMethodError: undefined method `timezone_adjusted_shaded_at' for nil:NilClass</error-message>
47
+ <file>/data/myapp/releases/20100416200739/app/helpers/application_helper.rb</file>
48
+ <id type="integer">1696798</id>
49
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
50
+ <line-number type="integer">48</line-number>
51
+ <most-recent-notice-at type="datetime">2010-04-24T02:20:32Z</most-recent-notice-at>
52
+ <notice-hash>5802da99c915c425c22799e68a208144</notice-hash>
53
+ <notices-count type="integer">36</notices-count>
54
+ <project-id type="integer">248</project-id>
55
+ <rails-env>production</rails-env>
56
+ <resolved type="boolean">false</resolved>
57
+ <updated-at type="datetime">2010-04-24T02:20:32Z</updated-at>
58
+ </group>
59
+ <group>
60
+ <action>show</action>
61
+ <controller>company</controller>
62
+ <created-at type="datetime">2010-04-16T21:54:58Z</created-at>
63
+ <error-class>NoMethodError</error-class>
64
+ <error-message>NoMethodError: undefined method `name' for nil:NilClass</error-message>
65
+ <file>/data/myapp/releases/20100416200739/app/views/company/show.html.erb</file>
66
+ <id type="integer">1696205</id>
67
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
68
+ <line-number type="integer">23</line-number>
69
+ <most-recent-notice-at type="datetime">2010-04-24T00:07:15Z</most-recent-notice-at>
70
+ <notice-hash>7544a3924645e8dab5c1a2c1151bc5b2</notice-hash>
71
+ <notices-count type="integer">188</notices-count>
72
+ <project-id type="integer">248</project-id>
73
+ <rails-env>production</rails-env>
74
+ <resolved type="boolean">false</resolved>
75
+ <updated-at type="datetime">2010-04-24T00:04:57Z</updated-at>
76
+ </group>
77
+ <group>
78
+ <action>show</action>
79
+ <controller>company</controller>
80
+ <created-at type="datetime">2010-04-17T02:33:36Z</created-at>
81
+ <error-class>NoMethodError</error-class>
82
+ <error-message>NoMethodError: undefined method `name' for nil:NilClass</error-message>
83
+ <file>/data/myapp/releases/20100416200739/app/views/company/show.html.erb</file>
84
+ <id type="integer">1696825</id>
85
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
86
+ <line-number type="integer">46</line-number>
87
+ <most-recent-notice-at type="datetime">2010-04-24T00:05:35Z</most-recent-notice-at>
88
+ <notice-hash>c03c3f98fbfdb69fb35ec297b49d11ad</notice-hash>
89
+ <notices-count type="integer">34</notices-count>
90
+ <project-id type="integer">248</project-id>
91
+ <rails-env>production</rails-env>
92
+ <resolved type="boolean">false</resolved>
93
+ <updated-at type="datetime">2010-04-24T00:05:35Z</updated-at>
94
+ </group>
95
+ <group>
96
+ <action>create</action>
97
+ <controller>shade_notes</controller>
98
+ <created-at type="datetime">2010-04-22T19:22:22Z</created-at>
99
+ <error-class>ArgumentError</error-class>
100
+ <error-message>ArgumentError: Invalid currency amount</error-message>
101
+ <file>/data/myapp/releases/20100416200739/vendor/gems/money-2.1.5/lib/money/core_extensions.rb</file>
102
+ <id type="integer">1723207</id>
103
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
104
+ <line-number type="integer">116</line-number>
105
+ <most-recent-notice-at type="datetime">2010-04-23T23:13:26Z</most-recent-notice-at>
106
+ <notice-hash>e8590fb8e52d9030727f96b83727141a</notice-hash>
107
+ <notices-count type="integer">2</notices-count>
108
+ <project-id type="integer">248</project-id>
109
+ <rails-env>production</rails-env>
110
+ <resolved type="boolean">false</resolved>
111
+ <updated-at type="datetime">2010-04-23T23:13:26Z</updated-at>
112
+ </group>
113
+ <group>
114
+ <action>index</action>
115
+ <controller>topics</controller>
116
+ <created-at type="datetime">2010-04-17T18:35:21Z</created-at>
117
+ <error-class>NoMethodError</error-class>
118
+ <error-message>NoMethodError: undefined method `name' for false:FalseClass</error-message>
119
+ <file>/data/myapp/releases/20100416200739/app/controllers/topics_controller.rb</file>
120
+ <id type="integer">1698293</id>
121
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
122
+ <line-number type="integer">20</line-number>
123
+ <most-recent-notice-at type="datetime">2010-04-23T22:40:43Z</most-recent-notice-at>
124
+ <notice-hash>8f12dc095d158b4ed87576587a20fc2a</notice-hash>
125
+ <notices-count type="integer">11</notices-count>
126
+ <project-id type="integer">248</project-id>
127
+ <rails-env>production</rails-env>
128
+ <resolved type="boolean">false</resolved>
129
+ <updated-at type="datetime">2010-04-23T22:40:43Z</updated-at>
130
+ </group>
131
+ <group>
132
+ <action>display_name</action>
133
+ <controller>settings</controller>
134
+ <created-at type="datetime">2010-04-23T19:02:51Z</created-at>
135
+ <error-class>AASM::InvalidTransition</error-class>
136
+ <error-message>AASM::InvalidTransition: Event 'publish' cannot transition from 'published'</error-message>
137
+ <file>/data/myapp/releases/20100416200739/vendor/gems/gvaughn-aasm-2.0.4/lib/event.rb</file>
138
+ <id type="integer">1728364</id>
139
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
140
+ <line-number type="integer">17</line-number>
141
+ <most-recent-notice-at type="datetime">2010-04-23T19:03:14Z</most-recent-notice-at>
142
+ <notice-hash>a001037e72d28cb4fe0beca2c065f368</notice-hash>
143
+ <notices-count type="integer">2</notices-count>
144
+ <project-id type="integer">248</project-id>
145
+ <rails-env>production</rails-env>
146
+ <resolved type="boolean">false</resolved>
147
+ <updated-at type="datetime">2010-04-23T19:02:52Z</updated-at>
148
+ </group>
149
+ <group>
150
+ <action>index</action>
151
+ <controller>topics</controller>
152
+ <created-at type="datetime">2010-04-17T01:44:56Z</created-at>
153
+ <error-class>RuntimeError</error-class>
154
+ <error-message>RuntimeError: "NilClass"</error-message>
155
+ <file>/data/myapp/releases/20100416200739/app/helpers/tk_urls_helper.rb</file>
156
+ <id type="integer">1696722</id>
157
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
158
+ <line-number type="integer">74</line-number>
159
+ <most-recent-notice-at type="datetime">2010-04-23T18:00:25Z</most-recent-notice-at>
160
+ <notice-hash>8ef369d7bcdd984101e321c3b83a5696</notice-hash>
161
+ <notices-count type="integer">51</notices-count>
162
+ <project-id type="integer">248</project-id>
163
+ <rails-env>production</rails-env>
164
+ <resolved type="boolean">false</resolved>
165
+ <updated-at type="datetime">2010-04-23T18:00:25Z</updated-at>
166
+ </group>
167
+ <group>
168
+ <action>update</action>
169
+ <controller>admin/moderate</controller>
170
+ <created-at type="datetime">2010-04-19T14:46:26Z</created-at>
171
+ <error-class>ActiveRecord::StaleObjectError</error-class>
172
+ <error-message>ActiveRecord::StaleObjectError: Attempted to update a stale object</error-message>
173
+ <file>/data/myapp/releases/20100416200739/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb</file>
174
+ <id type="integer">1703705</id>
175
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
176
+ <line-number type="integer">89</line-number>
177
+ <most-recent-notice-at type="datetime">2010-04-23T17:57:22Z</most-recent-notice-at>
178
+ <notice-hash>05eea39bd5b059fe99b877ad87b99729</notice-hash>
179
+ <notices-count type="integer">5</notices-count>
180
+ <project-id type="integer">248</project-id>
181
+ <rails-env>production</rails-env>
182
+ <resolved type="boolean">false</resolved>
183
+ <updated-at type="datetime">2010-04-23T17:57:22Z</updated-at>
184
+ </group>
185
+ <group>
186
+ <action>index</action>
187
+ <controller>welcome</controller>
188
+ <created-at type="datetime">2010-04-16T20:49:36Z</created-at>
189
+ <error-class>ActionView::MissingTemplate</error-class>
190
+ <error-message>ActionView::MissingTemplate: Missing template welcome/_what_we_shade.erb in view path app/views</error-message>
191
+ <file>/data/myapp/releases/20100416200739/vendor/rails/actionpack/lib/action_view/paths.rb</file>
192
+ <id type="integer">1695982</id>
193
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
194
+ <line-number type="integer">66</line-number>
195
+ <most-recent-notice-at type="datetime">2010-04-23T17:44:24Z</most-recent-notice-at>
196
+ <notice-hash>b937b06951264480a538c1a0727066ae</notice-hash>
197
+ <notices-count type="integer">24</notices-count>
198
+ <project-id type="integer">248</project-id>
199
+ <rails-env>production</rails-env>
200
+ <resolved type="boolean">false</resolved>
201
+ <updated-at type="datetime">2010-04-23T17:44:24Z</updated-at>
202
+ </group>
203
+ <group>
204
+ <action>edit_follows</action>
205
+ <controller>dashboard</controller>
206
+ <created-at type="datetime">2010-04-20T16:26:41Z</created-at>
207
+ <error-class>NoMethodError</error-class>
208
+ <error-message>NoMethodError: undefined method `each' for nil:NilClass</error-message>
209
+ <file>/data/myapp/releases/20100416200739/app/controllers/dashboard_controller.rb</file>
210
+ <id type="integer">1711098</id>
211
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
212
+ <line-number type="integer">49</line-number>
213
+ <most-recent-notice-at type="datetime">2010-04-23T17:40:06Z</most-recent-notice-at>
214
+ <notice-hash>6d9f6fdd171263da486f92f34ad314ee</notice-hash>
215
+ <notices-count type="integer">7</notices-count>
216
+ <project-id type="integer">248</project-id>
217
+ <rails-env>production</rails-env>
218
+ <resolved type="boolean">false</resolved>
219
+ <updated-at type="datetime">2010-04-23T17:40:06Z</updated-at>
220
+ </group>
221
+ <group>
222
+ <action></action>
223
+ <controller></controller>
224
+ <created-at type="datetime">2010-04-19T23:17:54Z</created-at>
225
+ <error-class>ActionController::MethodNotAllowed</error-class>
226
+ <error-message>ActionController::MethodNotAllowed: Only get, put, and delete requests are allowed.</error-message>
227
+ <file>/data/myapp/releases/20100416200739/vendor/rails/actionpack/lib/action_controller/routing/recognition_optimisation.rb</file>
228
+ <id type="integer">1706890</id>
229
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
230
+ <line-number type="integer">64</line-number>
231
+ <most-recent-notice-at type="datetime">2010-04-23T15:51:53Z</most-recent-notice-at>
232
+ <notice-hash>697a16d98f9cd4dfc7e3390153f2534c</notice-hash>
233
+ <notices-count type="integer">5</notices-count>
234
+ <project-id type="integer">248</project-id>
235
+ <rails-env>production</rails-env>
236
+ <resolved type="boolean">false</resolved>
237
+ <updated-at type="datetime">2010-04-23T15:51:53Z</updated-at>
238
+ </group>
239
+ <group>
240
+ <action>show</action>
241
+ <controller>forums</controller>
242
+ <created-at type="datetime">2010-04-18T20:40:30Z</created-at>
243
+ <error-class>RuntimeError</error-class>
244
+ <error-message>RuntimeError: "NilClass"</error-message>
245
+ <file>/data/myapp/releases/20100416200739/app/helpers/tk_urls_helper.rb</file>
246
+ <id type="integer">1700827</id>
247
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
248
+ <line-number type="integer">74</line-number>
249
+ <most-recent-notice-at type="datetime">2010-04-23T13:25:09Z</most-recent-notice-at>
250
+ <notice-hash>8558b4ce7124c6f9a213ba361ed1a5d3</notice-hash>
251
+ <notices-count type="integer">12</notices-count>
252
+ <project-id type="integer">248</project-id>
253
+ <rails-env>production</rails-env>
254
+ <resolved type="boolean">false</resolved>
255
+ <updated-at type="datetime">2010-04-23T13:25:09Z</updated-at>
256
+ </group>
257
+ <group>
258
+ <action>shades_only</action>
259
+ <controller>trading_activity</controller>
260
+ <created-at type="datetime">2010-04-18T06:52:59Z</created-at>
261
+ <error-class>ActionView::MissingTemplate</error-class>
262
+ <error-message>ActionView::MissingTemplate: Missing template trading_activity/shades_only.erb in view path app/views</error-message>
263
+ <file>/data/myapp/releases/20100416200739/vendor/rails/actionpack/lib/action_view/paths.rb</file>
264
+ <id type="integer">1699397</id>
265
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
266
+ <line-number type="integer">66</line-number>
267
+ <most-recent-notice-at type="datetime">2010-04-23T13:03:08Z</most-recent-notice-at>
268
+ <notice-hash>7260ebbbb0102c25cf35e61c29ab433e</notice-hash>
269
+ <notices-count type="integer">25</notices-count>
270
+ <project-id type="integer">248</project-id>
271
+ <rails-env>production</rails-env>
272
+ <resolved type="boolean">false</resolved>
273
+ <updated-at type="datetime">2010-04-23T13:03:08Z</updated-at>
274
+ </group>
275
+ <group>
276
+ <action>choose_name</action>
277
+ <controller>registration</controller>
278
+ <created-at type="datetime">2010-04-19T02:04:23Z</created-at>
279
+ <error-class>AASM::InvalidTransition</error-class>
280
+ <error-message>AASM::InvalidTransition: Event 'publish' cannot transition from 'published'</error-message>
281
+ <file>/data/myapp/releases/20100416200739/vendor/gems/gvaughn-aasm-2.0.4/lib/event.rb</file>
282
+ <id type="integer">1701377</id>
283
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
284
+ <line-number type="integer">17</line-number>
285
+ <most-recent-notice-at type="datetime">2010-04-23T02:51:25Z</most-recent-notice-at>
286
+ <notice-hash>850b802e136b07e289d84fddd8d7fca9</notice-hash>
287
+ <notices-count type="integer">11</notices-count>
288
+ <project-id type="integer">248</project-id>
289
+ <rails-env>production</rails-env>
290
+ <resolved type="boolean">false</resolved>
291
+ <updated-at type="datetime">2010-04-23T02:51:19Z</updated-at>
292
+ </group>
293
+ <group>
294
+ <action>show</action>
295
+ <controller>blogs</controller>
296
+ <created-at type="datetime">2010-04-17T03:14:21Z</created-at>
297
+ <error-class>ArgumentError</error-class>
298
+ <error-message>ArgumentError: argument is an invalid Member object</error-message>
299
+ <file>/data/myapp/releases/20100416200739/app/models/comment.rb</file>
300
+ <id type="integer">1696899</id>
301
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
302
+ <line-number type="integer">68</line-number>
303
+ <most-recent-notice-at type="datetime">2010-04-22T20:32:57Z</most-recent-notice-at>
304
+ <notice-hash>c321d001a83fe2df9a0c38cce734bb4b</notice-hash>
305
+ <notices-count type="integer">32</notices-count>
306
+ <project-id type="integer">248</project-id>
307
+ <rails-env>production</rails-env>
308
+ <resolved type="boolean">false</resolved>
309
+ <updated-at type="datetime">2010-04-22T20:32:57Z</updated-at>
310
+ </group>
311
+ <group>
312
+ <action>index</action>
313
+ <controller>members</controller>
314
+ <created-at type="datetime">2010-04-22T13:45:59Z</created-at>
315
+ <error-class>NoMethodError</error-class>
316
+ <error-message>NoMethodError: undefined method `pluralize' for nil:NilClass</error-message>
317
+ <file>/data/myapp/releases/20100416200739/lib/standalone_link_renderer.rb</file>
318
+ <id type="integer">1721478</id>
319
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
320
+ <line-number type="integer">23</line-number>
321
+ <most-recent-notice-at type="datetime">2010-04-22T13:45:59Z</most-recent-notice-at>
322
+ <notice-hash>40dceaf757049b758327f81e8f9cef9e</notice-hash>
323
+ <notices-count type="integer">1</notices-count>
324
+ <project-id type="integer">248</project-id>
325
+ <rails-env>production</rails-env>
326
+ <resolved type="boolean">false</resolved>
327
+ <updated-at type="datetime">2010-04-22T13:45:59Z</updated-at>
328
+ </group>
329
+ <group>
330
+ <action>index</action>
331
+ <controller>members</controller>
332
+ <created-at type="datetime">2010-04-17T20:14:27Z</created-at>
333
+ <error-class>NoMethodError</error-class>
334
+ <error-message>NoMethodError: undefined method `field_specs' for nil:NilClass</error-message>
335
+ <file>/data/myapp/releases/20100416200739/lib/filter_helper.rb</file>
336
+ <id type="integer">1698489</id>
337
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
338
+ <line-number type="integer">116</line-number>
339
+ <most-recent-notice-at type="datetime">2010-04-22T11:30:02Z</most-recent-notice-at>
340
+ <notice-hash>dee5055845a1f738a9c86f3fd70bb19b</notice-hash>
341
+ <notices-count type="integer">2</notices-count>
342
+ <project-id type="integer">248</project-id>
343
+ <rails-env>production</rails-env>
344
+ <resolved type="boolean">false</resolved>
345
+ <updated-at type="datetime">2010-04-22T11:30:02Z</updated-at>
346
+ </group>
347
+ <group>
348
+ <action>followers</action>
349
+ <controller>subscriptions</controller>
350
+ <created-at type="datetime">2010-04-19T22:20:59Z</created-at>
351
+ <error-class>NameError</error-class>
352
+ <error-message>NameError: uninitialized constant SubscriptionsController</error-message>
353
+ <file>/data/myapp/releases/20100416200739/vendor/rails/activesupport/lib/active_support/dependencies.rb</file>
354
+ <id type="integer">1706545</id>
355
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
356
+ <line-number type="integer">443</line-number>
357
+ <most-recent-notice-at type="datetime">2010-04-22T08:28:09Z</most-recent-notice-at>
358
+ <notice-hash>32992aac8be6024e6f5783c12e7b6fac</notice-hash>
359
+ <notices-count type="integer">13</notices-count>
360
+ <project-id type="integer">248</project-id>
361
+ <rails-env>production</rails-env>
362
+ <resolved type="boolean">false</resolved>
363
+ <updated-at type="datetime">2010-04-22T08:28:09Z</updated-at>
364
+ </group>
365
+ <group>
366
+ <action>index</action>
367
+ <controller>topics</controller>
368
+ <created-at type="datetime">2010-04-17T02:59:11Z</created-at>
369
+ <error-class>NoMethodError</error-class>
370
+ <error-message>NoMethodError: undefined method `slug' for nil:NilClass</error-message>
371
+ <file>/data/myapp/releases/20100416200739/app/controllers/topics_controller.rb</file>
372
+ <id type="integer">1696865</id>
373
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
374
+ <line-number type="integer">46</line-number>
375
+ <most-recent-notice-at type="datetime">2010-04-22T05:37:29Z</most-recent-notice-at>
376
+ <notice-hash>06b34874dd1edf6b90e223702f26a6ec</notice-hash>
377
+ <notices-count type="integer">72</notices-count>
378
+ <project-id type="integer">248</project-id>
379
+ <rails-env>production</rails-env>
380
+ <resolved type="boolean">false</resolved>
381
+ <updated-at type="datetime">2010-04-22T05:25:05Z</updated-at>
382
+ </group>
383
+ <group>
384
+ <action>positions</action>
385
+ <controller>dashboard</controller>
386
+ <created-at type="datetime">2010-04-21T16:07:14Z</created-at>
387
+ <error-class>NoMethodError</error-class>
388
+ <error-message>NoMethodError: undefined method `headline' for nil:NilClass</error-message>
389
+ <file>/data/myapp/releases/20100416200739/app/views/dashboard/_positions_table.html.erb</file>
390
+ <id type="integer">1716777</id>
391
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
392
+ <line-number type="integer">3</line-number>
393
+ <most-recent-notice-at type="datetime">2010-04-21T16:07:14Z</most-recent-notice-at>
394
+ <notice-hash>e4f7d77be6a6cc86924bf66023a8c37f</notice-hash>
395
+ <notices-count type="integer">1</notices-count>
396
+ <project-id type="integer">248</project-id>
397
+ <rails-env>production</rails-env>
398
+ <resolved type="boolean">false</resolved>
399
+ <updated-at type="datetime">2010-04-21T16:07:14Z</updated-at>
400
+ </group>
401
+ <group>
402
+ <action>index</action>
403
+ <controller>forum_posts</controller>
404
+ <created-at type="datetime">2010-04-19T16:15:33Z</created-at>
405
+ <error-class>WillPaginate::InvalidPage</error-class>
406
+ <error-message>WillPaginate::InvalidPage: "http://www.laborpascoperu.org.pe/envio11.txt?" given as value, which translates to '0' as page number</error-message>
407
+ <file>/data/myapp/releases/20100416200739/vendor/gems/will_paginate-2.2.2/lib/will_paginate/collection.rb</file>
408
+ <id type="integer">1704224</id>
409
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
410
+ <line-number type="integer">51</line-number>
411
+ <most-recent-notice-at type="datetime">2010-04-21T15:04:26Z</most-recent-notice-at>
412
+ <notice-hash>bc870c86d74a7b43ee1ecffb154aad9c</notice-hash>
413
+ <notices-count type="integer">2</notices-count>
414
+ <project-id type="integer">248</project-id>
415
+ <rails-env>production</rails-env>
416
+ <resolved type="boolean">false</resolved>
417
+ <updated-at type="datetime">2010-04-21T15:04:26Z</updated-at>
418
+ </group>
419
+ <group>
420
+ <action>update</action>
421
+ <controller>admin/moderate</controller>
422
+ <created-at type="datetime">2010-04-17T01:59:37Z</created-at>
423
+ <error-class>AASM::InvalidTransition</error-class>
424
+ <error-message>AASM::InvalidTransition: Event 'approve' cannot transition from 'removed'</error-message>
425
+ <file>/data/myapp/releases/20100416200739/vendor/gems/gvaughn-aasm-2.0.4/lib/event.rb</file>
426
+ <id type="integer">1696758</id>
427
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
428
+ <line-number type="integer">17</line-number>
429
+ <most-recent-notice-at type="datetime">2010-04-21T01:45:26Z</most-recent-notice-at>
430
+ <notice-hash>1e17db05793e2bb697aabb926c39f0b3</notice-hash>
431
+ <notices-count type="integer">4</notices-count>
432
+ <project-id type="integer">248</project-id>
433
+ <rails-env>production</rails-env>
434
+ <resolved type="boolean">false</resolved>
435
+ <updated-at type="datetime">2010-04-21T01:45:26Z</updated-at>
436
+ </group>
437
+ <group>
438
+ <action>show</action>
439
+ <controller>tags</controller>
440
+ <created-at type="datetime">2010-04-20T08:14:34Z</created-at>
441
+ <error-class>NoMethodError</error-class>
442
+ <error-message>NoMethodError: undefined method `shaded_at' for nil:NilClass</error-message>
443
+ <file>/data/myapp/releases/20100416200739/app/views/shade_notes/_shade_note.html.erb</file>
444
+ <id type="integer">1708892</id>
445
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
446
+ <line-number type="integer">20</line-number>
447
+ <most-recent-notice-at type="datetime">2010-04-20T08:14:34Z</most-recent-notice-at>
448
+ <notice-hash>f404dcac7ce0e7c06c40cc9b7a07af3a</notice-hash>
449
+ <notices-count type="integer">1</notices-count>
450
+ <project-id type="integer">248</project-id>
451
+ <rails-env>production</rails-env>
452
+ <resolved type="boolean">false</resolved>
453
+ <updated-at type="datetime">2010-04-20T08:14:34Z</updated-at>
454
+ </group>
455
+ <group>
456
+ <action>index</action>
457
+ <controller>subscriptions</controller>
458
+ <created-at type="datetime">2010-04-19T20:56:46Z</created-at>
459
+ <error-class>NameError</error-class>
460
+ <error-message>NameError: uninitialized constant SubscriptionsController</error-message>
461
+ <file>/data/myapp/releases/20100416200739/vendor/rails/activesupport/lib/active_support/dependencies.rb</file>
462
+ <id type="integer">1705954</id>
463
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
464
+ <line-number type="integer">443</line-number>
465
+ <most-recent-notice-at type="datetime">2010-04-19T23:31:54Z</most-recent-notice-at>
466
+ <notice-hash>b6a802f25d9de887fd7ec24e735494fe</notice-hash>
467
+ <notices-count type="integer">9</notices-count>
468
+ <project-id type="integer">248</project-id>
469
+ <rails-env>production</rails-env>
470
+ <resolved type="boolean">false</resolved>
471
+ <updated-at type="datetime">2010-04-19T23:31:54Z</updated-at>
472
+ </group>
473
+ <group>
474
+ <action>unfollow</action>
475
+ <controller>shade_notes</controller>
476
+ <created-at type="datetime">2010-04-19T20:39:30Z</created-at>
477
+ <error-class>ActionView::MissingTemplate</error-class>
478
+ <error-message>ActionView::MissingTemplate: Missing template shade_notes/unfollow.erb in view path app/views</error-message>
479
+ <file>/data/myapp/releases/20100416200739/vendor/rails/actionpack/lib/action_view/paths.rb</file>
480
+ <id type="integer">1705850</id>
481
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
482
+ <line-number type="integer">66</line-number>
483
+ <most-recent-notice-at type="datetime">2010-04-19T20:39:30Z</most-recent-notice-at>
484
+ <notice-hash>b94660cab19f29057c4fcd94c3c5c48b</notice-hash>
485
+ <notices-count type="integer">1</notices-count>
486
+ <project-id type="integer">248</project-id>
487
+ <rails-env>production</rails-env>
488
+ <resolved type="boolean">false</resolved>
489
+ <updated-at type="datetime">2010-04-19T20:39:30Z</updated-at>
490
+ </group>
491
+ <group>
492
+ <action>show</action>
493
+ <controller>tags</controller>
494
+ <created-at type="datetime">2010-04-19T03:59:56Z</created-at>
495
+ <error-class>NoMethodError</error-class>
496
+ <error-message>NoMethodError: undefined method `equity' for nil:NilClass</error-message>
497
+ <file>/data/myapp/releases/20100416200739/app/views/shade_notes/_shade_note.html.erb</file>
498
+ <id type="integer">1701733</id>
499
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
500
+ <line-number type="integer">12</line-number>
501
+ <most-recent-notice-at type="datetime">2010-04-19T10:45:52Z</most-recent-notice-at>
502
+ <notice-hash>82fe9e4b12b7dbce23ae3f1936ecb5d7</notice-hash>
503
+ <notices-count type="integer">2</notices-count>
504
+ <project-id type="integer">248</project-id>
505
+ <rails-env>production</rails-env>
506
+ <resolved type="boolean">false</resolved>
507
+ <updated-at type="datetime">2010-04-19T10:45:52Z</updated-at>
508
+ </group>
509
+ <group>
510
+ <action>display_name</action>
511
+ <controller>settings</controller>
512
+ <created-at type="datetime">2010-04-18T20:54:44Z</created-at>
513
+ <error-class>ActiveRecord::StaleObjectError</error-class>
514
+ <error-message>ActiveRecord::StaleObjectError: Attempted to update a stale object</error-message>
515
+ <file>/data/myapp/releases/20100416200739/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb</file>
516
+ <id type="integer">1700843</id>
517
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
518
+ <line-number type="integer">89</line-number>
519
+ <most-recent-notice-at type="datetime">2010-04-18T20:54:44Z</most-recent-notice-at>
520
+ <notice-hash>43175a902ce471d659b1c7dde0d1737f</notice-hash>
521
+ <notices-count type="integer">1</notices-count>
522
+ <project-id type="integer">248</project-id>
523
+ <rails-env>production</rails-env>
524
+ <resolved type="boolean">false</resolved>
525
+ <updated-at type="datetime">2010-04-18T20:54:44Z</updated-at>
526
+ </group>
527
+ <group>
528
+ <action>display_name</action>
529
+ <controller>settings</controller>
530
+ <created-at type="datetime">2010-04-18T20:54:44Z</created-at>
531
+ <error-class>ActiveRecord::StaleObjectError</error-class>
532
+ <error-message>ActiveRecord::StaleObjectError: Attempted to update a stale object</error-message>
533
+ <file>/data/myapp/releases/20100416200739/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb</file>
534
+ <id type="integer">1700843</id>
535
+ <lighthouse-ticket-id type="integer" nil="true"></lighthouse-ticket-id>
536
+ <line-number type="integer">89</line-number>
537
+ <most-recent-notice-at type="datetime">2010-04-18T20:54:44Z</most-recent-notice-at>
538
+ <notice-hash>43175a902ce471d659b1c7dde0d1737f</notice-hash>
539
+ <notices-count type="integer">1</notices-count>
540
+ <project-id type="integer">248</project-id>
541
+ <rails-env>production</rails-env>
542
+ <resolved type="boolean">false</resolved>
543
+ <updated-at type="datetime">2010-04-18T20:54:44Z</updated-at>
544
+ </group>
545
+ </groups>