presto 0.0.1 → 0.6.0
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 +4 -4
- data/lib/presto/mini_magick.rb +21 -15
- data/lib/presto/transformation/validator.rb +12 -109
- data/lib/presto/transformation.rb +36 -16
- data/lib/presto/version.rb +1 -1
- data/presto.gemspec +2 -1
- data/spec/mini_magick/processor_spec.rb +4 -4
- data/spec/spec_helper.rb +5 -1
- data/spec/transformation/validator_spec.rb +69 -120
- metadata +17 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c18ef6485c81c5391cedf8c73bd98cc28642879f
|
4
|
+
data.tar.gz: c2dd380877ac9bc145cdda90cae8f4675f7f8348
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ae8f94ff4999b672dd23dffbb8d8509bfcc349749a77f20b78157b05dd32969e7a3b5db605f2584dd8a27406d21956cf07f8629f06cb5e6272cdb4810c82400
|
7
|
+
data.tar.gz: df0be1a885b6edda4c47cab7c6980550477f1cf3a54fa3aa6a133be5890107479fa35e5b28bfc278c277ed2f723ad09cada844f829702beab24bbc7620e0de49
|
data/lib/presto/mini_magick.rb
CHANGED
@@ -9,30 +9,32 @@ module Presto
|
|
9
9
|
new(params).process(image)
|
10
10
|
end
|
11
11
|
|
12
|
-
attr_reader :
|
12
|
+
attr_reader :transformation
|
13
13
|
|
14
14
|
def initialize params={}
|
15
|
-
@
|
15
|
+
@transformation = ::Presto::Transformation.new(params)
|
16
16
|
end
|
17
17
|
|
18
18
|
def process image
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
return image if trans.empty?
|
20
|
+
trans.validate!
|
21
|
+
process_fit(image) if trans[:w] || trans[:h]
|
22
|
+
process_format(image) if trans[:fm]
|
23
|
+
process_quality(image) if trans[:q]
|
22
24
|
image
|
23
25
|
end
|
24
26
|
|
25
27
|
private
|
26
28
|
|
27
29
|
def process_fit image
|
28
|
-
send("process_#{
|
30
|
+
send("process_#{trans[:fit]}_fit", image)
|
29
31
|
end
|
30
32
|
|
31
33
|
def process_crop_fit image
|
32
34
|
d = replaced_dimensions(image)
|
33
35
|
image.combine_options do |cmd|
|
34
36
|
cmd.resize "#{d.width}x#{d.height}^"
|
35
|
-
cmd.background
|
37
|
+
cmd.background trans[:bg]
|
36
38
|
cmd.gravity 'Center'
|
37
39
|
cmd.extent "#{d.width}x#{d.height}"
|
38
40
|
end
|
@@ -57,34 +59,38 @@ module Presto
|
|
57
59
|
d = replaced_dimensions(image)
|
58
60
|
image.combine_options do |cmd|
|
59
61
|
cmd.resize "#{d.width}x#{d.height}"
|
60
|
-
cmd.background
|
62
|
+
cmd.background trans[:bg]
|
61
63
|
cmd.gravity 'Center'
|
62
64
|
cmd.extent "#{d.width}x#{d.height}"
|
63
65
|
end
|
64
66
|
end
|
65
67
|
|
66
68
|
def process_format image
|
67
|
-
image.format
|
69
|
+
image.format trans[:fm]
|
68
70
|
end
|
69
71
|
|
70
72
|
def process_quality image
|
71
|
-
image.quality
|
73
|
+
image.quality trans[:q]
|
72
74
|
end
|
73
75
|
|
74
76
|
def resized_dimensions image
|
75
|
-
::Presto::Dimensions.resize(image[:width], image[:height],
|
77
|
+
::Presto::Dimensions.resize(image[:width], image[:height], trans[:w], trans[:h])
|
76
78
|
end
|
77
79
|
|
78
80
|
def replaced_dimensions image
|
79
|
-
w =
|
80
|
-
h =
|
81
|
+
w = trans[:w] || image[:width]
|
82
|
+
h = trans[:h] || image[:height]
|
81
83
|
::Presto::Dimensions.new w, h
|
82
84
|
end
|
85
|
+
|
86
|
+
def trans
|
87
|
+
transformation
|
88
|
+
end
|
83
89
|
end
|
84
90
|
|
85
91
|
module Extension
|
86
|
-
def presto
|
87
|
-
::Presto::MiniMagick::Processor.
|
92
|
+
def presto transformation={}
|
93
|
+
::Presto::MiniMagick::Processor.process(self, transformation)
|
88
94
|
end
|
89
95
|
end
|
90
96
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'presto'
|
2
|
-
require '
|
3
|
-
require 'presto/errors'
|
2
|
+
require 'veto'
|
4
3
|
|
5
4
|
module Presto
|
6
5
|
class Transformation
|
@@ -8,126 +7,30 @@ module Presto
|
|
8
7
|
HEXDECIMAL_ALPHA_REGEX = /^#[a-fA-F0-9]{8}$/
|
9
8
|
HEXDECIMAL_LONG_REGEX = /^#[a-fA-F0-9]{6}$/
|
10
9
|
HEXDECIMAL_SHORT_REGEX = /^#[a-fA-F0-9]{3}$/
|
11
|
-
|
12
10
|
FIT_TYPES = %w(clip crop scale fill max).freeze
|
13
11
|
QUALITY_MAX = 100
|
14
12
|
QUALITY_MIN = 1
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
def initialize record
|
19
|
-
@record = record
|
20
|
-
end
|
14
|
+
include Veto.validator
|
21
15
|
|
22
|
-
def
|
23
|
-
|
24
|
-
errors.empty?
|
16
|
+
def self.config
|
17
|
+
Presto.configuration
|
25
18
|
end
|
26
19
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
20
|
+
validates :w, :greater_than_or_equal_to => config.min_width, :less_than_or_equal_to => config.max_width, :unless => "w.nil?"
|
21
|
+
validates :h, :greater_than_or_equal_to => config.min_height, :less_than_or_equal_to => config.max_height, :unless => "h.nil?"
|
22
|
+
validates :fit, :presence => true, :inclusion => FIT_TYPES
|
23
|
+
validate :validate_bg_format, :unless => "bg.nil?"
|
24
|
+
validates :fm, :inclusion => config.extension_white_list, :unless => "fm.nil?"
|
25
|
+
validates :q, :greater_than_or_equal_to => QUALITY_MIN, :less_than_or_equal_to => QUALITY_MAX, :unless => "q.nil?"
|
31
26
|
|
32
27
|
private
|
33
28
|
|
34
|
-
def
|
35
|
-
|
36
|
-
validate_width_max_size! unless record.w.nil?
|
37
|
-
validate_width_min_size! unless record.w.nil?
|
38
|
-
validate_height_max_size! unless record.h.nil?
|
39
|
-
validate_height_min_size! unless record.h.nil?
|
40
|
-
validate_fit_presence!
|
41
|
-
validate_fit_inclusion!
|
42
|
-
validate_bg_format! unless record.bg.nil?
|
43
|
-
validate_format_inclusion! unless record.fm.nil?
|
44
|
-
validate_quality_max_size! unless record.q.nil?
|
45
|
-
validate_quality_min_size! unless record.q.nil?
|
46
|
-
end
|
47
|
-
|
48
|
-
def validate_width_max_size!
|
49
|
-
if record.w > max_width
|
50
|
-
errors.add(:w, "must be equal to or less than #{max_width}")
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def validate_width_min_size!
|
55
|
-
if record.w < min_width
|
56
|
-
errors.add(:w, "must be equal to or greater than #{min_width}")
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def validate_height_max_size!
|
61
|
-
if record.h > max_height
|
62
|
-
errors.add(:h, "must be equal to or less than #{max_height}")
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
def validate_height_min_size!
|
67
|
-
if record.h < min_height
|
68
|
-
errors.add(:h, "must be equal to or greater than #{min_height}")
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def validate_fit_presence!
|
73
|
-
if record.fit.nil? || record.fit.empty?
|
74
|
-
errors.add(:fit, "can't be blank")
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def validate_fit_inclusion!
|
79
|
-
unless FIT_TYPES.include?(record.fit)
|
80
|
-
errors.add(:fit, "is not valid")
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def validate_bg_format!
|
85
|
-
unless record.bg =~ HEXDECIMAL_LONG_REGEX || record.bg =~ HEXDECIMAL_SHORT_REGEX || record.bg =~ HEXDECIMAL_ALPHA_REGEX
|
29
|
+
def validate_bg_format
|
30
|
+
unless entity.bg =~ HEXDECIMAL_LONG_REGEX || entity.bg =~ HEXDECIMAL_SHORT_REGEX || entity.bg =~ HEXDECIMAL_ALPHA_REGEX
|
86
31
|
errors.add(:bg, "is not valid")
|
87
32
|
end
|
88
33
|
end
|
89
|
-
|
90
|
-
def validate_format_inclusion!
|
91
|
-
unless extension_white_list.include?(record.fm)
|
92
|
-
errors.add(:fm, "is not valid")
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def validate_quality_max_size!
|
97
|
-
if record.q > QUALITY_MAX
|
98
|
-
errors.add(:q, "must be equal to or less than #{QUALITY_MAX}")
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
def validate_quality_min_size!
|
103
|
-
if record.q < QUALITY_MIN
|
104
|
-
errors.add(:q, "must be equal to or greater than #{QUALITY_MIN}")
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
def min_width
|
109
|
-
config.min_width
|
110
|
-
end
|
111
|
-
|
112
|
-
def max_width
|
113
|
-
config.max_width
|
114
|
-
end
|
115
|
-
|
116
|
-
def min_height
|
117
|
-
config.min_height
|
118
|
-
end
|
119
|
-
|
120
|
-
def max_height
|
121
|
-
config.max_height
|
122
|
-
end
|
123
|
-
|
124
|
-
def extension_white_list
|
125
|
-
config.extension_white_list
|
126
|
-
end
|
127
|
-
|
128
|
-
def config
|
129
|
-
Presto.configuration
|
130
|
-
end
|
131
34
|
end
|
132
35
|
end
|
133
36
|
end
|
@@ -1,33 +1,53 @@
|
|
1
1
|
require 'presto/transformation/validator'
|
2
|
+
require 'veto'
|
2
3
|
|
3
4
|
module Presto
|
4
5
|
class Transformation
|
5
|
-
|
6
|
+
DEFAULT_BG = "#ffffff00"
|
7
|
+
DEFAULT_FIT = 'clip'
|
6
8
|
|
7
|
-
|
9
|
+
include Veto.model(Validator)
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
def initialize args={}
|
12
|
-
defaults = {:fit => 'clip', :bg => 'ffffff00'}
|
13
|
-
params = defaults.merge(args)
|
14
|
-
|
15
|
-
@bg = "##{params[:bg]}" if params.key?(:bg)
|
16
|
-
@fit = params[:fit]
|
17
|
-
@fm = params[:fm]
|
18
|
-
@h = params[:h].to_i if params.key?(:h)
|
19
|
-
@w = params[:w].to_i if params.key?(:w)
|
20
|
-
@q = params[:q].to_i if params.key?(:q)
|
11
|
+
def initialize params={}
|
12
|
+
@params = params
|
21
13
|
end
|
22
14
|
|
23
15
|
def [] val
|
24
16
|
send(val)
|
25
17
|
end
|
26
18
|
|
19
|
+
def bg
|
20
|
+
params.key?(:bg) ? "##{params[:bg]}" : DEFAULT_BG
|
21
|
+
end
|
22
|
+
|
23
|
+
def fit
|
24
|
+
params[:fit] || DEFAULT_FIT
|
25
|
+
end
|
26
|
+
|
27
|
+
def fm
|
28
|
+
params[:fm]
|
29
|
+
end
|
30
|
+
|
31
|
+
def h
|
32
|
+
params[:h].to_i if params.key?(:h)
|
33
|
+
end
|
34
|
+
|
35
|
+
def w
|
36
|
+
params[:w].to_i if params.key?(:w)
|
37
|
+
end
|
38
|
+
|
39
|
+
def q
|
40
|
+
params[:q].to_i if params.key?(:q)
|
41
|
+
end
|
42
|
+
|
43
|
+
def empty?
|
44
|
+
params.empty?
|
45
|
+
end
|
46
|
+
|
27
47
|
private
|
28
48
|
|
29
|
-
def
|
30
|
-
|
49
|
+
def params
|
50
|
+
@params
|
31
51
|
end
|
32
52
|
end
|
33
53
|
end
|
data/lib/presto/version.rb
CHANGED
data/presto.gemspec
CHANGED
@@ -18,9 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.add_dependency "veto", "~> 0.1.2"
|
22
|
+
|
21
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
24
|
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "guard-minitest", "~> 1.0.1"
|
24
25
|
spec.add_development_dependency "mocha", "~> 0.14.0"
|
25
26
|
spec.add_development_dependency "mini_magick", "~> 3.6.0"
|
26
27
|
end
|
@@ -5,11 +5,11 @@ describe Presto::MiniMagick::Processor do
|
|
5
5
|
let(:file) { ::File.open(File.expand_path('../../fixtures/images/test.gif', __FILE__)) }
|
6
6
|
let(:image) { ::MiniMagick::Image.open(file.path) }
|
7
7
|
|
8
|
-
describe "#
|
9
|
-
describe "when
|
8
|
+
describe "#process" do
|
9
|
+
describe "when transformation is not valid" do
|
10
10
|
it "raises error" do
|
11
|
-
e = proc{ Presto::MiniMagick::Processor.new(:fm => 'xml') }.must_raise(::
|
12
|
-
e.message.
|
11
|
+
e = proc{ Presto::MiniMagick::Processor.new(:fm => 'xml').process(image) }.must_raise(Veto::InvalidEntity)
|
12
|
+
e.message.must_include "fm is not in set: [\\\"jpg\\\", \\\"png\\\"]\""
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -11,125 +11,74 @@ describe Presto::Transformation::Validator do
|
|
11
11
|
let(:transformation) { stub(:w => w, :h => h, :fit => fit, :bg => bg, :fm => fm, :q => q) }
|
12
12
|
let(:validator){ Presto::Transformation::Validator.new(transformation) }
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
let(:fit) { 'blah' }
|
84
|
-
|
85
|
-
it "raises error" do
|
86
|
-
e = proc { validator.validate! }.must_raise(Presto::InvalidTransformation)
|
87
|
-
e.message.must_match "fit is not valid"
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
describe "when bg is wrong formal" do
|
92
|
-
let(:bg) { 'fhff' }
|
93
|
-
|
94
|
-
it "raises error" do
|
95
|
-
e = proc { validator.validate! }.must_raise(Presto::InvalidTransformation)
|
96
|
-
e.message.must_match "bg is not valid"
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
describe "when fm is invalid" do
|
101
|
-
let(:fm) { 'tif' }
|
102
|
-
|
103
|
-
it "raises error" do
|
104
|
-
e = proc { validator.validate! }.must_raise(Presto::InvalidTransformation)
|
105
|
-
e.message.must_match "fm is not valid"
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
describe "when q is nil" do
|
110
|
-
let(:q) { nil }
|
111
|
-
|
112
|
-
it "does not raise error" do
|
113
|
-
validator.validate!.must_equal true
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
describe "when q is greater than max q" do
|
118
|
-
let(:q) { ::Presto::Transformation::Validator::QUALITY_MAX + 1 }
|
119
|
-
|
120
|
-
it "raises error" do
|
121
|
-
e = proc { validator.validate! }.must_raise(Presto::InvalidTransformation)
|
122
|
-
e.message.must_match "q must be equal to or less than #{::Presto::Transformation::Validator::QUALITY_MAX}"
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
describe "when q is less than min q" do
|
127
|
-
let(:q) { ::Presto::Transformation::Validator::QUALITY_MIN - 1 }
|
128
|
-
|
129
|
-
it "raises error" do
|
130
|
-
e = proc { validator.validate! }.must_raise(Presto::InvalidTransformation)
|
131
|
-
e.message.must_match "q must be equal to or greater than #{::Presto::Transformation::Validator::QUALITY_MIN}"
|
132
|
-
end
|
133
|
-
end
|
14
|
+
let(:errors) { validator.valid?; validator.errors }
|
15
|
+
|
16
|
+
context 'when valid' do
|
17
|
+
it { errors.must_be_empty }
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'when w is nil' do
|
21
|
+
let(:w) { nil }
|
22
|
+
it { errors.must_be_empty }
|
23
|
+
end
|
24
|
+
|
25
|
+
context "when w is greater than max w" do
|
26
|
+
let(:w) { Presto.configuration.max_width + 1 }
|
27
|
+
it { errors[:w].must_include "must be less than or equal to 2000" }
|
28
|
+
end
|
29
|
+
|
30
|
+
context "when w is greater than max w" do
|
31
|
+
let(:w) { Presto.configuration.min_width - 1 }
|
32
|
+
it { errors[:w].must_include "must be greater than or equal to 1" }
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'when h is nil' do
|
36
|
+
let(:h) { nil }
|
37
|
+
it { errors.must_be_empty }
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'when h is greater than max h' do
|
41
|
+
let(:h) { Presto.configuration.max_width + 1 }
|
42
|
+
it { errors[:h].must_include "must be less than or equal to 2000" }
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'when h is greater than max h' do
|
46
|
+
let(:h) { Presto.configuration.min_width - 1 }
|
47
|
+
it { errors[:h].must_include "must be greater than or equal to 1" }
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'when fit is nil' do
|
51
|
+
let(:fit) { nil }
|
52
|
+
it { errors[:fit].must_include "is not present" }
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'when fit is invalid' do
|
56
|
+
let(:fit) { 'blah' }
|
57
|
+
it { errors[:fit].must_include "is not in set: [\"clip\", \"crop\", \"scale\", \"fill\", \"max\"]" }
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'when bg is wrong format' do
|
61
|
+
let(:bg) { 'fhff' }
|
62
|
+
it { errors[:bg].must_include "is not valid" }
|
63
|
+
end
|
64
|
+
|
65
|
+
context 'when fm is invalid' do
|
66
|
+
let(:fm) { 'tif' }
|
67
|
+
it { errors[:fm].must_include "is not in set: [\"jpg\", \"png\"]" }
|
68
|
+
end
|
69
|
+
|
70
|
+
context 'when q is nil' do
|
71
|
+
let(:q) { nil }
|
72
|
+
it { errors[:q].must_be_nil }
|
73
|
+
end
|
74
|
+
|
75
|
+
context "when q is greater than max q" do
|
76
|
+
let(:q) { ::Presto::Transformation::Validator::QUALITY_MAX + 1 }
|
77
|
+
it { errors[:q].must_include "must be less than or equal to 100" }
|
78
|
+
end
|
79
|
+
|
80
|
+
context "when q is less than min q" do
|
81
|
+
let(:q) { ::Presto::Transformation::Validator::QUALITY_MIN - 1 }
|
82
|
+
it { errors[:q].must_include "must be greater than or equal to 1" }
|
134
83
|
end
|
135
84
|
end
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: presto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Lott
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: veto
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
type: :
|
19
|
+
version: 0.1.2
|
20
|
+
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.1.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: mocha
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,3 +146,4 @@ test_files:
|
|
146
146
|
- spec/spec_helper.rb
|
147
147
|
- spec/transformation/validator_spec.rb
|
148
148
|
- spec/transformation_spec.rb
|
149
|
+
has_rdoc:
|