api_resource 0.4.1 → 0.4.2

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.
Files changed (116) hide show
  1. data/Gemfile +37 -0
  2. data/Gemfile.lock +190 -0
  3. data/Guardfile +27 -0
  4. data/Rakefile +49 -0
  5. data/VERSION +1 -0
  6. data/api_resource.gemspec +111 -0
  7. data/coverage/assets/0.5.3/app.js +88 -0
  8. data/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
  9. data/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
  10. data/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
  11. data/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
  12. data/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
  13. data/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
  14. data/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
  15. data/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
  16. data/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
  17. data/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
  18. data/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
  19. data/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
  20. data/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
  21. data/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
  22. data/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
  23. data/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
  24. data/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
  25. data/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
  26. data/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
  27. data/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
  28. data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +363 -0
  29. data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  30. data/coverage/assets/0.5.3/favicon_green.png +0 -0
  31. data/coverage/assets/0.5.3/favicon_red.png +0 -0
  32. data/coverage/assets/0.5.3/favicon_yellow.png +0 -0
  33. data/coverage/assets/0.5.3/highlight.css +129 -0
  34. data/coverage/assets/0.5.3/highlight.pack.js +1 -0
  35. data/coverage/assets/0.5.3/jquery-1.6.2.min.js +18 -0
  36. data/coverage/assets/0.5.3/jquery.dataTables.min.js +152 -0
  37. data/coverage/assets/0.5.3/jquery.timeago.js +141 -0
  38. data/coverage/assets/0.5.3/jquery.url.js +174 -0
  39. data/coverage/assets/0.5.3/loading.gif +0 -0
  40. data/coverage/assets/0.5.3/magnify.png +0 -0
  41. data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  42. data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  43. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  44. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  45. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  46. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  47. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  48. data/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  49. data/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
  50. data/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  51. data/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
  52. data/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
  53. data/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  54. data/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  55. data/coverage/assets/0.5.3/stylesheet.css +383 -0
  56. data/coverage/index.html +3573 -0
  57. data/lib/api_resource.rb +130 -0
  58. data/lib/api_resource/association_activation.rb +19 -0
  59. data/lib/api_resource/associations.rb +218 -0
  60. data/lib/api_resource/associations/association_proxy.rb +116 -0
  61. data/lib/api_resource/associations/belongs_to_remote_object_proxy.rb +16 -0
  62. data/lib/api_resource/associations/dynamic_resource_scope.rb +23 -0
  63. data/lib/api_resource/associations/generic_scope.rb +68 -0
  64. data/lib/api_resource/associations/has_many_remote_object_proxy.rb +16 -0
  65. data/lib/api_resource/associations/has_many_through_remote_object_proxy.rb +13 -0
  66. data/lib/api_resource/associations/has_one_remote_object_proxy.rb +24 -0
  67. data/lib/api_resource/associations/multi_argument_resource_scope.rb +15 -0
  68. data/lib/api_resource/associations/multi_object_proxy.rb +84 -0
  69. data/lib/api_resource/associations/related_object_hash.rb +12 -0
  70. data/lib/api_resource/associations/relation_scope.rb +25 -0
  71. data/lib/api_resource/associations/resource_scope.rb +32 -0
  72. data/lib/api_resource/associations/scope.rb +132 -0
  73. data/lib/api_resource/associations/single_object_proxy.rb +82 -0
  74. data/lib/api_resource/attributes.rb +243 -0
  75. data/lib/api_resource/base.rb +717 -0
  76. data/lib/api_resource/callbacks.rb +45 -0
  77. data/lib/api_resource/connection.rb +195 -0
  78. data/lib/api_resource/core_extensions.rb +7 -0
  79. data/lib/api_resource/custom_methods.rb +117 -0
  80. data/lib/api_resource/decorators.rb +6 -0
  81. data/lib/api_resource/decorators/caching_decorator.rb +20 -0
  82. data/lib/api_resource/exceptions.rb +99 -0
  83. data/lib/api_resource/formats.rb +22 -0
  84. data/lib/api_resource/formats/json_format.rb +25 -0
  85. data/lib/api_resource/formats/xml_format.rb +36 -0
  86. data/lib/api_resource/local.rb +12 -0
  87. data/lib/api_resource/log_subscriber.rb +15 -0
  88. data/lib/api_resource/mocks.rb +285 -0
  89. data/lib/api_resource/model_errors.rb +82 -0
  90. data/lib/api_resource/observing.rb +27 -0
  91. data/lib/api_resource/railtie.rb +24 -0
  92. data/lib/api_resource/scopes.rb +48 -0
  93. data/nohup.out +63 -0
  94. data/spec/lib/api_resource_spec.rb +43 -0
  95. data/spec/lib/associations_spec.rb +751 -0
  96. data/spec/lib/attributes_spec.rb +191 -0
  97. data/spec/lib/base_spec.rb +655 -0
  98. data/spec/lib/callbacks_spec.rb +68 -0
  99. data/spec/lib/connection_spec.rb +137 -0
  100. data/spec/lib/local_spec.rb +20 -0
  101. data/spec/lib/mocks_spec.rb +74 -0
  102. data/spec/lib/model_errors_spec.rb +29 -0
  103. data/spec/lib/prefixes_spec.rb +107 -0
  104. data/spec/spec_helper.rb +82 -0
  105. data/spec/support/mocks/association_mocks.rb +63 -0
  106. data/spec/support/mocks/error_resource_mocks.rb +21 -0
  107. data/spec/support/mocks/prefix_model_mocks.rb +5 -0
  108. data/spec/support/mocks/test_resource_mocks.rb +44 -0
  109. data/spec/support/requests/association_requests.rb +31 -0
  110. data/spec/support/requests/error_resource_requests.rb +25 -0
  111. data/spec/support/requests/prefix_model_requests.rb +7 -0
  112. data/spec/support/requests/test_resource_requests.rb +38 -0
  113. data/spec/support/test_resource.rb +72 -0
  114. data/spec/tmp/DIR +0 -0
  115. data/spec/tmp/api_resource_test_db.sqlite +0 -0
  116. metadata +119 -3
