diff options
-rw-r--r-- | lib/zero/renderer.rb | 4 | ||||
-rw-r--r-- | spec/unit/renderer/transform_spec.rb | 32 |
2 files changed, 34 insertions, 2 deletions
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 |