response_mate-nanoc 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MGQzNGFkYTMyZjUzMzY0NDAwNGU3ZWFjNjI1MjAyOGQ0YjJjMTEyYw==
5
+ data.tar.gz: !binary |-
6
+ ZWE1M2Y2NTBiNzViMDA5NzhiNmE3M2NkMzY1MzU2YTM1ZGVlOTA0Ng==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MjEyNzliNWM3MjIwODA0YjdhYjk1M2RiNDYwNjg3NDY4N2ZjYzA3OTE5NzZh
10
+ MDM5NGY5YmUyMmZkMGI1NGJiOTFjNjU3ODU5MzY4NWI4YjNlNmU4NjAyZjg2
11
+ MjQzZmFiYmJkNzZhOGQyNTg4ZmZhM2NmMTQ0YmM5YTk1N2Q1NTE=
12
+ data.tar.gz: !binary |-
13
+ ZjdhZTIxOGJlYTRiMTA2NTA4MmFjOGQyN2Y3OGVhOTEwMmNkZmJhNTNiZTM5
14
+ YzEyMGZlNjJmMDZjMDhkZGU2NWQ3NTQzNzFlZjY2YWE0YzQ5NGFiZGRhYmNj
15
+ NzFiMjQzZWQxZGEyZDY5ZDYzMDFkZWYxYWJhMjYyMGU5YzI1YjU=
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+ source 'https://rubygems.skroutz.gr'
3
+
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env rake
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
5
+ require 'rspec/core/rake_task'
6
+
7
+ desc 'Run RSpec'
8
+ RSpec::Core::RakeTask.new(:test) do |spec|
9
+ spec.pattern = 'spec/**/*_spec.rb'
10
+ spec.rspec_opts = ['--color', '--format nested']
11
+ end
12
+
13
+ task :default => :test
@@ -0,0 +1,4 @@
1
+ require 'active_support/all'
2
+
3
+ require 'response_mate/nanoc/version'
4
+ require 'response_mate/nanoc/formatter'
@@ -0,0 +1,152 @@
1
+ require 'yaml'
2
+
3
+ module ResponseMate
4
+ module Nanoc
5
+ module Formatter
6
+ FILTERED_PARAMS = [:oauth_token]
7
+
8
+ def recordings_path
9
+ ResponseMate.configuration.output_dir
10
+ end
11
+
12
+ # @param recording_key <String, Symbol> the key matching a recording in
13
+ # recordings
14
+ # @param options [Hash] options for rendering
15
+ # @option options [Array] :only defines which elements should be created
16
+ # The possible values are:
17
+ # :request -> creates html with request verb, path and params used
18
+ # :description -> creates html with description specified in recordings
19
+ # file (under :meta => :description key)
20
+ # :status -> The response status code (200, 400 etc)
21
+ # :body -> The actual response body
22
+ #
23
+ # @return html for the specified recording
24
+ def render_recording(recording_key, options = {})
25
+ recording = load_recording(recording_key)
26
+
27
+ if !options[:only]
28
+ options[:only] = [:request, :description, :status, :body]
29
+ end
30
+
31
+ result = '<div class="example">'
32
+ result << format_request(recording) if options[:only].include?(:request)
33
+ result << add_toggler
34
+ result << format_description(recording) if options[:only].include?(:description)
35
+ result << format_response(recording, options)
36
+ result << '</div>'
37
+
38
+ result
39
+ end
40
+
41
+ def load_recording(key)
42
+ filename = File.join(recordings_path, "#{key}.yml")
43
+
44
+ if !File.exists?(filename)
45
+ raise "#{key} key was not found. Try Running `response_mate record`."\
46
+ "Use `response_mate list recordings` to view available keys"
47
+ end
48
+
49
+ recording = YAML.load_file(filename)
50
+
51
+ recording.symbolize_keys
52
+ end
53
+
54
+ def json(key)
55
+ hash = case key
56
+ when Hash
57
+ h = {}
58
+ key.each { |k, v| h[k.to_s] = v }
59
+ h
60
+ when Array
61
+ key
62
+ else Resources.const_get(key.to_s.upcase)
63
+ end
64
+
65
+ hash = yield hash if block_given?
66
+
67
+ %(<pre class="highlight"><code class="language-javascript">) +
68
+ JSON.pretty_generate(hash) + "</code></pre>"
69
+ end
70
+
71
+ def prepared_response(key)
72
+ response = YAML.load_file("./output/responses/#{key}.yml")
73
+ headers_output = headers(response[:status])
74
+ body_content = JSON.pretty_generate(JSON.parse(response[:body]))
75
+ body_output = %(<pre class="highlight"><code class="language-javascript">) +
76
+ body_content + "</code></pre>"
77
+
78
+ headers_output + body_output
79
+ end
80
+
81
+ def text_html(response, status, head = {})
82
+ hs = headers(status, head.merge('Content-Type' => 'text/html'))
83
+ res = CGI.escapeHTML(response)
84
+ hs + %(<pre class="highlight"><code>) + res + "</code></pre>"
85
+ end
86
+
87
+ def headers(status, head = {})
88
+ css_class = (status == 204 || status == 404) ? 'headers no-response' : 'headers'
89
+ lines = ["Status: #{ResponseMate::Http::STATUS_CODES[status]}"]
90
+ %(<pre class="#{css_class}"><code>#{lines * "\n"}</code></pre>\n)
91
+ end
92
+
93
+ private
94
+
95
+ def format_request(recording)
96
+ <<-OUT
97
+ <p class="request">
98
+ <span class="verb">#{recording[:request][:verb]}</span>
99
+ <span class="path">#{recording[:request][:path]}</span>
100
+ </p>
101
+ OUT
102
+ end
103
+
104
+ def add_toggler
105
+ '<a href="javascript:void(0)" class="toggler" data-target="js-response">view response</a>'
106
+ end
107
+
108
+ def format_response(recording, options)
109
+ out = '<div class="response">'
110
+ out << format_status(recording) if options[:only].include?(:status)
111
+ out << format_body(recording) if options[:only].include?(:body)
112
+ out << '</div>'
113
+ end
114
+
115
+ def format_params(hash)
116
+ output = '<ul class="request-params">'
117
+
118
+ output << hash.map { |k, v|
119
+ val = v.is_a?(Hash) ? format_params(v) : v
120
+ val = '[FILTERED]' if FILTERED_PARAMS.include? k.to_sym
121
+
122
+ "<li><span class=\"label\">#{k}</span>: #{val}</li>"
123
+ }.join()
124
+ output << "</ul>"
125
+
126
+ end
127
+
128
+ def format_status(recording)
129
+ %(<pre class="headers"><code>Status: #{recording[:status]}</code></pre>\n)
130
+ end
131
+
132
+ def format_body(recording)
133
+ begin
134
+ content = JSON.pretty_generate(JSON.parse(recording[:body]))
135
+ rescue JSON::ParserError
136
+ content = recording[:body]
137
+ end
138
+ %(<pre class="highlight body"><code class="language-javascript">%s</code></pre>) %
139
+ content
140
+ end
141
+
142
+ def format_description(recording)
143
+ return '' if !recording[:meta] || !recording[:meta][:description]
144
+
145
+ description = recording[:meta][:description]
146
+
147
+ "<div class='request-description'> Description: #{description}</div>"
148
+ end
149
+ end end
150
+ end
151
+
152
+ include ResponseMate::Nanoc::Formatter
@@ -0,0 +1,5 @@
1
+ module ResponseMate
2
+ module Nanoc
3
+ VERSION = '0.0.7'
4
+ end
5
+ end
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ require File.expand_path('../lib/response_mate/nanoc/version', __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'response_mate-nanoc'
6
+ s.version = ResponseMate::Nanoc::VERSION
7
+ s.date = '2012-12-20'
8
+ s.summary = %{ResponseMate for nanoc}
9
+ s.description = %{Helpers and formatters for displaying ResponseMate output in nanoc}
10
+ s.authors = ['Dimitris Karakasilis', 'Dimitris Zorbas']
11
+ s.email = 'jimmykarily@gmail.com'
12
+ s.files = `git ls-files`.split($\)
13
+ s.homepage = ''
14
+ s.license = 'MIT'
15
+
16
+ s.add_runtime_dependency 'activesupport'
17
+
18
+ s.add_development_dependency 'rake'
19
+ s.add_development_dependency 'bundler'
20
+ s.add_development_dependency 'pry'
21
+ s.add_development_dependency 'pry-nav'
22
+ s.add_development_dependency 'rspec', '~> 2.14'
23
+
24
+ s.add_dependency 'response_mate', '~> 0.1.6'
25
+ end
@@ -0,0 +1,2 @@
1
+ some_key: %this is not valid yaml
2
+
@@ -0,0 +1,31 @@
1
+ :request:
2
+ :verb: GET
3
+ :path: /skus
4
+ :params:
5
+ page: '1'
6
+ per: '3'
7
+ oauth_token: Vr/AzbfQt3ywQlKUonZk25VqRg2ILFAFV/voi69FD9xlJl5Yp9DmDWb6PAEsVwuI1KckH3aa1/vxRaj/Mbwg==
8
+ :status: 200
9
+ :headers:
10
+ link: <http://localhost:3000/api/skus?oauth_token=Vr%2FAzbfQt3ywQlKUonZk25VqRg2ILFAFV%2Fvoi69FD9xlJl5Yp9DmDWb6PAEsVwuI1KckH3aa1%2FvxRaj%2FMbwg%3D%3D&page=474564&per=3>;
11
+ rel="last", <http://localhost:3000/api/skus?oauth_token=Vr%2FAzbfQt3ywQlKUonZk25VqRg2ILFAFV%2Fvoi69FD9xlJl5Yp9DmDWb6PAEsVwuI1KckH3aa1%2FvxRaj%2FMbwg%3D%3D&page=2&per=3>;
12
+ rel="next"
13
+ content-type: application/json; charset=utf-8
14
+ x-meta-request-version: 0.2.1
15
+ x-ua-compatible: IE=Edge,chrome=1
16
+ etag: ! '"168c0d9677583c8305fb51b0543f1dda"'
17
+ cache-control: max-age=0, private, must-revalidate
18
+ x-request-id: c217576d97a588517f360dd1790e6e4b
19
+ x-runtime: '0.834211'
20
+ server: WEBrick/1.3.1 (Ruby/1.9.3/2012-11-10)
21
+ date: Fri, 20 Dec 2013 10:53:52 GMT
22
+ content-length: '2281'
23
+ connection: close
24
+ set-cookie: locale=el_GR; path=/, _helmet_couch=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWFmM2E1MjE1ZGVkYzNiNjIyYTZiMWMzNjQ5YTMyNmEzBjsAVEkiC2xvY2FsZQY7AFRJIgplbF9HUgY7AEY%3D--c4ff9c59b2235dba4ecb1e94450af6d37846d791;
25
+ path=/; expires=Thu, 20-Feb-2014 10:53:52 GMT; HttpOnly
26
+ :body: ! '{"skus":[{"id":224,"ean":"","pn":"","name":"H 500","display_name":"Motorola
27
+ H 500","category_id":435,"first_product_shop_info":"870|Media-ram","click_url":null,"price_max":47.71,"price_min":32.63,"reviewscore":0.0,"shop_count":1,"plain_spec_summary":null,"active_products_count":1,"main_picture":{"small_url":"http://d.scdn.gr/images/sku_main_images/000000/224/small_Motorola-H-500.jpeg","original_url":"http://b.scdn.gr/images/sku_main_images/000000/224/medium_Motorola-H-500.jpeg","tiny_url":"http://a.scdn.gr/images/sku_main_images/000000/224/tiny_Motorola-H-500.jpeg","medium_url":"http://b.scdn.gr/images/sku_main_images/000000/224/medium_Motorola-H-500.jpeg","datamart_url":"http://b.scdn.gr/images/sku_main_images/000000/224/Motorola-H-500.jpeg"},"manufacturer_id":27},{"id":403,"ean":null,"pn":null,"name":"T-104","display_name":"Brother
28
+ T-104","category_id":66,"first_product_shop_info":null,"click_url":null,"price_max":73.9,"price_min":69.9,"reviewscore":0.0,"shop_count":3,"plain_spec_summary":null,"active_products_count":3,"main_picture":{"small_url":"http://d.scdn.gr/images/sku_main_images/000000/403/small_Brother-T-104.jpeg","original_url":"http://c.scdn.gr/images/sku_main_images/000000/403/medium_Brother-T-104.jpeg","tiny_url":"http://b.scdn.gr/images/sku_main_images/000000/403/tiny_Brother-T-104.jpeg","medium_url":"http://c.scdn.gr/images/sku_main_images/000000/403/medium_Brother-T-104.jpeg","datamart_url":"http://c.scdn.gr/images/sku_main_images/000000/403/Brother-T-104.jpeg"},"manufacturer_id":46},{"id":404,"ean":null,"pn":null,"name":"T-106","display_name":"Brother
29
+ T-106","category_id":66,"first_product_shop_info":null,"click_url":null,"price_max":122.9,"price_min":122.0,"reviewscore":0.0,"shop_count":2,"plain_spec_summary":null,"active_products_count":2,"main_picture":{"small_url":"http://c.scdn.gr/images/sku_main_images/000000/404/small_Brother-T-106.jpeg","original_url":"http://d.scdn.gr/images/sku_main_images/000000/404/medium_Brother-T-106.jpeg","tiny_url":"http://c.scdn.gr/images/sku_main_images/000000/404/tiny_Brother-T-106.jpeg","medium_url":"http://d.scdn.gr/images/sku_main_images/000000/404/medium_Brother-T-106.jpeg","datamart_url":"http://c.scdn.gr/images/sku_main_images/000000/404/Brother-T-106.jpeg"},"manufacturer_id":46}]}'
30
+ :meta:
31
+ :description: This is the description
@@ -0,0 +1,28 @@
1
+ :request:
2
+ :verb: GET
3
+ :path: /skus
4
+ :params:
5
+ page: '1'
6
+ per: '3'
7
+ oauth_token: Vr/AzbfQt3ywQlKUonZk25VqRg2ILFAFV/voi69FD9xlJl5Yp9DmDWb6PAEsVwuI1KckH3aa1/vxRaj/Mbwg==
8
+ :status: 200
9
+ :headers:
10
+ link: <http://localhost:3000/api/skus?oauth_token=Vr%2FAzbfQt3ywQlKUonZk25VqRg2ILFAFV%2Fvoi69FD9xlJl5Yp9DmDWb6PAEsVwuI1KckH3aa1%2FvxRaj%2FMbwg%3D%3D&page=474564&per=3>;
11
+ rel="last", <http://localhost:3000/api/skus?oauth_token=Vr%2FAzbfQt3ywQlKUonZk25VqRg2ILFAFV%2Fvoi69FD9xlJl5Yp9DmDWb6PAEsVwuI1KckH3aa1%2FvxRaj%2FMbwg%3D%3D&page=2&per=3>;
12
+ rel="next"
13
+ content-type: application/json; charset=utf-8
14
+ x-meta-request-version: 0.2.1
15
+ x-ua-compatible: IE=Edge,chrome=1
16
+ etag: ! '"168c0d9677583c8305fb51b0543f1dda"'
17
+ cache-control: max-age=0, private, must-revalidate
18
+ x-request-id: c217576d97a588517f360dd1790e6e4b
19
+ x-runtime: '0.834211'
20
+ server: WEBrick/1.3.1 (Ruby/1.9.3/2012-11-10)
21
+ date: Fri, 20 Dec 2013 10:53:52 GMT
22
+ content-length: '2281'
23
+ connection: close
24
+ set-cookie: locale=el_GR; path=/, _helmet_couch=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWFmM2E1MjE1ZGVkYzNiNjIyYTZiMWMzNjQ5YTMyNmEzBjsAVEkiC2xvY2FsZQY7AFRJIgplbF9HUgY7AEY%3D--c4ff9c59b2235dba4ecb1e94450af6d37846d791;
25
+ path=/; expires=Thu, 20-Feb-2014 10:53:52 GMT; HttpOnly
26
+ :body: This is a string body
27
+ :meta:
28
+ :description: This is the description
@@ -0,0 +1,119 @@
1
+ require 'spec_helper'
2
+
3
+ describe ResponseMate::Nanoc::Formatter do
4
+ let(:recordings_path) do
5
+ File.join(fixtures_path, 'recordings')
6
+ end
7
+
8
+ before do
9
+ ResponseMate::Configuration.any_instance.stub(:output_dir).
10
+ and_return(recordings_path)
11
+ end
12
+
13
+ describe "#load_recording" do
14
+ context "when the requested key does not exist" do
15
+ let(:key) { :non_existent_recording }
16
+
17
+ it "raises error" do
18
+ expect {
19
+ load_recording(key)
20
+ }.to raise_error(/key was not found/)
21
+ end
22
+ end
23
+
24
+ context "when the requested key exists" do
25
+ context "when it does not match a valid yml file" do
26
+ let(:key) { :invalid_yml }
27
+
28
+ it "raises error" do
29
+ expect {
30
+ load_recording(key)
31
+ }.to raise_error(/invalid_yml\.yml/)
32
+ end
33
+ end
34
+
35
+ context "when it matches a valid yml file" do
36
+ let(:key) { :skus_index }
37
+
38
+ it "doesn't raise error" do
39
+ expect {
40
+ load_recording(key)
41
+ }.to_not raise_error
42
+ end
43
+
44
+ it "returns the file parsed" do
45
+ expect(load_recording(key)).to eq(
46
+ YAML.load_file(
47
+ File.join(recordings_path, "#{key}.yml")
48
+ ).symbolize_keys
49
+ )
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ describe "#render_recording" do
56
+ let(:key) { :skus_index }
57
+
58
+ it "calls load_recording with the same key" do
59
+ should_receive(:load_recording).with(:skus_index).and_call_original
60
+
61
+ render_recording(:skus_index)
62
+ end
63
+
64
+ context "when :request exists in options[:only]" do
65
+ let(:options) { { only: [:request] } }
66
+
67
+ it "renders request from yaml file" do
68
+ render_recording(key, options).should match(/verb.*path.*params/)
69
+ end
70
+ end
71
+
72
+ context "when :status exists in options[:only]" do
73
+ let(:options) { { only: [:status] } }
74
+
75
+ it "renders status from yaml file" do
76
+ render_recording(key, options).should match(/Status: 200/)
77
+ end
78
+ end
79
+
80
+ context "when :description exists in options[:only]" do
81
+ let(:options) { { only: [:description] } }
82
+
83
+ it "renders description from yaml file" do
84
+ render_recording(key, options).should match(/This is the description/)
85
+ end
86
+ end
87
+
88
+ context "when :body exists in options[:only]" do
89
+ let(:options) { { only: [:body] } }
90
+
91
+ context "when body is a string" do
92
+ let(:key) { :skus_index_with_string_body }
93
+
94
+ it "renders body" do
95
+ subject.render_recording(key, options).should match(/This is a string body/)
96
+ end
97
+ end
98
+
99
+ context "when body is JSON" do
100
+ it "renders body prettyfied" do
101
+ expected_string =
102
+ JSON.pretty_generate(
103
+ JSON.parse(subject.load_recording(key)[:body]))
104
+
105
+ subject.render_recording(key, options).should match(
106
+ /#{Regexp.escape(expected_string)}/)
107
+ end
108
+ end
109
+ end
110
+
111
+ context "more that one key exist in options[:only]" do
112
+ let(:options) { { only: [:request, :status] } }
113
+
114
+ it "renders all keys" do
115
+ subject.render_recording(key, options).should match(/verb.*path.*params.*Status: 200/)
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe ResponseMate::Nanoc do
4
+ it 'has a version number' do
5
+ expect(ResponseMate::Nanoc::VERSION).to be_present
6
+ end
7
+ end
@@ -0,0 +1,17 @@
1
+ require 'response_mate'
2
+ require 'response_mate/nanoc'
3
+
4
+ RSpec.configure do |config|
5
+ # Use color in STDOUT
6
+ config.color_enabled = true
7
+
8
+ # Use color not only in STDOUT but also in pagers and files
9
+ config.tty = true
10
+
11
+ # Use the specified formatter
12
+ config.formatter = :documentation # :progress, :html, :textmate
13
+ end
14
+
15
+ def fixtures_path
16
+ File.expand_path('spec/fixtures')
17
+ end
metadata ADDED
@@ -0,0 +1,156 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: response_mate-nanoc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
+ platform: ruby
6
+ authors:
7
+ - Dimitris Karakasilis
8
+ - Dimitris Zorbas
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ type: :runtime
16
+ prerelease: false
17
+ name: activesupport
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ! '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ type: :development
30
+ prerelease: false
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ type: :development
44
+ prerelease: false
45
+ name: bundler
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ! '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ type: :development
58
+ prerelease: false
59
+ name: pry
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ type: :development
72
+ prerelease: false
73
+ name: pry-nav
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ type: :development
86
+ prerelease: false
87
+ name: rspec
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ version: '2.14'
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ~>
96
+ - !ruby/object:Gem::Version
97
+ version: '2.14'
98
+ - !ruby/object:Gem::Dependency
99
+ type: :runtime
100
+ prerelease: false
101
+ name: response_mate
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ~>
105
+ - !ruby/object:Gem::Version
106
+ version: 0.1.6
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: 0.1.6
112
+ description: Helpers and formatters for displaying ResponseMate output in nanoc
113
+ email: jimmykarily@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - .gitignore
119
+ - Gemfile
120
+ - Rakefile
121
+ - lib/response_mate/nanoc.rb
122
+ - lib/response_mate/nanoc/formatter.rb
123
+ - lib/response_mate/nanoc/version.rb
124
+ - response_mate-nanoc.gemspec
125
+ - spec/fixtures/recordings/invalid_yml.yml
126
+ - spec/fixtures/recordings/skus_index.yml
127
+ - spec/fixtures/recordings/skus_index_with_string_body.yml
128
+ - spec/lib/response_mate/nanoc/formatter_spec.rb
129
+ - spec/lib/response_mate/nanoc_spec.rb
130
+ - spec/spec_helper.rb
131
+ homepage: ''
132
+ licenses:
133
+ - MIT
134
+ metadata: {}
135
+ post_install_message:
136
+ rdoc_options: []
137
+ require_paths:
138
+ - lib
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ! '>='
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ required_rubygems_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ! '>='
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ requirements: []
150
+ rubyforge_project:
151
+ rubygems_version: 2.1.9
152
+ signing_key:
153
+ specification_version: 4
154
+ summary: ResponseMate for nanoc
155
+ test_files: []
156
+ has_rdoc: