gem_velocity 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/TODO CHANGED
@@ -16,3 +16,14 @@ I want to be able to have a line be one version, or a few versions in one, mix t
16
16
  line_datas needs to be abstracted away. actually the versions concepts should be eliminated??
17
17
  so I need to have something abstract a version but it could be a few of them...
18
18
  move all the logic of changing version -> line_data into something and have that able to handle 1 or n.
19
+
20
+ the only thing that it implmeents is .graph() which returns the line_data result/info whatever.
21
+ then there's something in the middle that takes that and calls out to gruff builder.
22
+
23
+
24
+ all derived classes need to pass back to base class, so we can pass on to builder:
25
+
26
+ line_data => title,version(s)
27
+ n times whatever.
28
+
29
+ Add a Version?
@@ -0,0 +1,3 @@
1
+ require "gem_velocity/velocitators/base_velocitator"
2
+ require "gem_velocity/velocitators/single_velocitator"
3
+ require "gem_velocity/velocitators/multiple_velocitator"
@@ -0,0 +1,113 @@
1
+ begin
2
+ require 'active_support/all'
3
+ rescue
4
+ 'you need activesupport. please install'
5
+ end
6
+
7
+ class BaseVelocitator
8
+
9
+ include ::Helpers
10
+
11
+ attr_accessor :gem_name, :versions
12
+
13
+ def graph(root_arg = nil, range = nil, min = nil, max = nil)
14
+ set_overwritable_attrs(root_arg,range,min,max)
15
+ gruff_builder.write
16
+ end
17
+
18
+ # modifiers on the end result image being rendered.
19
+ attr_reader :date_range, :max_value, :min_value, :root
20
+ def date_range=(args); @date_range = args && args.map{|t| time_format_str(t) } ;end
21
+ def max_value=(max); @max_value = max ;end
22
+ def min_value=(min); @min_value = min ;end
23
+ def root=(path); @root = path ;end
24
+
25
+ def effective_date_range
26
+ @date_range || [ default_start, default_end ]
27
+ end
28
+
29
+ private
30
+
31
+ def initialize(gem_name, versions)
32
+ @gem_name = gem_name || raise(ArgumentError, 'need a name')
33
+ @versions = versions || raise(ArgumentError, 'required versions')
34
+ validate_correct_gem
35
+ validate_correct_versions
36
+ end
37
+
38
+ def validate_correct_versions
39
+ versions.each do |v|
40
+ gem_data.versions.include?(v) || raise(NoSuchVersion,"version not found for #{versions}.")
41
+ end
42
+ end
43
+
44
+ def validate_correct_gem
45
+ # this will bomb out if bad version is passed.
46
+ gem_data.versions_metadata
47
+ end
48
+
49
+ # if it's nil, the defaults will be used
50
+ # basically these are the graph boundries
51
+ def set_overwritable_attrs(root_arg,range,min,max)
52
+ self.date_range = range
53
+ self.root = root_arg
54
+ self.max_value = max
55
+ self.min_value = min
56
+ end
57
+
58
+ def default_end
59
+ default_end = time_format_str(Time.now)
60
+ end
61
+
62
+ def default_min_value
63
+ 0
64
+ end
65
+
66
+ def default_line_datas
67
+ # refactor me?
68
+ versions.map do |v|
69
+ specific_days_in_range.map do |day_in_range|
70
+ day_in_range = time_format_str_small(day_in_range) #conform to rubygems api format
71
+ if gem_data.downloads_day(v).map {|day,total| day}.include?(day_in_range)
72
+ # get the total for that day
73
+ total = Hash[gem_data.downloads_day(v)][day_in_range]
74
+ else
75
+ 0
76
+ end
77
+ end
78
+ end
79
+ end
80
+
81
+ # a little sugar
82
+ def effective_start_time; effective_date_range.first ;end
83
+ def effective_end_time; effective_date_range.last ;end
84
+
85
+ # helper method to convert [start,end] into a
86
+ # start..end range of day instances
87
+ def specific_days_in_range
88
+ all_days = []
89
+ s = Date.parse(effective_start_time)
90
+ e = Date.parse(effective_end_time)
91
+ i = s
92
+ while (i <= e )
93
+ all_days << i
94
+ i += 1.day
95
+ end
96
+ all_days
97
+ end
98
+
99
+ def gem_data
100
+ # need this memoized so the gem_data memoization works for the same instance
101
+ @gem_data ||= GemData.new(@gem_name)
102
+ end
103
+
104
+ def gruff_builder
105
+ GruffBuilder.new(@root || Dir.pwd,nil,versions,gem_name,graph_options)
106
+ end
107
+
108
+ # it's just shorter syntax
109
+ def time_built(version)
110
+ gem_data.versions_built_at[version]
111
+ end
112
+
113
+ end
@@ -0,0 +1,39 @@
1
+ class MultipleVelocitator < BaseVelocitator
2
+
3
+ def initialize(gem_name, versions)
4
+ super(gem_name, versions)
5
+ end
6
+
7
+ def default_start
8
+ earliest_start = versions.map{|v| Date.parse(time_built(v)) }.min
9
+ default_start = time_format_str(earliest_start)
10
+ end
11
+
12
+ def default_max_value
13
+ totals = []
14
+ versions.each {|v|
15
+ totals << gem_data.downloads_day(v).map {|day,total| total}
16
+ }
17
+ totals.flatten.compact.max
18
+ end
19
+
20
+ def graph_options
21
+ opts = {
22
+ :title => title,
23
+ :labels => ({1 => time_format_str_small(effective_start_time), (line_datas.first.size-2) => time_format_str_small(effective_end_time) }),
24
+ :max_value => max_value || default_max_value,
25
+ :min_value => min_value || default_min_value,
26
+ :line_datas => line_datas
27
+ }
28
+ end
29
+
30
+ def line_datas
31
+ default_line_datas
32
+ end
33
+
34
+ def title
35
+ "MutlipleVelocitator:#{gem_name}"
36
+ end
37
+
38
+
39
+ end
@@ -0,0 +1,34 @@
1
+ class SingleVelocitator < BaseVelocitator
2
+
3
+ def initialize(gem_name, version)
4
+ @version = version
5
+ super(gem_name, [version])
6
+ end
7
+
8
+ def default_start
9
+ time_format_str(Date.parse(time_built(@version)))
10
+ end
11
+
12
+ def default_max_value
13
+ gem_data.downloads_day(@version).map {|day,total| total}.max
14
+ end
15
+
16
+ def graph_options
17
+ opts = {
18
+ :title => title,
19
+ :labels => ({1 => time_format_str_small(effective_start_time), (line_datas.first.size-2) => time_format_str_small(effective_end_time) }),
20
+ :max_value => max_value || default_max_value,
21
+ :min_value => min_value || default_min_value,
22
+ :line_datas => line_datas
23
+ }
24
+ end
25
+
26
+ def line_datas
27
+ default_line_datas
28
+ end
29
+
30
+ def title
31
+ "SingleVelocitator:#{gem_name}"
32
+ end
33
+
34
+ end
@@ -1,3 +1,3 @@
1
1
  module GemVelocity
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/gem_velocity.rb CHANGED
@@ -2,7 +2,7 @@ require "gem_velocity/version"
2
2
  require "gem_velocity/helpers"
