api_resource 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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
+ });