From 41cf83c525053a7e6d2124e173b8a4e14295781b Mon Sep 17 00:00:00 2001 From: Gibheer Date: Fri, 16 Nov 2012 18:11:49 +0100 Subject: [PATCH] added specs for Renderer.transform --- lib/zero/renderer.rb | 4 ++-- spec/unit/renderer/transform_spec.rb | 32 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 spec/unit/renderer/transform_spec.rb diff --git a/lib/zero/renderer.rb b/lib/zero/renderer.rb index 3be7d6e..740d156 100644 --- a/lib/zero/renderer.rb +++ b/lib/zero/renderer.rb @@ -76,8 +76,8 @@ module Zero # @api private # @param string [String] the original type name # @return [String] the shorter representation or the original - def transform(string) - return map[string] if map.has_key?(string) + def self.transform(string) + return type_map[string] if type_map.has_key?(string) string end diff --git a/spec/unit/renderer/transform_spec.rb b/spec/unit/renderer/transform_spec.rb new file mode 100644 index 0000000..fce6730 --- /dev/null +++ b/spec/unit/renderer/transform_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' + +describe Zero::Renderer, '.transform' do + subject { Zero::Renderer } + let(:map) {{ 'text/html' => 'html' }} + + shared_examples_for 'a transformer' do + before :each do + Zero::Renderer.type_map = map + end + + after :each do + Zero::Renderer.type_map = {} + end + + it "transforms a string" do + subject.transform(original).should eq(result) + end + end + + context "with a shortable type" do + let(:original) { 'text/html' } + let(:result) { 'html' } + it_behaves_like 'a transformer' + end + + context "with an unshortable type" do + let(:original) { 'application/json' } + let(:result) { 'application/json' } + it_behaves_like 'a transformer' + end +end