versioncake 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. data/.gitignore +2 -1
  2. data/Gemfile.lock +3 -15
  3. data/README.md +33 -31
  4. data/Rakefile +3 -17
  5. data/lib/versioncake/version.rb +1 -1
  6. data/{spec → test}/fixtures/partials/_versioned.erb +0 -0
  7. data/{spec → test}/fixtures/partials/_versioned.v1.erb +0 -0
  8. data/{spec → test}/fixtures/partials/_versioned.v2.erb +0 -0
  9. data/{spec → test}/fixtures/partials/_versioned.v3.erb +0 -0
  10. data/{spec → test}/fixtures/partials/another_versioned_partial.erb +0 -0
  11. data/{spec → test}/fixtures/partials/another_versioned_partial.v1.erb +0 -0
  12. data/{spec → test}/fixtures/templates/unversioned.html.erb +0 -0
  13. data/{spec → test}/fixtures/templates/versioned.html.erb +0 -0
  14. data/{spec → test}/fixtures/templates/versioned.v1.html.erb +0 -0
  15. data/{spec → test}/fixtures/templates/versioned.v2.html.erb +0 -0
  16. data/{spec → test}/fixtures/templates/versioned.v3.html.erb +0 -0
  17. data/test/template/render_test.rb +34 -0
  18. data/test/test_helper.rb +3 -18
  19. data/versioncake.gemspec +7 -4
  20. metadata +65 -65
  21. data/spec/app/controllers/renders_controller.rb +0 -4
  22. data/spec/app/views/renders/index.html.erb +0 -1
  23. data/spec/app/views/renders/index.v1.html.erb +0 -1
  24. data/spec/app/views/renders/index.v2.html.erb +0 -1
  25. data/spec/config/application.rb +0 -13
  26. data/spec/config/database.yml +0 -4
  27. data/spec/config/routes.rb +0 -3
  28. data/spec/config.ru +0 -0
  29. data/spec/db/test.sqlite3 +0 -0
  30. data/spec/script/rails +0 -0
  31. data/spec/spec_helper.rb +0 -27
  32. data/spec/template/render_spec.rb +0 -34
  33. data/spec/template/resolver_spec.rb +0 -12
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  .idea
2
2
  .rvmrc
3
3
  spec/log
4
- log/
4
+ log/
5
+ *.gem
data/Gemfile.lock CHANGED
@@ -2,6 +2,9 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  versioncake (0.1.0)
5
+ actionpack (>= 3.0)
6
+ activesupport (>= 3.0)
7
+ railties (>= 3.0)
5
8
 
6
9
  GEM
7
10
  remote: http://rubygems.org/
@@ -29,7 +32,6 @@ GEM
29
32
  multi_json (~> 1.0)
30
33
  arel (3.0.2)
31
34
  builder (3.0.0)
32
- diff-lcs (1.1.3)
33
35
  erubis (2.7.0)
34
36
  hike (1.2.1)
35
37
  i18n (0.6.1)
@@ -56,19 +58,6 @@ GEM
56
58
  rake (0.9.2.2)
57
59
  rdoc (3.12)
58
60
  json (~> 1.4)
59
- rspec (2.11.0)
60
- rspec-core (~> 2.11.0)
61
- rspec-expectations (~> 2.11.0)
62
- rspec-mocks (~> 2.11.0)
63
- rspec-core (2.11.1)
64
- rspec-expectations (2.11.2)
65
- diff-lcs (~> 1.1.3)
66
- rspec-mocks (2.11.2)
67
- rspec-rails (2.11.0)
68
- actionpack (>= 3.0)
69
- activesupport (>= 3.0)
70
- railties (>= 3.0)
71
- rspec (~> 2.11.0)
72
61
  sprockets (2.1.3)
73
62
  hike (~> 1.2)
74
63
  rack (~> 1.0)
@@ -90,7 +79,6 @@ DEPENDENCIES
90
79
  multi_json
91
80
  rack
92
81
  rake
93
- rspec-rails
94
82
  sqlite3
95
83
  test-unit
96
84
  tzinfo
