rabl 0.3.0 → 0.5.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/.gitignore +2 -0
- data/.travis.yml +10 -0
- data/CHANGELOG.md +34 -0
- data/Gemfile +14 -1
- data/README.md +53 -4
- data/Rakefile +26 -1
- data/fixtures/ashared/NOTES +35 -0
- data/fixtures/ashared/README +35 -0
- data/fixtures/ashared/migrate/20111002092016_create_users.rb +15 -0
- data/fixtures/ashared/migrate/20111002092019_create_posts.rb +14 -0
- data/fixtures/ashared/migrate/20111002092024_create_phone_numbers.rb +16 -0
- data/fixtures/ashared/models/phone_number.rb +7 -0
- data/fixtures/ashared/models/post.rb +3 -0
- data/fixtures/ashared/models/user.rb +3 -0
- data/fixtures/ashared/views/layouts/application.html.erb +6 -0
- data/fixtures/ashared/views/posts/date.json.rabl +3 -0
- data/fixtures/ashared/views/posts/index.json.rabl +11 -0
- data/fixtures/ashared/views/posts/show.json.rabl +16 -0
- data/fixtures/ashared/views/users/index.rabl +3 -0
- data/fixtures/ashared/views/users/phone_number.rabl +6 -0
- data/fixtures/ashared/views/users/show.rabl +16 -0
- data/fixtures/padrino_test/.components +7 -0
- data/fixtures/padrino_test/.gitignore +7 -0
- data/fixtures/padrino_test/Gemfile +17 -0
- data/fixtures/padrino_test/Rakefile +3 -0
- data/fixtures/padrino_test/app/app.rb +59 -0
- data/fixtures/padrino_test/app/controllers/posts.rb +11 -0
- data/fixtures/padrino_test/app/controllers/users.rb +11 -0
- data/fixtures/padrino_test/app/helpers/posts_helper.rb +7 -0
- data/fixtures/padrino_test/app/helpers/users_helper.rb +7 -0
- data/fixtures/padrino_test/config.ru +9 -0
- data/fixtures/padrino_test/config/apps.rb +34 -0
- data/fixtures/padrino_test/config/boot.rb +29 -0
- data/fixtures/padrino_test/config/database.rb +43 -0
- data/fixtures/padrino_test/db/schema.rb +42 -0
- data/fixtures/padrino_test/public/favicon.ico +0 -0
- data/fixtures/padrino_test/test/app/controllers/posts_controller_test.rb +108 -0
- data/fixtures/padrino_test/test/app/controllers/users_controller_test.rb +87 -0
- data/fixtures/padrino_test/test/test.rake +18 -0
- data/fixtures/padrino_test/test/test_config.rb +18 -0
- data/fixtures/rails2/.gitignore +1 -0
- data/fixtures/rails2/Gemfile +8 -0
- data/fixtures/rails2/Rakefile +14 -0
- data/fixtures/rails2/app/controllers/application_controller.rb +10 -0
- data/fixtures/rails2/app/controllers/posts_controller.rb +15 -0
- data/fixtures/rails2/app/controllers/users_controller.rb +15 -0
- data/fixtures/rails2/config/boot.rb +129 -0
- data/fixtures/rails2/config/database.yml +16 -0
- data/fixtures/rails2/config/environment.rb +42 -0
- data/fixtures/rails2/config/environments/development.rb +17 -0
- data/fixtures/rails2/config/environments/production.rb +28 -0
- data/fixtures/rails2/config/environments/test.rb +28 -0
- data/fixtures/rails2/config/initializers/backtrace_silencers.rb +7 -0
- data/fixtures/rails2/config/initializers/cookie_verification_secret.rb +7 -0
- data/fixtures/rails2/config/initializers/inflections.rb +10 -0
- data/fixtures/rails2/config/initializers/mime_types.rb +5 -0
- data/fixtures/rails2/config/initializers/new_rails_defaults.rb +21 -0
- data/fixtures/rails2/config/initializers/session_store.rb +15 -0
- data/fixtures/rails2/config/locales/en.yml +5 -0
- data/fixtures/rails2/config/preinitializer.rb +20 -0
- data/fixtures/rails2/config/routes.rb +45 -0
- data/fixtures/rails2/db/schema.rb +40 -0
- data/fixtures/rails2/db/seeds.rb +7 -0
- data/fixtures/rails2/public/404.html +30 -0
- data/fixtures/rails2/public/422.html +30 -0
- data/fixtures/rails2/public/500.html +30 -0
- data/fixtures/rails2/public/favicon.ico +0 -0
- data/fixtures/rails2/public/images/rails.png +0 -0
- data/fixtures/rails2/public/index.html +275 -0
- data/fixtures/rails2/public/robots.txt +5 -0
- data/fixtures/rails2/script/about +4 -0
- data/fixtures/rails2/script/console +3 -0
- data/fixtures/rails2/script/dbconsole +3 -0
- data/fixtures/rails2/script/destroy +3 -0
- data/fixtures/rails2/script/generate +3 -0
- data/fixtures/rails2/script/performance/benchmarker +3 -0
- data/fixtures/rails2/script/performance/profiler +3 -0
- data/fixtures/rails2/script/plugin +3 -0
- data/fixtures/rails2/script/runner +3 -0
- data/fixtures/rails2/script/server +3 -0
- data/fixtures/rails2/test/functionals/posts_controller_test.rb +108 -0
- data/fixtures/rails2/test/functionals/users_controller_test.rb +87 -0
- data/fixtures/rails2/test/test_helper.rb +33 -0
- data/fixtures/rails3/.gitignore +4 -0
- data/fixtures/rails3/Gemfile +37 -0
- data/fixtures/rails3/Rakefile +12 -0
- data/fixtures/rails3/app/controllers/application_controller.rb +14 -0
- data/fixtures/rails3/app/controllers/posts_controller.rb +11 -0
- data/fixtures/rails3/app/controllers/users_controller.rb +11 -0
- data/fixtures/rails3/config.ru +4 -0
- data/fixtures/rails3/config/application.rb +42 -0
- data/fixtures/rails3/config/boot.rb +6 -0
- data/fixtures/rails3/config/database.yml +22 -0
- data/fixtures/rails3/config/environment.rb +5 -0
- data/fixtures/rails3/config/environments/development.rb +26 -0
- data/fixtures/rails3/config/environments/production.rb +49 -0
- data/fixtures/rails3/config/environments/test.rb +35 -0
- data/fixtures/rails3/config/initializers/backtrace_silencers.rb +7 -0
- data/fixtures/rails3/config/initializers/inflections.rb +10 -0
- data/fixtures/rails3/config/initializers/mime_types.rb +5 -0
- data/fixtures/rails3/config/initializers/secret_token.rb +7 -0
- data/fixtures/rails3/config/initializers/session_store.rb +8 -0
- data/fixtures/rails3/config/locales/en.yml +5 -0
- data/fixtures/rails3/config/routes.rb +61 -0
- data/fixtures/rails3/db/seeds.rb +7 -0
- data/fixtures/rails3/lib/tasks/.gitkeep +0 -0
- data/fixtures/rails3/public/404.html +26 -0
- data/fixtures/rails3/public/422.html +26 -0
- data/fixtures/rails3/public/500.html +26 -0
- data/fixtures/rails3/public/favicon.ico +0 -0
- data/fixtures/rails3/public/images/rails.png +0 -0
- data/fixtures/rails3/public/index.html +239 -0
- data/fixtures/rails3/public/robots.txt +5 -0
- data/fixtures/rails3/public/stylesheets/.gitkeep +0 -0
- data/fixtures/rails3/script/rails +6 -0
- data/fixtures/rails3/test/functional/posts_controller_test.rb +108 -0
- data/fixtures/rails3/test/functional/users_controller_test.rb +87 -0
- data/fixtures/rails3/test/test_helper.rb +26 -0
- data/fixtures/sinatra_test/Gemfile +13 -0
- data/fixtures/sinatra_test/Rakefile +6 -0
- data/fixtures/sinatra_test/app.rb +44 -0
- data/fixtures/sinatra_test/config.ru +7 -0
- data/fixtures/sinatra_test/test/functional/posts_controller_test.rb +108 -0
- data/fixtures/sinatra_test/test/functional/users_controller_test.rb +87 -0
- data/fixtures/sinatra_test/test/test_helper.rb +19 -0
- data/lib/rabl.rb +13 -1
- data/lib/rabl/builder.rb +14 -7
- data/lib/rabl/configuration.rb +41 -1
- data/lib/rabl/engine.rb +29 -19
- data/lib/rabl/helpers.rb +45 -18
- data/lib/rabl/template.rb +1 -1
- data/lib/rabl/version.rb +1 -1
- data/rabl.gemspec +6 -5
- data/test/builder_test.rb +4 -4
- data/test/configuration_test.rb +7 -22
- data/test/engine_test.rb +63 -44
- data/test/helpers_test.rb +68 -0
- data/test/integration/posts_controller_test.rb +108 -0
- data/test/integration/test_init.rb +35 -0
- data/test/integration/users_controller_test.rb +87 -0
- data/test/models/ormless.rb +2 -0
- data/test/models/user.rb +17 -6
- data/test/msgpack_engine_test.rb +332 -0
- data/test/silence.rb +21 -0
- data/test/teststrap.rb +22 -6
- metadata +160 -14
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Lives in <rabl>/test/integration/posts_controller_test.rb
|
|
2
|
+
# Symlinked to fixture applications
|
|
3
|
+
|
|
4
|
+
begin # Padrino
|
|
5
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
|
|
6
|
+
rescue LoadError # Rails
|
|
7
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
context "PostsController" do
|
|
11
|
+
helper(:json_output) { JSON.parse(last_response.body) }
|
|
12
|
+
|
|
13
|
+
setup do
|
|
14
|
+
create_users!
|
|
15
|
+
Post.delete_all
|
|
16
|
+
@post1 = Post.create(:title => "Foo", :body => "Bar", :user_id => @user1.id)
|
|
17
|
+
@post2 = Post.create(:title => "Baz", :body => "Bah", :user_id => @user2.id)
|
|
18
|
+
@post3 = Post.create(:title => "Kaz", :body => "Paz", :user_id => @user3.id)
|
|
19
|
+
@posts = [@post1, @post2, @post3]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context "for index action" do
|
|
23
|
+
setup do
|
|
24
|
+
get "/posts"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Attributes (regular)
|
|
28
|
+
asserts("contains post titles") do
|
|
29
|
+
json_output['articles'].map { |o| o["article"]["title"] }
|
|
30
|
+
end.equals { @posts.map(&:title) }
|
|
31
|
+
|
|
32
|
+
asserts("contains post bodies") do
|
|
33
|
+
json_output['articles'].map { |o| o["article"]["body"] }
|
|
34
|
+
end.equals { @posts.map(&:body) }
|
|
35
|
+
|
|
36
|
+
# Attributes (custom name)
|
|
37
|
+
asserts("contains post posted_at") do
|
|
38
|
+
json_output['articles'].map { |o| o["article"]["posted_at"] }
|
|
39
|
+
end.equals { @posts.map(&:created_at).map(&:iso8601) }
|
|
40
|
+
|
|
41
|
+
# Child
|
|
42
|
+
asserts("contains post user child username") do
|
|
43
|
+
json_output['articles'].map { |o| o["article"]["user"]["username"] }
|
|
44
|
+
end.equals { @posts.map(&:user).map(&:username) }
|
|
45
|
+
|
|
46
|
+
asserts("contains post user child role") do
|
|
47
|
+
json_output['articles'].map { |o| o["article"]["user"]["role"] }
|
|
48
|
+
end.equals { ["normal", "normal", "admin"] }
|
|
49
|
+
|
|
50
|
+
# Child Numbers of the Child User
|
|
51
|
+
asserts("contains post user child numbers") do
|
|
52
|
+
json_output['articles'].map { |o| o["article"]["user"]["pnumbers"][0]["pnumber"]["formatted"] }
|
|
53
|
+
end.equals { @posts.map(&:user).map(&:phone_numbers).map(&:first).map(&:formatted) }
|
|
54
|
+
|
|
55
|
+
# Glue (username to article)
|
|
56
|
+
asserts("contains glued usernames") do
|
|
57
|
+
json_output['articles'].map { |o| o["article"]["author_name"] }
|
|
58
|
+
end.equals { @posts.map(&:user).map(&:username) }
|
|
59
|
+
|
|
60
|
+
# Conditional Child (admin)
|
|
61
|
+
asserts("contains admin child only for admins") do
|
|
62
|
+
json_output['articles'].map { |o| o["article"]["admin"]["username"] if o["article"].has_key?("admin") }.compact
|
|
63
|
+
end.equals { [@user3.username] }
|
|
64
|
+
|
|
65
|
+
# Conditional Node (created_by_admin)
|
|
66
|
+
asserts("contains created_by_admin node for admins") do
|
|
67
|
+
json_output['articles'].last['article']['created_by_admin']
|
|
68
|
+
end.equals { true }
|
|
69
|
+
|
|
70
|
+
denies("contains no created_by_admin node for non-admins") do
|
|
71
|
+
json_output['articles'].first['article']
|
|
72
|
+
end.includes(:created_by_admin)
|
|
73
|
+
end # index action
|
|
74
|
+
|
|
75
|
+
context "for show action" do
|
|
76
|
+
setup do
|
|
77
|
+
get "/posts/#{@post1.id}"
|
|
78
|
+
json_output['post']
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Attributes (regular)
|
|
82
|
+
asserts("contains post title") { topic['title'] }.equals { @post1.title }
|
|
83
|
+
asserts("contains post body") { topic['body'] }.equals { @post1.body }
|
|
84
|
+
|
|
85
|
+
# Attributes (custom name)
|
|
86
|
+
asserts("contains post posted_at") { topic['posted_at'] }.equals { @post1.created_at.iso8601 }
|
|
87
|
+
|
|
88
|
+
# Child
|
|
89
|
+
asserts("contains post user child username") { topic["user"]["username"] }.equals { @post1.user.username }
|
|
90
|
+
asserts("contains post user child role") { topic["user"]["role"] }.equals { "normal" }
|
|
91
|
+
|
|
92
|
+
# Child Numbers of the Child User
|
|
93
|
+
asserts("contains post user child numbers") do
|
|
94
|
+
topic["user"]["pnumbers"][0]["pnumber"]["formatted"]
|
|
95
|
+
end.equals { @post1.user.phone_numbers[0].formatted }
|
|
96
|
+
|
|
97
|
+
# Glue (username to article)
|
|
98
|
+
asserts("contains glued username") { topic["author_name"] }.equals { @post1.user.username }
|
|
99
|
+
|
|
100
|
+
# Non-ORM Date Node Partial
|
|
101
|
+
context "for date node" do
|
|
102
|
+
setup { json_output['post']['created_date'] }
|
|
103
|
+
asserts("contains date partial with day") { topic['day'] }.equals { @post1.created_at.day }
|
|
104
|
+
asserts("contains date partial with hour") { topic['hour'] }.equals { @post1.created_at.hour }
|
|
105
|
+
asserts("contains date partial with full") { topic['full'] }.equals { @post1.created_at.iso8601 }
|
|
106
|
+
end # date node
|
|
107
|
+
end # show action
|
|
108
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Lives in <rabl>/test/integration/users_controller_test.rb
|
|
2
|
+
# Symlinked to fixture applications
|
|
3
|
+
|
|
4
|
+
begin # Sinatra
|
|
5
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
|
|
6
|
+
rescue LoadError # Rails
|
|
7
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
context "UsersController" do
|
|
11
|
+
helper(:json_output) { JSON.parse(last_response.body) }
|
|
12
|
+
|
|
13
|
+
setup do
|
|
14
|
+
create_users!
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
context "for index action" do
|
|
18
|
+
# Tests `collection @users` extending from 'show' template
|
|
19
|
+
|
|
20
|
+
setup do
|
|
21
|
+
get "/users"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Attributes (regular)
|
|
25
|
+
asserts("contains user usernames") do
|
|
26
|
+
json_output.map { |u| u["user"]["username"] }
|
|
27
|
+
end.equals { @users.map(&:username) }
|
|
28
|
+
asserts("contains email") do
|
|
29
|
+
json_output.map { |u| u["user"]["email"] }
|
|
30
|
+
end.equals { @users.map(&:email) }
|
|
31
|
+
asserts("contains location") do
|
|
32
|
+
json_output.map { |u| u["user"]["location"] }
|
|
33
|
+
end.equals { @users.map(&:location) }
|
|
34
|
+
|
|
35
|
+
# Attributes (custom name)
|
|
36
|
+
asserts("contains registered_at") do
|
|
37
|
+
json_output.map { |u| u["user"]["registered_at"] }
|
|
38
|
+
end.equals { @users.map(&:created_at).map(&:iso8601) }
|
|
39
|
+
|
|
40
|
+
# Node (renders based on attribute)
|
|
41
|
+
asserts("contains role") do
|
|
42
|
+
json_output.map { |u| u["user"]["role"] }
|
|
43
|
+
end.equals ['normal', 'normal', 'admin']
|
|
44
|
+
|
|
45
|
+
# Child (custom collection name)
|
|
46
|
+
asserts("contains formatted phone numbers") do
|
|
47
|
+
json_output.map { |u| u["user"]["pnumbers"].map { |n| n["pnumber"]["formatted"] } }
|
|
48
|
+
end.equals { @users.map { |u| u.phone_numbers.map(&:formatted) } }
|
|
49
|
+
|
|
50
|
+
# Node (renders collection partial)
|
|
51
|
+
asserts("contains formatted node numbers") do
|
|
52
|
+
json_output.map { |u| u["user"]["node_numbers"].map { |n| n["formatted"] } }
|
|
53
|
+
end.equals { @users.map { |u| u.phone_numbers.map(&:formatted) } }
|
|
54
|
+
end # index
|
|
55
|
+
|
|
56
|
+
context "for show action" do
|
|
57
|
+
# Tests `object :user => :person` custom parent node name
|
|
58
|
+
setup do
|
|
59
|
+
get "/users/#{@user1.id}"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Attributes (regular)
|
|
63
|
+
asserts("contains username") { json_output["person"]["username"] }.equals { @user1.username }
|
|
64
|
+
asserts("contains email") { json_output["person"]["email"] }.equals { @user1.email }
|
|
65
|
+
asserts("contains location") { json_output["person"]["location"] }.equals { @user1.location }
|
|
66
|
+
# Attributes (custom name)
|
|
67
|
+
asserts("contains registered_at") { json_output["person"]["registered_at"] }.equals { @user1.created_at.iso8601 }
|
|
68
|
+
# Node (renders based on attribute)
|
|
69
|
+
asserts("contains role node") { json_output["person"]["role"] }.equals "normal"
|
|
70
|
+
|
|
71
|
+
# Child (custom collection name)
|
|
72
|
+
asserts("contains first phone number") {
|
|
73
|
+
json_output["person"]["pnumbers"][0]["pnumber"]["formatted"]
|
|
74
|
+
}.equals { @user1.phone_numbers[0].formatted }
|
|
75
|
+
asserts("contains second phone number") {
|
|
76
|
+
json_output["person"]["pnumbers"][1]["pnumber"]["formatted"]
|
|
77
|
+
}.equals { @user1.phone_numbers[1].formatted }
|
|
78
|
+
|
|
79
|
+
# Node (renders collection partial)
|
|
80
|
+
asserts("contains first node number") {
|
|
81
|
+
json_output["person"]["node_numbers"][0]["formatted"]
|
|
82
|
+
}.equals { @user1.phone_numbers[0].formatted }
|
|
83
|
+
asserts("contains second node number") {
|
|
84
|
+
json_output["person"]["node_numbers"][1]["formatted"]
|
|
85
|
+
}.equals { @user1.phone_numbers[1].formatted }
|
|
86
|
+
end # show
|
|
87
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Load Silence Functionality
|
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../../test/silence.rb")
|
|
3
|
+
|
|
4
|
+
# Load Environment
|
|
5
|
+
silence_warnings do
|
|
6
|
+
ENV["RAILS_ENV"] = "test"
|
|
7
|
+
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
|
8
|
+
require 'test_help'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Load Riot Test Environment
|
|
12
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../../test/integration/test_init.rb")
|
|
13
|
+
|
|
14
|
+
# Run Migrations
|
|
15
|
+
silence_stream(STDOUT) do
|
|
16
|
+
dbconf = YAML::load(File.open('config/database.yml'))[Rails.env]
|
|
17
|
+
ActiveRecord::Base.establish_connection(dbconf)
|
|
18
|
+
ActiveRecord::Base.logger = Logger.new(File.open('log/database.log', 'a'))
|
|
19
|
+
silence_stream(STDOUT) { ActiveRecord::Migrator.up('db/migrate') }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
class Riot::Situation
|
|
23
|
+
def app
|
|
24
|
+
ActionController::Dispatcher.new
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class ActiveSupport::TestCase
|
|
29
|
+
self.use_transactional_fixtures = true
|
|
30
|
+
self.use_instantiated_fixtures = false
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
source 'http://rubygems.org'
|
|
2
|
+
|
|
3
|
+
gem 'rails', '3.0.8'
|
|
4
|
+
|
|
5
|
+
# Bundle edge Rails instead:
|
|
6
|
+
# gem 'rails', :git => 'git://github.com/rails/rails.git'
|
|
7
|
+
|
|
8
|
+
gem 'sqlite3'
|
|
9
|
+
gem 'json'
|
|
10
|
+
gem 'rabl', :path => File.expand_path(File.dirname(__FILE__) + "/../../")
|
|
11
|
+
|
|
12
|
+
# TEST
|
|
13
|
+
gem 'riot', :group => "test"
|
|
14
|
+
gem 'rack-test', :require => "rack/test", :group => "test"
|
|
15
|
+
|
|
16
|
+
# Use unicorn as the web server
|
|
17
|
+
# gem 'unicorn'
|
|
18
|
+
|
|
19
|
+
# Deploy with Capistrano
|
|
20
|
+
# gem 'capistrano'
|
|
21
|
+
|
|
22
|
+
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
|
|
23
|
+
# gem 'ruby-debug'
|
|
24
|
+
# gem 'ruby-debug19', :require => 'ruby-debug'
|
|
25
|
+
|
|
26
|
+
# Bundle the extra gems:
|
|
27
|
+
# gem 'bj'
|
|
28
|
+
# gem 'nokogiri'
|
|
29
|
+
# gem 'sqlite3-ruby', :require => 'sqlite3'
|
|
30
|
+
# gem 'aws-s3', :require => 'aws/s3'
|
|
31
|
+
|
|
32
|
+
# Bundle gems for the local environment. Make sure to
|
|
33
|
+
# put test-only gems in this group so their generators
|
|
34
|
+
# and rake tasks are available in development mode:
|
|
35
|
+
# group :development, :test do
|
|
36
|
+
# gem 'webrat'
|
|
37
|
+
# end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
|
2
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
|
3
|
+
|
|
4
|
+
require File.expand_path('../config/application', __FILE__)
|
|
5
|
+
require 'rake'
|
|
6
|
+
|
|
7
|
+
Rails3::Application.load_tasks
|
|
8
|
+
|
|
9
|
+
Rake::TestTask.new("test:rabl") do |test|
|
|
10
|
+
test.pattern = "test/functional/**/*_test.rb"
|
|
11
|
+
test.verbose = true
|
|
12
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class ApplicationController < ActionController::Base
|
|
2
|
+
protect_from_forgery
|
|
3
|
+
|
|
4
|
+
before_filter :default_format_json
|
|
5
|
+
|
|
6
|
+
protected
|
|
7
|
+
|
|
8
|
+
def default_format_json
|
|
9
|
+
if(request.headers["HTTP_ACCEPT"].nil? &&
|
|
10
|
+
params[:format].nil?)
|
|
11
|
+
request.format = "json"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
|
2
|
+
|
|
3
|
+
require 'rails/all'
|
|
4
|
+
|
|
5
|
+
# If you have a Gemfile, require the gems listed there, including any gems
|
|
6
|
+
# you've limited to :test, :development, or :production.
|
|
7
|
+
Bundler.require(:default, Rails.env) if defined?(Bundler)
|
|
8
|
+
|
|
9
|
+
module Rails3
|
|
10
|
+
class Application < Rails::Application
|
|
11
|
+
# Settings in config/environments/* take precedence over those specified here.
|
|
12
|
+
# Application configuration should go into files in config/initializers
|
|
13
|
+
# -- all .rb files in that directory are automatically loaded.
|
|
14
|
+
|
|
15
|
+
# Custom directories with classes and modules you want to be autoloadable.
|
|
16
|
+
# config.autoload_paths += %W(#{config.root}/extras)
|
|
17
|
+
|
|
18
|
+
# Only load the plugins named here, in the order given (default is alphabetical).
|
|
19
|
+
# :all can be used as a placeholder for all plugins not explicitly named.
|
|
20
|
+
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
|
21
|
+
|
|
22
|
+
# Activate observers that should always be running.
|
|
23
|
+
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
|
24
|
+
|
|
25
|
+
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
|
26
|
+
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
|
27
|
+
# config.time_zone = 'Central Time (US & Canada)'
|
|
28
|
+
|
|
29
|
+
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
|
30
|
+
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
|
31
|
+
# config.i18n.default_locale = :de
|
|
32
|
+
|
|
33
|
+
# JavaScript files you want as :defaults (application.js is always included).
|
|
34
|
+
# config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
|
|
35
|
+
|
|
36
|
+
# Configure the default encoding used in templates for Ruby 1.9.
|
|
37
|
+
config.encoding = "utf-8"
|
|
38
|
+
|
|
39
|
+
# Configure sensitive parameters which will be filtered from the log file.
|
|
40
|
+
config.filter_parameters += [:password]
|
|
41
|
+
end
|
|
42
|
+
end
|