3
3
  require "gem_velocity/gem_data"
4
4
  require "gem_velocity/gruff_builder"
5
- require "gem_velocity/velocitator"
5
+ require "gem_velocity/velocitators/all"
6
6
  require "gem_velocity/errors"
7
7
 
8
8
  require 'active_support/all'
@@ -30,7 +30,7 @@ describe GruffBuilder do
30
30
 
31
31
  it "can not write a file if there is no line data" do
32
32
  builder = GruffBuilder.new(@tmp_dir,nil,["0.0.17"],"foo-baz", {})
33
- lambda { builder.write }.should raise_error GruffBuilder::NoData
33
+ lambda { builder.write }.should raise_error NoData
34
34
  end
35
35
 
36
36
  it "can write out a file" do
@@ -1,124 +1,119 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Velocitator do
3
+ describe SingleVelocitator do
4
4
 
5
5
  it 'raises if you dont pass name and version(s)' do
6
- lambda { Velocitator.new(nil,nil) }.should raise_error ArgumentError
6
+ lambda { SingleVelocitator.new(nil,nil) }.should raise_error ArgumentError
7
7
  end
8
8
 
9
9
  it 'raises if the gem is not found' do
10
- lambda { Velocitator.new("NOSICHGEMPlZ123","0.1") }.should raise_error NoSuchGem
10
+ lambda { SingleVelocitator.new("NOSICHGEMPlZ123","0.1") }.should raise_error NoSuchGem
11
11
  end
