gnawrnip 0.2.2 → 0.2.3

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6fe6dcc279e3f16ba816e4348d651588d0012594
4
+ data.tar.gz: 58614d16197b2f281539529b6c010f6cd609097d
5
+ SHA512:
6
+ metadata.gz: 9ad73dc09318b71443e7cf7003d1022edf4fe8095fa28cfdeefbbb22da327841f326d82ab77a0194a2d59b99e1368ccb6014d73b697729df19560460b1d77d8e
7
+ data.tar.gz: 1833ffb0f79761ca3e4eed6889e1d9c6570ddf750155bc9692f0445e216d311bdd310e012ef05e61f41f8c8ea335c7a4d477f4c1e57736caccf1a29b5e3289ba
@@ -21,7 +21,7 @@ Capybara.default_driver = :poltergeist
21
21
  Capybara.javascript_driver = :selenium
22
22
 
23
23
  Gnawrnip.configure do |c|
24
- c.frame_interval_ms = 1000
24
+ c.frame_interval_ms = 200
25
25
  c.make_animation = true
26
26
  c.max_frame_size = 1024 # pixel
27
27
  end
data/gnawrnip.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency 'capybara', "~> 2.1"
22
- spec.add_dependency 'turnip_formatter', '~> 0.2.8'
22
+ spec.add_dependency 'turnip_formatter', '~> 0.2.9'
23
23
  spec.add_dependency 'oily_png'
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
@@ -0,0 +1,49 @@
1
+ require 'gnawrnip/image'
2
+
3
+ module Gnawrnip
4
+ class Developer
5
+ def develop(file)
6
+ image = Image.new(file)
7
+ resize(image) if need_resize?
8
+ image
9
+ end
10
+
11
+ private
12
+
13
+ def resize(image)
14
+ new_width, new_height = calculate_new_size(image.width, image.height)
15
+
16
+ return if [new_width, new_height] === [image.width, image.height]
17
+
18
+ image.resize(new_width, new_height)
19
+ end
20
+
21
+ def need_resize?
22
+ !Gnawrnip.max_frame_size.nil?
23
+ end
24
+
25
+ #
26
+ # Return new frame size (width and height).
27
+ # This size is keeping original aspect ratio.
28
+ #
29
+ # @return [Array] New width and height size. [width, height]
30
+ #
31
+ def calculate_new_size(width, height)
32
+ ratio = width.to_f / height.to_f
33
+ target = Gnawrnip.max_frame_size
34
+
35
+ return [width, height] if target > [width, height].max
36
+
37
+ if ratio < 1
38
+ new_width = target * ratio
39
+ new_height = target
40
+ else
41
+ new_width = target
42
+ new_height = target / ratio
43
+ end
44
+
45
+ return [new_width, new_height]
46
+ end
47
+ end
48
+ end
49
+
@@ -0,0 +1,53 @@
1
+ require 'oily_png'
2
+
3
+ module Gnawrnip
4
+ class Image
5
+ #
6
+ # @parma [File] Screenshot image file (png)
7
+ #
8
+ def initialize(file)
9
+ @file = file
10
+ analysis
11
+ end
12
+
13
+ #
14
+ # @return [Fixnum] Width of image
15
+ #
16
+ def width
17
+ @dimension.width
18
+ end
19
+
20
+ #
21
+ # @return [Fixnum] Height of image
22
+ #
23
+ def height
24
+ @dimension.height
25
+ end
26
+
27
+ def to_base64
28
+ Base64.strict_encode64(File.read(@file.path))
29
+ end
30
+
31
+ def resize(width, height)
32
+ canvas.resample_bilinear(width, height).save(@file.path)
33
+ analysis
34
+ end
35
+
36
+ def close!
37
+ @file.close!
38
+ end
39
+
40
+ private
41
+
42
+ #
43
+ # Update dimension (OilyPNG::Dimension) of Image
44
+ #
45
+ def analysis
46
+ @dimension = canvas.dimension
47
+ end
48
+
49
+ def canvas
50
+ OilyPNG::Canvas.from_file(@file)
51
+ end
52
+ end
53
+ end
@@ -4,27 +4,26 @@ module Gnawrnip
4
4
  class Publisher