data/README.md CHANGED
@@ -1,8 +1,12 @@
1
1
  # Version Cake [![Build Status](https://secure.travis-ci.org/bwillis/versioncake.png?branch=master)](http://travis-ci.org/bwillis/versioncake)
2
2
 
3
- Version Cake is a way to easily version views in your Rails app.
3
+ Co-authored by Ben Willis ([@bwillis](https://github.com/bwillis/)) and Jim Jones ([@aantix](https://github.com/aantix)).
4
4
 
5
- ## Install - not release yet
5
+ Version Cake is an unobtrusive way to version views in your Rails app.
6
+
7
+ We were tired of urls with version numbers, namespacing controllers with versions, and bumping all resources everytime we supported a new version. Simply configure your supported version numbers, create a versioned view if you need one and let versioncake render the requested version or gracefully degrade to the latest supported view version.
8
+
9
+ ## Install
6
10
 
7
11
  ```
8
12
  gem install versioncake
@@ -10,22 +14,26 @@ gem install versioncake
10
14
 
11
15
  ## How to use
12
16
 
13
- ### Configure
17
+ ### Configuration
14
18
 
15
- You need to define the supported versions in your Rails application.rb file as
16
- ```view_versions```. Use this config to set the range of supported API
17
- versions that can be served:
19
+ You need to define the supported versions in your Rails application.rb file as `view_versions`. Use this config to set the range of supported API versions that can be served:
18
20
 
19
21
  ```ruby
20
22
  config.view_versions = [1,3,4,5] # or (1...5)
21
- #config.view_version_extraction_strategy = :http_parameter # options = :http_header, :http_accept_parameter, :query_parameter, custom Proc
22
23
  ```
24
+ You can also define the way to extract the version. The `view_version_extraction_strategy` allows you to set one of the default strategies or provide a proc to set your own. You can also pass it a prioritized array of the strategies.
25
+ ```ruby
26
+ config.view_version_extraction_strategy = :http_parameter # [:http_header, :http_accept_parameter, :query_parameter]
27
+ ```
28
+ These are the default strategies:
29
+ - **http_header**: Api version HTTP header ie. ```API-Version: 1```
30
+ - **http_accept_parameter**: HTTP Accept header ie. ```Accept: application/xml; version=1``` [why do this?](http://blog.steveklabnik.com/posts/2011-07-03-nobody-understands-rest-or-http#i_want_my_api_to_be_versioned)
31
+ - **query_parameter**: version in the url query parameter, for testing or to override for special case ie. ```http://localhost:3000/posts.json?api_version=1```
32
+ - **custom**: `lambda {|request| request.headers["HTTP_X_API_VERSION"].to_i }` takes the request object and must return an integer
23
33
 
24
34
  ### Version your views
25
35
 
26
- When a client makes a request to your controller the latest version of the
27
- view will be rendered. The latest version is determined by naming the template
28
- or partial with a version number that you configured to support.
36
+ When a client makes a request to your controller the latest version of the view will be rendered. The latest version is determined by naming the template or partial with a version number that you configured to support.
29
37
 
30
38
  ```
31
39
  - app/views/posts
@@ -39,37 +47,31 @@ or partial with a version number that you configured to support.
39
47
  - _form.html.erb
40
48
  ```
41
49
 
42
- If you start supporting a newer version, v3 for instance, a request for the latest
43
- version of posts/show will gracefully degrade to the latest support available
44
- version, in this case posts/show.v2.json.jbuilder.
50
+ If you start supporting a newer version, v3 for instance, you do not have to copy posts/show.v2 to posts/show.v3. By default, the request for v3 or higher will gracefully degrade to the view that is the newest, supported version, in this case posts/show.v2.
51
+
52
+ ### Controller
53
+
54
+ You don't need to do anything special in your controller, but if you find that you want to perform some tasks for a specific version you can use `requested_version` and `latest_version`. This may be updated in the [near future](https://github.com/bwillis/versioncake/issues/1).
45
55
 
46
56
  ### Client requests
47
57
 
48
- When a client makes a request it will automatically receive the latest supported
49
- version of the view. The client can also request for a specific version by one of three
50
- strategies configured by ``view_version_extraction_strategy``:
58
+ When a client makes a request it will automatically receive the latest supported version of the view. The client can also request for a specific version by one of the strategies configured by ``view_version_extraction_strategy``.
51
59
 
52
- - http_header: Api version HTTP header ie. ```API-Version: 1```
53
- - http_accept_parameter: HTTP Accept header ie. ```Accept: application/xml; version=1```
54
- - http://blog.steveklabnik.com/posts/2011-07-03-nobody-understands-rest-or-http#i_want_my_api_to_be_versioned
55
- - query_parameter: version in the url query parameter ie. ```http://localhost:3000/posts.json?api_version=1```
60
+ # Related Material
56
61
 
57
- A custom strategy is available by providing a proc to the ``view_version_extraction_strategy`` configuration. It
58
- takes a single parameter of the current request and must return an integer.
62
+ ## Libraries
59
63
 
60
- ```ruby
61
- Proc.new { |request| request.headers["HTTP_X_API_MAGIC"].to_i }
62
- ```
64
+ - https://github.com/bploetz/versionist
65
+ - https://github.com/filtersquad/rocket_pants
63
66
 
64
- ## Development Work
67
+ ## Discussions
65
68
 
66
- 1. Finish convertion of Rspec tests to TestUnit
67
- 2. Syntatic sugar controller helpers to detect the version - interface discussion: https://github.com/bwillis/versioncake/commit/3dbdaf612ff99676c499a456f3e858e22382e76b#commitcomment-1847368
68
- 3. Log the version requested in the logs
69
+ - [Steve Klabnik on how to version in a resful way](http://blog.steveklabnik.com/posts/2011-07-03-nobody-understands-rest-or-http#i_want_my_api_to_be_versioned)
70
+ - [Rails API project disucssion on versioning](https://github.com/spastorino/rails-api/issues/8)
69
71
 
70
- # Similar Libraries
72
+ # Questions?
71
73
 
72
- - https://github.com/bploetz/versionist
74
+ Create a bug/enhancement/question on github or contact [aantix](https://github.com/aantix) or [bwillis](https://github.com/bwillis) through github.
73
75
 
74
76
  # License
75
77
 
data/Rakefile CHANGED
@@ -1,31 +1,17 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
2
 
3
3
  require 'rake/dsl_definition'
4
- require "bundler"
4
+ require 'bundler'
5
5
  Bundler.setup
6
6
 
7
- require "rspec"
8
- require "rspec/core/rake_task"
9
7
  require 'rake/testtask'
10
8
 
11
- $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
12
-
13
9
  Bundler::GemHelper.install_tasks
14
10
 
15
- task :default => :spec
16
-
17
- RSpec::Core::RakeTask.new(:spec) do |spec|
18
- spec.pattern = 'spec/**/*_spec.rb'
19
- end
20
-
21
- $: << "."
22
- $: << "./test"
11
+ task :default => :test
23
12
 
24
13
  Rake::TestTask.new do |i|
25
- #i.libs << '.'
26
14
  i.libs << 'test'
27
15
  i.test_files = FileList['test/**/*_test.rb']
28
- #i.test_files = FileList['test/test_*.rb']
29
- #i.test_files = FileList.new('test/**/*_test.rb')
30
16
  i.verbose = true
31
17
  end
@@ -1,3 +1,3 @@
1
1
  module VersionCake
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,34 @@
1
+ require "test_helper"
2
+
3
+ class VersionRenderTest < ActiveSupport::TestCase
4
+
5
+ def setup
6
+ path = ActionView::FileSystemResolver.new(FIXTURE_LOAD_PATH)
7
+ view_paths = ActionView::PathSet.new([path])
8
+ @view = ActionView::Base.new(view_paths)
9
+ end
10
+
11
+ def test_regression_renders_unversioned_template
12
+ @view.lookup_context.versions = [:v0]
13
+ assert_equal "template", @view.render(:template => "templates/versioned")
14
+ end
15
+
16
+ def test_render_template_defaults_to_latest_template_version
17
+ assert_equal "template v3", @view.render(:template => "templates/versioned")
18
+ end
19
+
20
+ def test_render_template_with_parameter_version_override
21
+ assert_equal "template v1", @view.render(:template => "templates/versioned", :versions => :v1)
22
+ end
23
+
24
+ def test_render_template_with_legacy_version
25
+ @view.lookup_context.versions = [:v2]
26
+ assert_equal "template v2", @view.render(:template => "templates/versioned")
27
+ end
28
+
29
+ def test_render_template_gracefully_degrades
30
+ @view.lookup_context.versions = [:v4,:v3,:v2,:v1]
31
+ assert_equal "template v3", @view.render(:template => "templates/versioned")
32
+ end
33
+
34
+ end
data/test/test_helper.rb CHANGED
@@ -9,24 +9,9 @@ require 'rails/all'
9
9
  require 'rails/test_help'
10
10
  require 'test/unit'
11
11
 
12
-
13
12
  require File.expand_path('../config/application', __FILE__)
14
13
 
15
- $LOAD_PATH.unshift(File.dirname(__FILE__))
16
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
17
-
18
- root = File.expand_path(File.dirname(__FILE__))
19
-
20
- class ActiveSupport::TestCase
21
- # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
22
- #
23
- # Note: You'll currently still have to declare fixtures explicitly in integration tests
24
- # -- they do not yet inherit this setting
25
- fixtures :all
26
-
27
- # Add more helper methods to be used by all tests here...
28
- end
29
-
30
- RendersTest::Application.initialize!
14
+ FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures')
15
+ FIXTURES = Pathname.new(FIXTURE_LOAD_PATH)
31
16
 
32
- Dir.glob(File.dirname(__FILE__) + "/app/controllers/**/*").each{|f| require(f) if File.file?(f)}
17
+ RendersTest::Application.initialize!
data/versioncake.gemspec CHANGED
@@ -11,13 +11,16 @@ Gem::Specification.new do |s|
11
11
  s.summary = %q{Easily render versions of your rails views.}
12
12
  s.description = %q{Render versioned views automagically based on the clients requested version.}
13
13
 
14
- #s.rubyforge_project = ""
15
-
16
14
  s.files = `git ls-files`.split("\n")
17
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ s.test_files = `git ls-files -- {test}/*`.split("\n")
18
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
17
  s.require_paths = ["lib"]
20
18
 
21
- s.add_development_dependency "rspec-rails"
19
+ s.add_dependency('actionpack', '>= 3.0')
20
+ s.add_dependency('activesupport', '>= 3.0')
21
+ s.add_dependency('railties', '>= 3.0')
22
+
23
+ s.add_development_dependency "test-unit"
22
24
  s.add_development_dependency "mocha"
25
+
23
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: versioncake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,10 +10,58 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-09-13 00:00:00.000000000Z
13
+ date: 2012-09-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: rspec-rails
16
+ name: actionpack
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '3.0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: activesupport
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '3.0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '3.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: railties
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '3.0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: test-unit
17
65
  requirement: !ruby/object:Gem::Requirement
18
66
  none: false
19
67
  requirements:
@@ -66,30 +114,6 @@ files:
66
114
  - lib/versioncake/action_view/template.rb
67
115
  - lib/versioncake/action_view/versions.rb
68
116
  - lib/versioncake/version.rb
69
- - spec/app/controllers/renders_controller.rb
70
- - spec/app/views/renders/index.html.erb
71
- - spec/app/views/renders/index.v1.html.erb
72
- - spec/app/views/renders/index.v2.html.erb
73
- - spec/config.ru
74
- - spec/config/application.rb
75
- - spec/config/database.yml
76
- - spec/config/routes.rb
77
- - spec/db/test.sqlite3
78
- - spec/fixtures/partials/_versioned.erb
79
- - spec/fixtures/partials/_versioned.v1.erb
80
- - spec/fixtures/partials/_versioned.v2.erb
81
- - spec/fixtures/partials/_versioned.v3.erb
82
- - spec/fixtures/partials/another_versioned_partial.erb
83
- - spec/fixtures/partials/another_versioned_partial.v1.erb
84
- - spec/fixtures/templates/unversioned.html.erb
85
- - spec/fixtures/templates/versioned.html.erb
86
- - spec/fixtures/templates/versioned.v1.html.erb
87
- - spec/fixtures/templates/versioned.v2.html.erb
88
- - spec/fixtures/templates/versioned.v3.html.erb
89
- - spec/script/rails
90
- - spec/spec_helper.rb
91
- - spec/template/render_spec.rb
92
- - spec/template/resolver_spec.rb
93
117
  - test/app/controllers/renders_controller.rb
94
118
  - test/app/views/renders/index.html.erb
95
119
  - test/app/views/renders/index.v1.html.erb
@@ -99,8 +123,20 @@ files:
99
123
  - test/config/database.yml
100
124
  - test/config/routes.rb
101
125
  - test/db/test.sqlite3
126
+ - test/fixtures/partials/_versioned.erb
127
+ - test/fixtures/partials/_versioned.v1.erb
128
+ - test/fixtures/partials/_versioned.v2.erb
129
+ - test/fixtures/partials/_versioned.v3.erb
130
+ - test/fixtures/partials/another_versioned_partial.erb
131
+ - test/fixtures/partials/another_versioned_partial.v1.erb
132
+ - test/fixtures/templates/unversioned.html.erb
133
+ - test/fixtures/templates/versioned.html.erb
134
+ - test/fixtures/templates/versioned.v1.html.erb
135
+ - test/fixtures/templates/versioned.v2.html.erb
136
+ - test/fixtures/templates/versioned.v3.html.erb
102
137
  - test/functional/renders_controller_test.rb
103
138
  - test/script/rails
139
+ - test/template/render_test.rb
104
140
  - test/test_helper.rb
105
141
  - versioncake.gemspec
106
142
  homepage: https://github.com/bwillis/versioncake
@@ -123,44 +159,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
159
  version: '0'
124
160
  requirements: []
125
161
  rubyforge_project:
126
- rubygems_version: 1.8.19
162
+ rubygems_version: 1.8.24
127
163
  signing_key:
128
164
  specification_version: 3
129
165
  summary: Easily render versions of your rails views.
130
- test_files:
131
- - spec/app/controllers/renders_controller.rb
132
- - spec/app/views/renders/index.html.erb
133
- - spec/app/views/renders/index.v1.html.erb
134
- - spec/app/views/renders/index.v2.html.erb
135
- - spec/config.ru
136
- - spec/config/application.rb
137
- - spec/config/database.yml
138
- - spec/config/routes.rb
139
- - spec/db/test.sqlite3
140
- - spec/fixtures/partials/_versioned.erb
141
- - spec/fixtures/partials/_versioned.v1.erb
142
- - spec/fixtures/partials/_versioned.v2.erb
143
- - spec/fixtures/partials/_versioned.v3.erb
144
- - spec/fixtures/partials/another_versioned_partial.erb
145
- - spec/fixtures/partials/another_versioned_partial.v1.erb
146
- - spec/fixtures/templates/unversioned.html.erb
147
- - spec/fixtures/templates/versioned.html.erb
148
- - spec/fixtures/templates/versioned.v1.html.erb
149
- - spec/fixtures/templates/versioned.v2.html.erb
150
- - spec/fixtures/templates/versioned.v3.html.erb
151
- - spec/script/rails
152
- - spec/spec_helper.rb
153
- - spec/template/render_spec.rb
154
- - spec/template/resolver_spec.rb
155
- - test/app/controllers/renders_controller.rb
156
- - test/app/views/renders/index.html.erb
157
- - test/app/views/renders/index.v1.html.erb
158
- - test/app/views/renders/index.v2.html.erb
159
- - test/config.ru
160
- - test/config/application.rb
161
- - test/config/database.yml
162
- - test/config/routes.rb
163
- - test/db/test.sqlite3
164
- - test/functional/renders_controller_test.rb
165
- - test/script/rails
166
- - test/test_helper.rb
166
+ test_files: []
@@ -1,4 +0,0 @@
1
- class RendersController < ActionController::Base
2
- def index
3
- end
4
- end
@@ -1 +0,0 @@
1
- index.html.erb
@@ -1 +0,0 @@
1
- index.v1.html.erb
@@ -1 +0,0 @@
1
- index.v2.html.erb
@@ -1,13 +0,0 @@
1
- module RendersTest
2
- class Application < Rails::Application
3
- config.encoding = "utf-8"
4
- config.filter_parameters += [:password]
5
- config.active_support.escape_html_entities_in_json = true
6
- config.active_record.whitelist_attributes = true
7
- config.assets.enabled = true
8
- config.assets.version = '1.0'
9
- config.active_support.deprecation = :stderr
10
- config.view_versions = (1..4)
11
- config.view_version_extraction_strategy = :http_header
12
- end
13
- end
@@ -1,4 +0,0 @@
1
- test:
2
- adapter: sqlite3
3
- database: db/test.sqlite3
4
- timeout: 5000
@@ -1,3 +0,0 @@
1
- RendersTest::Application.routes.draw do
2
- resources :renders
3
- end
data/spec/config.ru DELETED
File without changes
data/spec/db/test.sqlite3 DELETED
File without changes
data/spec/script/rails DELETED
File without changes
data/spec/spec_helper.rb DELETED
@@ -1,27 +0,0 @@
1
- require 'bundler'
2
- Bundler.require
3
-
4
- require 'versioncake'
5
- require 'rspec'
6
- require 'rails/all'
7
- require 'rspec/rails'
8
- require 'config/application'
9
-
10
- $LOAD_PATH.unshift(File.dirname(__FILE__))
11
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
12
-
13
- ENV["RAILS_ENV"] ||= 'test'
14
-
15
- root = File.expand_path(File.dirname(__FILE__))
16
-
17
- # Initialize the application
18
- RendersTest::Application.initialize!
19
-
20
- RSpec.configure do |config|
21
- config.mock_with :mocha
22
- end
23
-
24
- FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures')
25
- FIXTURES = Pathname.new(FIXTURE_LOAD_PATH)
26
-
27
- Dir.glob(File.dirname(__FILE__) + "/app/controllers/**/*").each{|f| require(f) if File.file?(f)}
@@ -1,34 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "RenderTestCases" do
4
-
5
- before do
6
- path = ActionView::FileSystemResolver.new(FIXTURE_LOAD_PATH)
7
- view_paths = ActionView::PathSet.new([path])
8
- @view = ActionView::Base.new(view_paths,{})
9
- end
10
-
11
- it "renders the unversioned template (regression)" do
12
- @view.lookup_context.versions = [:v0]
13
- @view.render(:template => "templates/versioned").should == "template"
14
- end
15
-
16
- it "renders the latest version of the template" do
17
- @view.render(:template => "templates/versioned").should == "template v3"
18
- end
19
-
20
- it "renders the overridden version of the template" do
21
- @view.render(:template => "templates/versioned", :versions => :v1).should == "template v1"
22
- end
23
-
24
- it "renders the legacy version of the template" do
25
- @view.lookup_context.versions = [:v2]
26
- @view.render(:template => "templates/versioned").should == "template v2"
27
- end
28
-
29
- it "renders the latest available version of the requested template" do
30
- @view.lookup_context.versions = [:v4,:v3,:v2,:v1]
31
- @view.render(:template => "templates/versioned").should == "template v3"
32
- end
33
-
34
- end
@@ -1,12 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "Resolver" do
4
-
5
- it "extracts the correct handler and format from a versioned template" do
6
- resolver = ActionView::PathResolver.new
7
- handler, format = resolver.send "extract_handler_and_format", "/some/path/to/app/views/index.v1.xml.builder", nil
8
- handler.class.should == ActionView::Template::Handlers::Builder
9
- format.should == "application/xml"
10
- end
11
-
12
- end