12
12
 
13
13
  it 'raises if the version is not found' do
14
- # cause the .pre matters!!1
15
- lambda { Velocitator.new("haml-i18n-extractor","100.999.42.666.pre") }.should raise_error NoSuchVersion
16
- end
17
-
18
- describe "a specific version" do
19
-
20
- it "sets a specific date range according to the gem's info" do
21
- velocitator = Velocitator.new("haml-i18n-extractor", "0.0.17")
22
- velocitator.effective_date_range.should eq ["2013-06-16T00:00:00Z", "2013-09-20T00:00:00Z"]
23
- end
24
-
25
- it "can override the default time ranges if its in the range" do
26
- velocitator = Velocitator.new("haml-i18n-extractor", "0.0.17")
27
- velocitator.date_range = [1.day.ago, Time.now]
28
- velocitator.effective_date_range.should eq ["2013-09-19T00:00:00Z", "2013-09-20T00:00:00Z"]
29
- velocitator.line_datas.size.should eq (velocitator.versions.size)
30
- end
31
-
32
- it "can set a max and min" do
33
- velocitator = Velocitator.new("haml-i18n-extractor", "0.0.17")
34
- lambda {
35
- velocitator.max_value = 500
36
- velocitator.min_value = 10
37
- }.should_not raise_error
38
- end
39
-
40
- it "can render a graph" do
41
- velocitator = Velocitator.new("haml-i18n-extractor", "0.0.17")
42
- velocitator.date_range = [1.day.ago, Time.now]
43
- velocitator.root = SpecHelper.tmpdir
44
- builder = velocitator.gruff_builder
45
-
46
- # FIXME
47
- # also, pending on issue relating to
48
- # https://github.com/shaiguitar/rubygems.org/compare/api_not_returning_all_results_over_90_days?expand=1
49
- builder.line_datas.should == [[343, 344]]
50
- builder.title.should == "haml-i18n-extractor-0.0.17"
51
- builder.labels.should == ({1=>"2013-09-19", (builder.line_datas.first.size-2) =>"2013-09-20"})
52
- builder.max_value.should == 344
53
- builder.min_value.should == 0
54
-
55
- file = builder.write
56
- File.exist?(file).should be_true
57
- #`open #{file} -a preview.app`
58
- #Kernel.sleep(10)
59
- end
60
-
61
- it "has a shortcut graph method #1" do
62
- velocitator = Velocitator.new("haml-i18n-extractor", "0.0.17")
63
- file = velocitator.graph(SpecHelper.tmpdir,[1.day.ago, Time.now])
64
- File.exist?(file).should be_true
65
- end
66
-
67
- it "has a shortcut graph method #2" do
68
- velocitator = Velocitator.new("haml-i18n-extractor", "0.0.17")
69
- file = velocitator.graph
70
- File.exist?(file).should be_true
71
- end
72
-
73
- it "has a shortcut graph metho #3" do
74
- velocitator = Velocitator.new("haml-i18n-extractor", "0.0.17")
75
- file = velocitator.graph(nil,nil,0,1000)
76
- File.exist?(file).should be_true
77
- end
78
-
79
- end
80
-
81
- describe "Multiple versions" do
82
- before do
83
- @some_versions = ["0.0.17", "0.0.5","0.0.10"]
84
- end
85
-
86
- it "can initialize multiple versions" do
87
- velocitator = Velocitator.new("haml-i18n-extractor", @some_versions)
88
- velocitator.versions.should == @some_versions
89
- end
90
-
91
- it "sets the earliest start range from to all of the versions info" do
92
- # some_versions.map{|v| GemData.new("haml-i18n-extractor").versions_built_at[v]}
93
- # => ["2013-06-16T00:00:00Z", "2013-03-22T00:00:00Z", "2013-05-06T00:00:00Z"]
94
- velocitator = Velocitator.new("haml-i18n-extractor", @some_versions)
95
- velocitator.effective_date_range.should eq ["2013-03-22T00:00:00Z", "2013-09-20T00:00:00Z"]
96
- end
97
-
98
- it "sets the max value to the max of all of versions" do
99
- velocitator = Velocitator.new("haml-i18n-extractor", @some_versions)
100
- velocitator.default_max_value.should eq 344
101
- end
102
-
103
- it "sets the max value to the max of all of versions" do
104
- velocitator = Velocitator.new("haml-i18n-extractor", @some_versions)
105
- velocitator.default_max_value.should eq 344
106
- end
107
-
108
- it "should set the line data to an array of versions.size with equal length which should be the max value of any one of them" do
109
- velocitator = Velocitator.new("haml-i18n-extractor", @some_versions)
110
- velocitator.line_datas.size.should == @some_versions.size
111
- # all of them should be the same size, padded with 0's if there is no download info
112
- velocitator.line_datas.map{|d| d.size }.uniq.size.should == 1
113
- end
114
-
115
- it "has a shortcut graph method" do
116
- velocitator = Velocitator.new("haml-i18n-extractor", @some_versions)
117
- file = velocitator.graph
118
- File.exist?(file).should be_true
119
- end
14
+ lambda { SingleVelocitator.new("haml-i18n-extractor","100.999.42.666.pre") }.should raise_error NoSuchVersion
120
15
  end