5
5
 
6
6
  #
7
- # @params [Array] paths Array of screenshot image filename
7
+ # @params [Array] images Array of Gnawrnip::Image
8
8
  #
9
- def animation(paths)
10
- paths.map { |path| image_tag(path) }.join
9
+ def animation(images)
10
+ images.map { |image| image_tag(image) }.join
11
11
  end
12
12
 
13
13
  #
14
- # @params [string] path Screenshot image filename
14
+ # @params [Gnawrnip::Image] image
15
15
  #
16
- def single(path)
17
- image_tag(path)
16
+ def single(image)
17
+ image_tag(image)
18
18
  end
19
19
 
20
20
  private
21
21
 
22
- def image_tag(path, format = :png)
23
- %Q|<img src="data:image/#{format.to_s};base64,#{image_base64(path)}"/>|
24
- end
25
-
26
- def image_base64(path)
27
- Base64.strict_encode64(File.read(path))
22
+ def image_tag(image, format = :png)
23
+ width = image.width
24
+ height = image.height
25
+ data = image.to_base64
26
+ %Q|<img width="#{width}" height="#{height}" src="data:image/#{format.to_s};base64,#{data}"/>|
28
27
  end
29
28
  end
30
29
  end
@@ -1,7 +1,7 @@
1
1
  require 'tempfile'
2
2
  require 'time'
3
3
  require 'capybara'
4
- require 'oily_png'
4
+ require 'gnawrnip/developer'
5
5
 
6
6
  module Gnawrnip
7
7
  class Screenshot
@@ -28,10 +28,7 @@ module Gnawrnip
28
28
  start_time = Time.now
29
29
 
30
30
  begin
31
- tempfile = Tempfile.new(['gnawrnip', '.png'])
32
- session.save_screenshot(tempfile.path)
33
- resize(tempfile.path) if need_resize?
34
- tempfile
31
+ shot
35
32
  rescue Capybara::NotSupportedByDriverError => e
36
33
  raise e
37
34
  rescue => e
@@ -47,39 +44,13 @@ module Gnawrnip
47
44
  Capybara.current_session
48
45
  end
49
46
 
50
- def need_resize?
51
- !Gnawrnip.max_frame_size.nil?
52
- end
53
-
54
- def resize(path)
55
- image = OilyPNG::Canvas.from_file(path)
56
- new_width, new_height = calculate_new_size(image.width, image.height)
57
-
58
- image.resample_bilinear!(new_width, new_height)
59
- image.save(path)
60
- end
61
-
62
47
  #
63
- # Return new frame size (width and height).
64
- # This size is keeping original aspect ratio.
48
+ # @return [Gnawrnip::Image]
65
49
  #
66
- # @return [Array] New width and height size. [width, height]
67
- #
68
- def calculate_new_size(width, height)
69
- ratio = width.to_f / height.to_f
70
- target = Gnawrnip.max_frame_size
71
-
72
- return [width, height] if target > [width, height].max
73
-
74
- if ratio < 1
75
- new_width = target * ratio
76
- new_height = target
77
- else
78
- new_width = target
79
- new_height = target / ratio
80
- end
81
-
82
- return [new_width, new_height]
50
+ def shot
51
+ tempfile = Tempfile.new(['gnawrnip', '.png'])
52
+ session.save_screenshot(tempfile.path)
53
+ Developer.new.develop(tempfile)
83
54
  end
84
55
  end
85
56
  end
@@ -6,16 +6,16 @@ module Gnawrnip
6
6
  module StepScreenshot
7
7
  class << self
8
8
  #
9
- # @param [Array] png_base64_list array of base64 encoded image
9
+ # @param [Array] images array of Gnawrnip::Image
10
10
  #
11
- def build(png_base64_list)
12
- case png_base64_list.length
11
+ def build(images)
12
+ case images.length
13
13
  when 0
14
14
  ''
15
15
  when 1
16
- single_image(png_base64_list.first)
16
+ single_image(images.first)
17
17
  else