data/Gemfile ADDED
@@ -0,0 +1,37 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+ gem 'rails', '~> 3'
6
+ gem 'hash_dealer'
7
+ gem 'rest-client'
8
+ gem 'log4r'
9
+ gem 'differ'
10
+ gem 'colorize'
11
+ gem 'json', :require => 'json/ext'
12
+
13
+ group :development, :staging do
14
+ gem 'pry'
15
+ gem 'pry-doc'
16
+ gem 'pry-nav'
17
+ end
18
+
19
+ # Add dependencies to develop your gem here.
20
+ # Include everything needed to run rake, tests, features, etc.
21
+ group :development do
22
+ gem "rspec"
23
+ gem "ruby-debug19", :require => "ruby-debug"
24
+ gem "growl"
25
+ gem 'rspec-rails'
26
+ gem 'factory_girl'
27
+ gem 'simplecov'
28
+ gem 'faker'
29
+ gem 'guard-bundler'
30
+ gem 'guard-rspec'
31
+ gem 'guard-spork'
32
+ gem 'mocha'
33
+ gem "bundler"
34
+ gem "jeweler", "~> 1.6.4"
35
+ gem 'activerecord', '~> 3'
36
+ gem "sqlite3"
37
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,190 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ actionmailer (3.2.6)
5
+ actionpack (= 3.2.6)
6
+ mail (~> 2.4.4)
7
+ actionpack (3.2.6)
8
+ activemodel (= 3.2.6)
9
+ activesupport (= 3.2.6)
10
+ builder (~> 3.0.0)
11
+ erubis (~> 2.7.0)
12
+ journey (~> 1.0.1)
13
+ rack (~> 1.4.0)
14
+ rack-cache (~> 1.2)
15
+ rack-test (~> 0.6.1)
16
+ sprockets (~> 2.1.3)
17
+ activemodel (3.2.6)
18
+ activesupport (= 3.2.6)
19
+ builder (~> 3.0.0)
20
+ activerecord (3.2.6)
21
+ activemodel (= 3.2.6)
22
+ activesupport (= 3.2.6)
23
+ arel (~> 3.0.2)
24
+ tzinfo (~> 0.3.29)
25
+ activeresource (3.2.6)
26
+ activemodel (= 3.2.6)
27
+ activesupport (= 3.2.6)
28
+ activesupport (3.2.6)
29
+ i18n (~> 0.6)
30
+ multi_json (~> 1.0)
31
+ archive-tar-minitar (0.5.2)
32
+ arel (3.0.2)
33
+ builder (3.0.0)
34
+ coderay (1.0.6)
35
+ colorize (0.5.8)
36
+ columnize (0.3.6)
37
+ diff-lcs (1.1.3)
38
+ differ (0.1.2)
39
+ erubis (2.7.0)
40
+ factory_girl (2.6.1)
41
+ activesupport (>= 2.3.9)
42
+ faker (1.0.1)
43
+ i18n (~> 0.4)
44
+ ffi (1.0.11)
45
+ git (1.2.5)
46
+ growl (1.0.3)
47
+ guard (1.0.1)
48
+ ffi (>= 0.5.0)
49
+ thor (~> 0.14.6)
50
+ guard-bundler (0.1.3)
51
+ bundler (>= 1.0.0)
52
+ guard (>= 0.2.2)
53
+ guard-rspec (0.6.0)
54
+ guard (>= 0.10.0)
55
+ guard-spork (1.0.1)
56
+ guard (>= 1.0.0)
57
+ spork (>= 0.8.4)
58
+ hash_dealer (1.4.7)
59
+ activesupport
60
+ colorize
61
+ i18n
62
+ hike (1.2.1)
63
+ i18n (0.6.0)
64
+ jeweler (1.6.4)
65
+ bundler (~> 1.0)
66
+ git (>= 1.2.5)
67
+ rake
68
+ journey (1.0.4)
69
+ json (1.7.3)
70
+ linecache19 (0.5.12)
71
+ ruby_core_source (>= 0.1.4)
72
+ log4r (1.1.10)
73
+ mail (2.4.4)
74
+ i18n (>= 0.4.0)
75
+ mime-types (~> 1.16)
76
+ treetop (~> 1.4.8)
77
+ metaclass (0.0.1)
78
+ method_source (0.7.1)
79
+ mime-types (1.19)
80
+ mocha (0.10.5)
81
+ metaclass (~> 0.0.1)
82
+ multi_json (1.3.6)
83
+ polyglot (0.3.3)
84
+ pry (0.9.9.6)
85
+ coderay (~> 1.0.5)
86
+ method_source (~> 0.7.1)
87
+ slop (>= 2.4.4, < 3)
88
+ pry-doc (0.4.2)
89
+ pry (>= 0.9.0)
90
+ yard (~> 0.8.1)
91
+ pry-nav (0.2.1)
92
+ pry (~> 0.9.9)
93
+ rack (1.4.1)
94
+ rack-cache (1.2)
95
+ rack (>= 0.4)
96
+ rack-ssl (1.3.2)
97
+ rack
98
+ rack-test (0.6.1)
99
+ rack (>= 1.0)
100
+ rails (3.2.6)
101
+ actionmailer (= 3.2.6)
102
+ actionpack (= 3.2.6)
103
+ activerecord (= 3.2.6)
104
+ activeresource (= 3.2.6)
105
+ activesupport (= 3.2.6)
106
+ bundler (~> 1.0)
107
+ railties (= 3.2.6)
108
+ railties (3.2.6)
109
+ actionpack (= 3.2.6)
110
+ activesupport (= 3.2.6)
111
+ rack-ssl (~> 1.3.2)
112
+ rake (>= 0.8.7)
113
+ rdoc (~> 3.4)
114
+ thor (>= 0.14.6, < 2.0)
115
+ rake (0.9.2.2)
116
+ rdoc (3.12)
117
+ json (~> 1.4)
118
+ rest-client (1.6.7)
119
+ mime-types (>= 1.16)
120
+ rspec (2.8.0)
121
+ rspec-core (~> 2.8.0)
122
+ rspec-expectations (~> 2.8.0)
123
+ rspec-mocks (~> 2.8.0)
124
+ rspec-core (2.8.0)
125
+ rspec-expectations (2.8.0)
126
+ diff-lcs (~> 1.1.2)
127
+ rspec-mocks (2.8.0)
128
+ rspec-rails (2.8.1)
129
+ actionpack (>= 3.0)
130
+ activesupport (>= 3.0)
131
+ railties (>= 3.0)
132
+ rspec (~> 2.8.0)
133
+ ruby-debug-base19 (0.11.25)
134
+ columnize (>= 0.3.1)
135
+ linecache19 (>= 0.5.11)
136
+ ruby_core_source (>= 0.1.4)
137
+ ruby-debug19 (0.11.6)
138
+ columnize (>= 0.3.1)
139
+ linecache19 (>= 0.5.11)
140
+ ruby-debug-base19 (>= 0.11.19)
141
+ ruby_core_source (0.1.5)
142
+ archive-tar-minitar (>= 0.5.2)
143
+ simplecov (0.6.1)
144
+ multi_json (~> 1.0)
145
+ simplecov-html (~> 0.5.3)
146
+ simplecov-html (0.5.3)
147
+ slop (2.4.4)
148
+ spork (0.9.2)
149
+ sprockets (2.1.3)
150
+ hike (~> 1.2)
151
+ rack (~> 1.0)
152
+ tilt (~> 1.1, != 1.3.0)
153
+ sqlite3 (1.3.5)
154
+ thor (0.14.6)
155
+ tilt (1.3.3)
156
+ treetop (1.4.10)
157
+ polyglot
158
+ polyglot (>= 0.3.1)
159
+ tzinfo (0.3.33)
160
+ yard (0.8.2.1)
161
+
162
+ PLATFORMS
163
+ ruby
164
+
165
+ DEPENDENCIES
166
+ activerecord (~> 3)
167
+ bundler
168
+ colorize
169
+ differ
170
+ factory_girl
171
+ faker
172
+ growl
173
+ guard-bundler
174
+ guard-rspec
175
+ guard-spork
176
+ hash_dealer
177
+ jeweler (~> 1.6.4)
178
+ json
179
+ log4r
180
+ mocha
181
+ pry
182
+ pry-doc
183
+ pry-nav
184
+ rails (~> 3)
185
+ rest-client
186
+ rspec
187
+ rspec-rails
188
+ ruby-debug19
189
+ simplecov
190
+ sqlite3
data/Guardfile ADDED
@@ -0,0 +1,27 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'bundler' do
5
+ watch('Gemfile')
6
+ # Uncomment next line if Gemfile contain `gemspec' command
7
+ # watch(/^.+\.gemspec/)
8
+ end
9
+
10
+ guard 'rspec', :version => 2, :cli => "--color --format nested" do
11
+ watch(%r{^spec/.+_spec\.rb$})
12
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
13
+ watch(%r{^lib/api_resource/(.+)\.rb$}) {|m| "spec/lib/#{m[1]}_spec.rb"}
14
+ watch('spec/spec_helper.rb') { "spec/" }
15
+
16
+ # Rails example
17
+ watch(%r{^spec/.+_spec\.rb$})
18
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
19
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
20
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
21
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec/" }
22
+ watch('spec/spec_helper.rb') { "spec/" }
23
+ watch('config/routes.rb') { "spec/routing" }
24
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
25
+ # Capybara request specs
26
+ watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
27
+ end
data/Rakefile ADDED
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "api_resource"
18
+ gem.homepage = "http://github.com/ejlangev/resource"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources}
21
+ gem.description = %Q{A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources}
22
+ gem.email = "ejl6266@gmail.com"
23
+ gem.authors = ["Ethan Langevin"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rspec/core'
29
+ require 'rspec/core/rake_task'
30
+ RSpec::Core::RakeTask.new(:spec) do |spec|
31
+ spec.pattern = FileList['spec/**/*_spec.rb']
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
35
+ spec.pattern = 'spec/**/*_spec.rb'
36
+ spec.rcov = true
37
+ end
38
+
39
+ task :default => :spec
40
+
41
+ require 'rake/rdoctask'
42
+ Rake::RDocTask.new do |rdoc|
43
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
+
45
+ rdoc.rdoc_dir = 'rdoc'
46
+ rdoc.title = "resource #{version}"
47
+ rdoc.rdoc_files.include('README*')
48
+ rdoc.rdoc_files.include('lib/**/*.rb')
49
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.4.2
@@ -0,0 +1,111 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "api_resource"
8
+ s.version = "0.4.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Ethan Langevin", "Dan Langevin"]
12
+ s.date = "2012-11-27"
13
+ s.description = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
14
+ s.email = "dan.langevin@lifebooker.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.homepage = "http://github.com/LifebookerInc/api_resource"
20
+ s.licenses = ["MIT"]
21
+ s.require_paths = ["lib"]
22
+ s.rubygems_version = "1.8.24"
23
+ s.summary = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
24
+
25
+ s.files = Dir.glob("**/*")
26
+
27
+ if s.respond_to? :specification_version then
28
+ s.specification_version = 3
29
+
30
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
31
+ s.add_runtime_dependency(%q<rails>, ["~> 3"])
32
+ s.add_runtime_dependency(%q<hash_dealer>, [">= 0"])
33
+ s.add_runtime_dependency(%q<rest-client>, [">= 0"])
34
+ s.add_runtime_dependency(%q<log4r>, [">= 0"])
35
+ s.add_runtime_dependency(%q<differ>, [">= 0"])
36
+ s.add_runtime_dependency(%q<colorize>, [">= 0"])
37
+ s.add_runtime_dependency(%q<json>, [">= 0"])
38
+ s.add_development_dependency(%q<pry>, [">= 0"])
39
+ s.add_development_dependency(%q<pry-doc>, [">= 0"])
40
+ s.add_development_dependency(%q<pry-nav>, [">= 0"])
41
+ s.add_development_dependency(%q<rspec>, [">= 0"])
42
+ s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
43
+ s.add_development_dependency(%q<growl>, [">= 0"])
44
+ s.add_development_dependency(%q<rspec-rails>, [">= 0"])
45
+ s.add_development_dependency(%q<factory_girl>, [">= 0"])
46
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
47
+ s.add_development_dependency(%q<faker>, [">= 0"])
48
+ s.add_development_dependency(%q<guard-bundler>, [">= 0"])
49
+ s.add_development_dependency(%q<guard-rspec>, [">= 0"])
50
+ s.add_development_dependency(%q<guard-spork>, [">= 0"])
51
+ s.add_development_dependency(%q<mocha>, [">= 0"])
52
+ s.add_development_dependency(%q<bundler>, [">= 0"])
53
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
54
+ s.add_development_dependency(%q<activerecord>, ["~> 3"])
55
+ s.add_development_dependency(%q<sqlite3>, [">= 0"])
56
+ else
57
+ s.add_dependency(%q<rails>, ["~> 3"])
58
+ s.add_dependency(%q<hash_dealer>, [">= 0"])
59
+ s.add_dependency(%q<rest-client>, [">= 0"])
60
+ s.add_dependency(%q<log4r>, [">= 0"])
61
+ s.add_dependency(%q<differ>, [">= 0"])
62
+ s.add_dependency(%q<colorize>, [">= 0"])
63
+ s.add_dependency(%q<json>, [">= 0"])
64
+ s.add_dependency(%q<pry>, [">= 0"])
65
+ s.add_dependency(%q<pry-doc>, [">= 0"])
66
+ s.add_dependency(%q<pry-nav>, [">= 0"])
67
+ s.add_dependency(%q<rspec>, [">= 0"])
68
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
69
+ s.add_dependency(%q<growl>, [">= 0"])
70
+ s.add_dependency(%q<rspec-rails>, [">= 0"])
71
+ s.add_dependency(%q<factory_girl>, [">= 0"])
72
+ s.add_dependency(%q<simplecov>, [">= 0"])
73
+ s.add_dependency(%q<faker>, [">= 0"])
74
+ s.add_dependency(%q<guard-bundler>, [">= 0"])
75
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
76
+ s.add_dependency(%q<guard-spork>, [">= 0"])
77
+ s.add_dependency(%q<mocha>, [">= 0"])
78
+ s.add_dependency(%q<bundler>, [">= 0"])
79
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
80
+ s.add_dependency(%q<activerecord>, ["~> 3"])
81
+ s.add_dependency(%q<sqlite3>, [">= 0"])
82
+ end
83
+ else
84
+ s.add_dependency(%q<rails>, ["~> 3"])
85
+ s.add_dependency(%q<hash_dealer>, [">= 0"])
86
+ s.add_dependency(%q<rest-client>, [">= 0"])
87
+ s.add_dependency(%q<log4r>, [">= 0"])
88
+ s.add_dependency(%q<differ>, [">= 0"])
89
+ s.add_dependency(%q<colorize>, [">= 0"])
90
+ s.add_dependency(%q<json>, [">= 0"])
91
+ s.add_dependency(%q<pry>, [">= 0"])
92
+ s.add_dependency(%q<pry-doc>, [">= 0"])
93
+ s.add_dependency(%q<pry-nav>, [">= 0"])
94
+ s.add_dependency(%q<rspec>, [">= 0"])
95
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
96
+ s.add_dependency(%q<growl>, [">= 0"])
97
+ s.add_dependency(%q<rspec-rails>, [">= 0"])
98
+ s.add_dependency(%q<factory_girl>, [">= 0"])
99
+ s.add_dependency(%q<simplecov>, [">= 0"])
100
+ s.add_dependency(%q<faker>, [">= 0"])
101
+ s.add_dependency(%q<guard-bundler>, [">= 0"])
102
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
103
+ s.add_dependency(%q<guard-spork>, [">= 0"])
104
+ s.add_dependency(%q<mocha>, [">= 0"])
105
+ s.add_dependency(%q<bundler>, [">= 0"])
106
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
107
+ s.add_dependency(%q<activerecord>, ["~> 3"])
108
+ s.add_dependency(%q<sqlite3>, [">= 0"])
109
+ end
110
+ end
111
+
@@ -0,0 +1,88 @@
1
+ $(document).ready(function() {
2
+ // Configuration for fancy sortable tables for source file groups
3
+ $('.file_list').dataTable({
4
+ "aaSorting": [[ 1, "asc" ]],
5
+ "bPaginate": false,
6
+ "bJQueryUI": true,
7
+ "aoColumns": [
8
+ null,
9
+ { "sType": "percent" },
10
+ null,
11
+ null,
12
+ null,
13
+ null,
14
+ null
15
+ ]
16
+ });
17
+
18
+ // Syntax highlight all files up front - deactivated
19
+ // $('.source_table pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
20
+
21
+ // Syntax highlight source files on first toggle of the file view popup
22
+ $("a.src_link").click(function() {
23
+ // Get the source file element that corresponds to the clicked element
24
+ var source_table = $($(this).attr('href'));
25
+
26
+ // If not highlighted yet, do it!
27
+ if (!source_table.hasClass('highlighted')) {
28
+ source_table.find('pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
29
+ source_table.addClass('highlighted');
30
+ };
31
+ });
32
+
33
+ // Set-up of popup for source file views
34
+ $("a.src_link").fancybox({
35
+ 'hideOnContentClick': true,
36
+ 'centerOnScroll': true,
37
+ 'width': '90%',
38
+ 'padding': 0,
39
+ 'transitionIn': 'elastic'
40
+ });
41
+
42
+ // Hide src files and file list container after load
43
+ $('.source_files').hide();
44
+ $('.file_list_container').hide();
45
+
46
+ // Add tabs based upon existing file_list_containers
47
+ $('.file_list_container h2').each(function(){
48
+ var container_id = $(this).parent().attr('id');
49
+ var group_name = $(this).find('.group_name').first().html();
50
+ var covered_percent = $(this).find('.covered_percent').first().html();
51
+
52
+ $('.group_tabs').append('<li><a href="#' + container_id + '">' + group_name + ' ('+ covered_percent +')</a></li>');
53
+ });
54
+
55
+ $('.group_tabs a').each( function() {
56
+ $(this).addClass($(this).attr('href').replace('#', ''));
57
+ });
58
+
59
+ // Make sure tabs don't get ugly focus borders when active
60
+ $('.group_tabs a').live('focus', function() { $(this).blur(); });
61
+
62
+ var favicon_path = $('link[rel="shortcut icon"]').attr('href');
63
+ $('.group_tabs a').live('click', function(){
64
+ if (!$(this).parent().hasClass('active')) {
65
+ $('.group_tabs a').parent().removeClass('active');
66
+ $(this).parent().addClass('active');
67
+ $('.file_list_container').hide();
68
+ $(".file_list_container" + $(this).attr('href')).show();
69
+ window.location.href = window.location.href.split('#')[0] + $(this).attr('href').replace('#', '#_');
70
+
71
+ // Force favicon reload - otherwise the location change containing anchor would drop the favicon...
72
+ // Works only on firefox, but still... - Anyone know a better solution to force favicon on local file?
73
+ $('link[rel="shortcut icon"]').remove();
74
+ $('head').append('<link rel="shortcut icon" type="image/png" href="'+ favicon_path +'" />');
75
+ };
76
+ return false;
77
+ });
78
+
79
+ if (jQuery.url.attr('anchor')) {
80
+ $('.group_tabs a.'+jQuery.url.attr('anchor').replace('_', '')).click();
81
+ } else {
82
+ $('.group_tabs a:first').click();
83
+ };
84
+
85
+ $("abbr.timeago").timeago();
86
+ $('#loading').fadeOut();
87
+ $('#wrapper').show();
88
+ });