121
16
 
17
+ it "sets a specific date range according to the gem's info" do
18
+ velocitator = SingleVelocitator.new("haml-i18n-extractor", "0.0.17")
19
+ velocitator.effective_date_range.should eq ["2013-06-16T00:00:00Z", "2013-09-20T00:00:00Z"]
20
+ end
21
+
22
+ it "can override the default time ranges if its in the range" do
23
+ velocitator = SingleVelocitator.new("haml-i18n-extractor", "0.0.17")
24
+ velocitator.date_range = [1.day.ago, Time.now]
25
+ velocitator.effective_date_range.should eq ["2013-09-19T00:00:00Z", "2013-09-20T00:00:00Z"]
26
+ end
27
+
28
+ it "can override a max and min" do
29
+ velocitator = SingleVelocitator.new("haml-i18n-extractor", "0.0.17")
30
+ lambda {
31
+ velocitator.max_value = 500
32
+ velocitator.min_value = 10
33
+ }.should_not raise_error
34
+ end
35
+
36
+ it "has line datas" do
37
+ velocitator = SingleVelocitator.new("haml-i18n-extractor", "0.0.17")
38
+ velocitator.line_datas.size.should eq (velocitator.versions.size)
39
+ end
122
40
 
41
+ it "can render a graph" do
42
+ velocitator = SingleVelocitator.new("haml-i18n-extractor", "0.0.17")
43
+ velocitator.date_range = [1.day.ago, Time.now]
44
+ velocitator.root = SpecHelper.tmpdir
45
+ # FIX spec don't call out to gruff_builder, check the specific attrs in graph_options or such.
46
+ builder = velocitator.gruff_builder
47
+ # https://github.com/shaiguitar/rubygems.org/compare/api_not_returning_all_results_over_90_days?expand=1
48
+ builder.line_datas.should == [[343, 344]]
49
+ builder.title.should == "haml-i18n-extractor-0.0.17"
50
+ builder.labels.should == ({1=>"2013-09-19", (builder.line_datas.first.size-2) =>"2013-09-20"})
51
+ builder.max_value.should == 344
52
+ builder.min_value.should == 0
53
+
54
+ file = builder.write
55
+ File.exist?(file).should be_true
56
+ #`open #{file} -a preview.app`
57
+ #Kernel.sleep(10)
58
+ end
59
+
60
+ it "has a shortcut graph method #1" do
61
+ velocitator = SingleVelocitator.new("haml-i18n-extractor", "0.0.17")
62
+ file = velocitator.graph(SpecHelper.tmpdir,[1.day.ago, Time.now])
63
+ File.exist?(file).should be_true
64
+ end
65
+
66
+ it "has a shortcut graph method #2" do
67
+ velocitator = SingleVelocitator.new("haml-i18n-extractor", "0.0.17")
68
+ file = velocitator.graph
69
+ File.exist?(file).should be_true
70
+ end
71
+
72
+ it "has a shortcut graph metho #3" do
73
+ velocitator = SingleVelocitator.new("haml-i18n-extractor", "0.0.17")
74
+ file = velocitator.graph(nil,nil,0,1000)
75
+ File.exist?(file).should be_true
76
+ end
77
+ end
78
+
79
+ describe MultipleVelocitator do
80
+ before do
81
+ @some_versions = ["0.0.17", "0.0.5","0.0.10"]
82
+ end
83
+
84
+ it "can initialize multiple versions" do
85
+ velocitator = MultipleVelocitator.new("haml-i18n-extractor", @some_versions)
86
+ velocitator.versions.should == @some_versions
87
+ end
88
+
89
+ it "sets the earliest start range from to all of the versions info" do
90
+ # some_versions.map{|v| GemData.new("haml-i18n-extractor").versions_built_at[v]}
91
+ # => ["2013-06-16T00:00:00Z", "2013-03-22T00:00:00Z", "2013-05-06T00:00:00Z"]
92
+ velocitator = MultipleVelocitator.new("haml-i18n-extractor", @some_versions)
93
+ velocitator.effective_date_range.should eq ["2013-03-22T00:00:00Z", "2013-09-20T00:00:00Z"]
94
+ end
95
+
96
+ it "sets the max value to the max of all of versions" do
97
+ velocitator = MultipleVelocitator.new("haml-i18n-extractor", @some_versions)
98
+ velocitator.default_max_value.should eq 344
99
+ end
100
+
101
+ it "sets the max value to the max of all of versions" do
102
+ velocitator = MultipleVelocitator.new("haml-i18n-extractor", @some_versions)
103
+ velocitator.default_max_value.should eq 344
104
+ end
105
+
106
+ it "should set the line data to an array of versions.size with equal length which should be the max value of any one of them" do
107
+ velocitator = MultipleVelocitator.new("haml-i18n-extractor", @some_versions)
108
+ velocitator.line_datas.size.should == @some_versions.size
109
+ # all of them should be the same size, padded with 0's if there is no download info
110
+ velocitator.line_datas.map{|d| d.size }.uniq.size.should == 1
111
+ end
112
+
113
+ it "has a shortcut graph method" do
114
+ velocitator = MultipleVelocitator.new("haml-i18n-extractor", @some_versions)
115
+ file = velocitator.graph
116
+ File.exist?(file).should be_true
117
+ end
123
118
  end