18
- animation_image(png_base64_list)
18
+ animation_image(images)
19
19
  end
20
20
  end
21
21
 
@@ -25,8 +25,10 @@ module Gnawrnip
25
25
  <div class="nav">
26
26
  <div class="pager"></div>
27
27
  <div class="manipulate">
28
- <span class="play selected">&#9654;</span>
29
- <span class="stop">&#9632;</span>
28
+ <i class="fa fa-2x fa-step-backward prev"></i>
29
+ <i class="fa fa-2x fa-play play"></i>
30
+ <i class="fa fa-2x fa-pause pause"></i>
31
+ <i class="fa fa-2x fa-step-forward next"></i>
30
32
  </div>
31
33
  </div>
32
34
  <div class="slides">
@@ -49,43 +51,54 @@ end
49
51
 
50
52
  module TurnipFormatter
51
53
  Template.add_js_file('http://cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/20130801/jquery.cycle2.min.js')
54
+ Template.add_css_file('http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css')
52
55
 
53
56
  Template.add_js(<<-EOS)
54
57
  $(function() {
55
58
  $('.screenshot.animation').each(function() {
56
59
  var slide = $(this).find('.slides').cycle({
57
- timeout: 1000,
58
- autoHeight: "container",
60
+ timeout: #{Gnawrnip.frame_interval_ms},
61
+ autoHeight: "calc",
59
62
  pager: $(this).find('div.nav .pager')
60
63
  });
61
64
 
62
65
  var nav = $(this).find('div.nav');
63
- var playButton = nav.find('.play');
64
- var stopButton = nav.find('.stop');
65
-
66
- var coloringOfStopped = function() {
67
- playButton.removeClass("selected");
68
- stopButton.addClass("selected");
66
+ var playButton = nav.find('.play');
67
+ var pauseButton = nav.find('.pause');
68
+ var prevButton = nav.find('.prev');
69
+ var nextButton = nav.find('.next');
70
+
71
+ var setPauseManipulate = function() {
72
+ playButton.show();
73
+ pauseButton.hide();
74
+ prevButton.show();
75
+ nextButton.show();
69
76
  };
70
77
 
71
- var coloringOfPlaying = function() {
72
- playButton.addClass("selected");
73
- stopButton.removeClass("selected");
78
+ var setPlayManipulate = function() {
79
+ playButton.hide();
80
+ pauseButton.show();
81
+ prevButton.hide();
82
+ nextButton.hide();
74
83
  };
75
84
 
76
85
  playButton.click(function() { slide.cycle('resume'); });
77
- stopButton.click(function() { slide.cycle('pause'); });
86
+ pauseButton.click(function() { slide.cycle('pause'); });
87
+ prevButton.click(function() { slide.cycle('prev'); });
88
+ nextButton.click(function() { slide.cycle('next'); });
89
+
90
+ setPlayManipulate();
78
91
 
79
92
  slide.on('cycle-pager-activated', function(event, opts) {
80
93
  slide.cycle('pause');
81
94
  });
82
95
 
83
96
  slide.on('cycle-paused', function(event, opts) {
84
- coloringOfStopped();
97
+ setPauseManipulate();
85
98
  });
86
99
 
87
100
  slide.on('cycle-resumed', function(event, opts) {
88
- coloringOfPlaying();
101
+ setPlayManipulate();
89
102
  });
90
103
  });
91
104
  });
@@ -122,13 +135,16 @@ module TurnipFormatter
122
135
  }
123
136
 
124
137
  .manipulate {
125
- span {
138
+ margin-bottom: 1em;
139
+
140
+ i {
126
141
  color: black;
127
- font-size: 30px;
128
142
  cursor: pointer;
143
+ margin-left: 0.3em;
144
+ margin-right: 0.3em;
129
145
 
130
- &.selected {
131
- color: red;
146
+ &:hover {
147
+ color: #aa0000;
132
148
  }
133
149
  }
134
150
  }
@@ -1,3 +1,3 @@
1
1
  module Gnawrnip
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+ require 'gnawrnip/developer'
3
+
4
+ module Gnawrnip
5
+ describe Developer do
6
+ let(:developer) do
7
+ Developer.new
8
+ end
9
+
10
+ before do
11
+ Image.any_instance.stub(:analysis)
12
+ end
13
+
14
+ context 'No given Gnawrnip.max_frame_size' do
15
+ describe '.develop' do
16
+ before do
17
+ Gnawrnip.max_frame_size = nil
18
+ Developer.should_not_receive(:resize)
19
+ end
20
+
21
+ it { developer.develop(nil) }
22
+ end
23
+ end
24
+
25
+ context 'Given Gnawrnip.max_frame_size' do
26
+ context 'width larger than height.' do
27
+ describe '.develop' do
28
+ before do
29
+ Gnawrnip.max_frame_size = 300
30
+ Image.any_instance.stub(:width).and_return(640)
31
+ Image.any_instance.stub(:height).and_return(480)
32
+ Image.any_instance.should_receive(:resize).with(300, 225)
33
+ end
34
+
35
+ it { developer.develop(nil) }
36
+ end
37
+ end
38
+
39
+ context 'height larger than width.' do
40
+ describe '.develop' do
41
+ before do
42
+ Gnawrnip.max_frame_size = 400
43
+ Image.any_instance.stub(:width).and_return(480)
44
+ Image.any_instance.stub(:height).and_return(640)
45
+ Image.any_instance.should_receive(:resize).with(300, 400)
46
+ end
47
+
48
+ it { developer.develop(nil) }
49
+ end
50
+ end
51
+
52
+ context 'Given max_frame_size larger than original.' do
53
+ describe '.develop' do
54
+ before do
55
+ Gnawrnip.max_frame_size = 1024
56
+ Image.any_instance.stub(:width).and_return(640)
57
+ Image.any_instance.stub(:height).and_return(480)
58
+ Image.any_instance.should_not_receive(:resize)
59
+ end
60
+
61
+ it { developer.develop(nil) }
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+ require 'gnawrnip/image'
3
+
4
+ module Gnawrnip
5
+ describe Image do
6
+ before do
7
+ Image.any_instance.stub(:canvas).and_return(canvas)
8
+ end
9
+
10
+ let(:image) do
11
+ Image.new(GnawrnipTest.image('gnawrnip/image'))
12
+ end
13
+
14
+ context 'image size is 640x480' do
15
+ let(:canvas) do
16
+ double(dimension: dimension, save: nil)
17
+ end
18
+
19
+ let(:dimension) do
20
+ double(width: 640, height: 480)
21
+ end
22
+
23
+ describe '.width' do
24
+ subject { image.width }
25
+ it { should eql 640 }
26
+ end
27
+
28
+ describe '.height' do
29
+ subject { image.height }
30
+ it { should eql 480 }
31
+ end
32
+
33
+ describe '.resize' do
34
+ let(:canvas) do
35
+ canvas = super()
36
+ canvas.should_receive(:resample_bilinear).with(320, 240).and_return(canvas)
37
+ canvas
38
+ end
39
+
40
+ before do
41
+ Image.any_instance.should_receive(:analysis).twice
42
+ end
43
+
44
+ it { image.resize(320, 240) }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -8,6 +8,7 @@ module Gnawrnip
8
8
  end
9
9
 
10
10
  before do
11
+ Screenshot.stub(:take).and_return('foo')
11
12
  photographer.reset!
12
13
  photographer.take_shot
13
14
  photographer.take_shot
@@ -16,6 +16,7 @@ module Gnawrnip
16
16
  end
17
17
 
18
18
  before do
19
+ Gnawrnip.photographer.stub(:take_shot)
19
20
  Gnawrnip.photographer.stub(:frames) { ['aiueo', nil, 'lllll'] }
20
21
  end
21
22
 
@@ -11,8 +11,9 @@ module Gnawrnip
11
11
  end
12
12
  end
13
13
 
14
- subject { lambda { Screenshot.take } }
15
- it { should raise_error Capybara::NotSupportedByDriverError }
14
+ it 'should raise Capybara::NotSupportByDriverError' do
15
+ expect { Screenshot.take }.to raise_error Capybara::NotSupportedByDriverError
16
+ end
16
17
  end
17
18
  end
18
19
 
@@ -30,81 +31,24 @@ module Gnawrnip
30
31
  Time.stub(:now).and_return(now, now + 3)
31
32
  end
32
33
 
33
- subject do
34
- lambda {
34
+ it 'should raise Timeout Error' do
35
+ expect {
35
36
  Capybara.using_wait_time 2 do
36
37
  Screenshot.take
37
38
  end
38
- }
39
+ }.to raise_error Timeout::Error
39
40
  end
40
-
41
- it { should raise_error Timeout::Error }
42
41
  end
43
42
  end
44
43
  end
45
44
 
46
- context 'No given Gnawrnip.max_frame_size' do
45
+ context 'success screenshot' do
47
46
  describe '.take' do
48
- subject { Screenshot.take.read }
49
-
50
- context 'No given max frame size' do
51
- before do
52
- Gnawrnip.max_frame_size = nil
53
- Screenshot.should_not_receive(:resize)
54
- end
55
-
56
- it { should == "screenshot" }
57
- end
58
- end
59
- end
60
-
61
- context 'Given Gnawrnip.max_frame_size' do
62
- before do
63
- OilyPNG::Canvas.stub(:from_file) { oily_png }
64
- end
65
-
66
- subject { Screenshot.take.read }
67
-
68
- context 'width larger than height.' do
69
- let(:oily_png) do
70
- oily_png = double('oily_png', width: 640, height: 480, save: nil)
71
- oily_png.should_receive(:resample_bilinear!).with(300, 225)
72
- oily_png
73
- end
74
-
75
- before do
76
- Gnawrnip.max_frame_size = 300
77
- end
78
-
79
- it { should == "screenshot" }
80
- end
81
-
82
- context 'height larger than width.' do
83
- let(:oily_png) do
84
- oily_png = double('oily_png', width: 480, height: 640, save: nil)
85
- oily_png.should_receive(:resample_bilinear!).with(300, 400)
86
- oily_png
87
- end
88
-
89
- before do
90
- Gnawrnip.max_frame_size = 400
91
- end
92
-
93
- it { should == "screenshot" }
94
- end
95
-
96
- context 'Given max_frame_size larger than original.' do
97
- let(:oily_png) do
98
- oily_png = double('oily_png', width: 640, height: 480, save: nil)
99
- oily_png.should_receive(:resample_bilinear!).with(640, 480)
100
- oily_png
101
- end
102
-
103
47
  before do
104
- Gnawrnip.max_frame_size = 1024
48
+ Screenshot.should_receive(:shot).once
105
49
  end
106
50
 
107
- it { should == "screenshot" }
51
+ it { Screenshot.take }
108
52
  end
109
53
  end
110
54
  end
@@ -15,30 +15,26 @@ module Gnawrnip
15
15
  context 'has multiple data' do
16
16
  let(:data_list) do
17
17
  [
18
- GnawrnipTest.image('aiueo'),
19
- GnawrnipTest.image('12345'),
20
- GnawrnipTest.image('abcde')
18
+ double(to_base64: 'aiueo', width: 640, height: 480),
19
+ double(to_base64: '12345', width: 512, height: 200),
20
+ double(to_base64: 'abcde', width: 640, height: 320)
21
21
  ]
22
22
  end
23
23
 
24
24
  it 'should get image tag and source that base64 encoded' do
25
- data1 = Base64.strict_encode64('aiueo')
26
- data2 = Base64.strict_encode64('12345')
27
- data3 = Base64.strict_encode64('abcde')
28
25
  should include '<div class="screenshot animation">'
29
- should include '<img src="data:image/png;base64,' + data1 + '"/>'
30
- should include '<img src="data:image/png;base64,' + data2 + '"/>'
31
- should include '<img src="data:image/png;base64,' + data3 + '"/>'
26
+ should include '<img width="640" height="480" src="data:image/png;base64,aiueo"/>'
27
+ should include '<img width="512" height="200" src="data:image/png;base64,12345"/>'
28
+ should include '<img width="640" height="320" src="data:image/png;base64,abcde"/>'
32
29
  should include '<div class="nav">'
33
30
  end
34
31
  end
35
32
 
36
33
  context 'has single data' do
37
- let(:data_list) { [GnawrnipTest.image('aiueo')] }
34
+ let(:data_list) { [ double(to_base64: 'abcde', width: 640, height: 480) ] }
38
35
  it {
39
- data = Base64.strict_encode64('aiueo')
40
36
  should include '<div class="screenshot">'
41
- should include '<img src="data:image/png;base64,' + data + '"/></div>'
37
+ should include '<img width="640" height="480" src="data:image/png;base64,abcde"/></div>'
42
38
  should_not include '<div class="nav">'
43
39
  }
44
40
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gnawrnip
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
5
- prerelease:
4
+ version: 0.2.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Wataru MIYAGUNI
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-11-16 00:00:00.000000000 Z
11
+ date: 2013-11-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: capybara
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,39 +27,34 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: turnip_formatter
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: 0.2.8
33
+ version: 0.2.9
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: 0.2.8
40
+ version: 0.2.9
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: oily_png
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: bundler
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,49 +69,43 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rake
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: coveralls
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  description: Gnawrnip is a TurnipFormatter Add-on that provides put a screen shot
@@ -145,7 +130,9 @@ files:
145
130
  - example/web.rb
146
131
  - gnawrnip.gemspec
147
132
  - lib/gnawrnip.rb
133
+ - lib/gnawrnip/developer.rb
148
134
  - lib/gnawrnip/ext/capybara/session.rb
135
+ - lib/gnawrnip/image.rb
149
136
  - lib/gnawrnip/no_screenshot.png
150
137
  - lib/gnawrnip/photographer.rb
151
138
  - lib/gnawrnip/publisher.rb
@@ -153,6 +140,8 @@ files:
153
140
  - lib/gnawrnip/screenshot.rb
154
141
  - lib/gnawrnip/step_screenshot.rb
155
142
  - lib/gnawrnip/version.rb
143
+ - spec/gnawrnip/developer_spec.rb
144
+ - spec/gnawrnip/image_spec.rb
156
145
  - spec/gnawrnip/photographer_spec.rb
157
146
  - spec/gnawrnip/rspec_spec.rb
158
147
  - spec/gnawrnip/screenshot_spec.rb
@@ -161,35 +150,30 @@ files:
161
150
  homepage: https://github.com/gongo/gnawrnip
162
151
  licenses:
163
152
  - MIT
153
+ metadata: {}
164
154
  post_install_message:
165
155
  rdoc_options: []
166
156
  require_paths:
167
157
  - lib
168
158
  required_ruby_version: !ruby/object:Gem::Requirement
169
- none: false
170
159
  requirements:
171
- - - ! '>='
160
+ - - '>='
172
161
  - !ruby/object:Gem::Version
173
162
  version: '0'
174
- segments:
175
- - 0
176
- hash: 95231575692747815
177
163
  required_rubygems_version: !ruby/object:Gem::Requirement
178
- none: false
179
164
  requirements:
180
- - - ! '>='
165
+ - - '>='
181
166
  - !ruby/object:Gem::Version
182
167
  version: '0'
183
- segments:
184
- - 0
185
- hash: 95231575692747815
186
168
  requirements: []
187
169
  rubyforge_project:
188
- rubygems_version: 1.8.23
170
+ rubygems_version: 2.0.14
189
171
  signing_key:
190
- specification_version: 3
172
+ specification_version: 4
191
173
  summary: Add-on for TurnipFormatter with Capybara
192
174
  test_files:
175
+ - spec/gnawrnip/developer_spec.rb
176
+ - spec/gnawrnip/image_spec.rb
193
177
  - spec/gnawrnip/photographer_spec.rb
194
178
  - spec/gnawrnip/rspec_spec.rb
195
179
  - spec/gnawrnip/screenshot_spec.rb