124
119
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem_velocity
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Shai Rosenfeld
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-10-11 00:00:00 Z
18
+ date: 2013-10-12 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: gruff
@@ -211,7 +211,10 @@ files:
211
211
  - lib/gem_velocity/gem_data.rb
212
212
  - lib/gem_velocity/gruff_builder.rb
213
213
  - lib/gem_velocity/helpers.rb
214
- - lib/gem_velocity/velocitator.rb
214
+ - lib/gem_velocity/velocitators/all.rb
215
+ - lib/gem_velocity/velocitators/base_velocitator.rb
216
+ - lib/gem_velocity/velocitators/multiple_velocitator.rb
217
+ - lib/gem_velocity/velocitators/single_velocitator.rb
215
218
  - lib/gem_velocity/version.rb
216
219
  - spec/gem_data_spec.rb
217
220
  - spec/gruff_builder_spec.rb
@@ -1,154 +0,0 @@
1
- begin
2
- require 'active_support/all'
3
- rescue
4
- 'you need activesupport. please install'
5
- end
6
-
7
- class Velocitator
8
-
9
- include ::Helpers
10
-
11
- attr_accessor :gem_name, :versions
12
-
13
- # modifiers on the end result image being rendered.
14
- attr_accessor :date_range, :max_value, :min_value, :root
15
-
16
- def initialize(gem_name, versions)
17
- @gem_name = gem_name || raise(ArgumentError, 'need a name')
18
- @versions = if versions.is_a?(String)
19
- [versions]
20
- else
21
- versions
22
- end || raise(ArgumentError, 'required versions')
23
- validate_correct_gem
24
- validate_correct_versions
25
- end
26
-
27
- def date_range=(args)
28
- return nil if args.nil?
29
- unless args.is_a?(Array) && args.size == 2
30
- raise(ArgumentError, "must pass a range with time objects like [start,end]")
31
- end
32
- @date_range = args.map{|t| time_format_str(t) }
33
- end
34
-
35
- def effective_date_range
36
- # we allow overwriting by passing a date range.
37
- if @date_range.is_a?(Array) && @date_range.compact.size==2
38
- @date_range
39
- else
40
- default_date_range
41
- end
42
- end
43
-
44
- def title
45
- "#{gem_name}-#{versions.join("-")}"
46
- end
47
-
48
- def line_datas
49
- versions.map do |v|
50
- specific_days_in_range.map do |day_in_range|
51
- day_in_range = time_format_str_small(day_in_range) #conform to rubygems api format
52
- if gem_data.downloads_day(v).map {|day,total| day}.include?(day_in_range)
53
- total = Hash[gem_data.downloads_day(v)][day_in_range]
54
- else
55
- 0
56
- end
57
- end
58
- end
59
- end
60
-
61
- # after you set all the attributes you want.
62
- # you can set (or there will be fallback defaults)
63
- # max, min
64
- # date_range (leave nil for default values in either start or end)
65
- def gruff_builder
66
- opts = {
67
- :title => title,
68
- # just the first and last dates. give a small offset so it fits into the pciture.
69
- # line_datas.first.size -2 should be the max of any one of the line-datas, all should be same size.
70
- :labels => ({1 => time_format_str_small(effective_start_time), (line_datas.first.size-2) => time_format_str_small(effective_end_time) }),
71
- :max_value => max_value || default_max_value,
72
- :min_value => min_value || default_min_value,
73
- :line_datas => line_datas
74
- }
75
- builder = GruffBuilder.new(@root || Dir.pwd,nil,versions,gem_name,opts)
76
- builder
77
- end
78
-
79
- def graph(root_arg = nil, range = nil, min = nil, max = nil)
80
- # if nil, defaults will be used
81
- self.date_range = range
82
- self.root = root_arg
83
- self.max_value = max
84
- self.min_value = min
85
- gruff_builder.write
86
- end
87
-
88
- def specific_days_in_range
89
- all_days = []
90
- s = Date.parse(effective_start_time)
91
- e = Date.parse(effective_end_time)
92
- i = s
93
- while (i <= e )
94
- all_days << i
95
- i += 1.day
96
- end
97
- all_days
98
- end
99
-
100
- def default_min_value
101
- 0
102
- end
103
-
104
- def default_max_value
105
- totals = []
106
- versions.each {|v|
107
- totals << gem_data.downloads_day(v).map {|day,total| total}
108
- }
109
- totals.flatten.compact.max
110
- end
111
-
112
- private
113
-
114
- def effective_start_time
115
- effective_date_range.first
116
- end
117
-
118
- def effective_end_time
119
- effective_date_range.last
120
- end
121
-
122
- def default_date_range
123
- range = default_start, default_end
124
- end
125
-
126
- def default_start
127
- earliest_start = versions.map{|v| Date.parse(time_built(v)) }.min
128
- default_start = time_format_str(earliest_start)
129
- end
130
-
131
- def default_end
132
- default_end = time_format_str(Time.now)
133
- end
134
-
135
- def time_built(version)
136
- gem_data.versions_built_at[version]
137
- end
138
-
139
- def gem_data
140
- @gem_data ||= GemData.new(@gem_name)
141
- end
142
-
143
- def validate_correct_versions
144
- versions.each do |v|
145
- gem_data.versions.include?(v) || raise(NoSuchVersion,"version not found for #{versions}.")
146
- end
147
- end
148
-
149
- def validate_correct_gem
150
- # this will bomb out if bad version is passed.
151
- gem_data.versions_metadata
152
- end
153
-
154
- end