veracode 1.0.0.alpha → 1.0.0.alpha6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 902b115fab8cb21e15a5bd54aef3246f5380de49
4
+ data.tar.gz: ca13044ad546a545134ed74b7b7a3a0504329e47
5
+ SHA512:
6
+ metadata.gz: 2268ae1531eedcc77c9b21b77d544c06c6a1f8b10f74504b9c616a092a6d95c2966e8f98188d1f40fbba87eb9701511268a9b614c5f2a35911f0c41630770b47
7
+ data.tar.gz: 66bc411b52c53ff87c5958eb9a6c2dd1b66048d3d5fa3e2beca07798476eb9899fcb0385cf857fbd20a1e48493394a919729de0560efe47fe26d2867ed70c35c
data/bin/veracode CHANGED
@@ -13,6 +13,7 @@ APP_NAME = File.basename(Dir.pwd)
13
13
  COMMAND = "#{$0} #{ARGV.join(' ')}"
14
14
 
15
15
  require 'veracode'
16
+ require 'veracode/version'
16
17
 
17
18
  $options = {
18
19
  :phase1 => false,
@@ -58,12 +59,18 @@ case subcommand
58
59
 
59
60
  Veracode.prepare
60
61
 
62
+ when "version", "--version", "-v"
63
+ puts File.basename($0, '.*') + " " + Veracode::VERSION
64
+
61
65
  when "help", nil
62
66
  ARGV.clear
63
67
  ARGV.unshift "--help"
64
68
 
65
69
  OptionParser.new do |opts|
66
- opts.banner = "Usage: veracode prepare [options]"
70
+ opts.banner = "#{opts.program_name} #{Veracode::VERSION}\n" +
71
+ "Usage: #{opts.program_name} prepare [options]\n" +
72
+ " #{opts.program_name} version\n" +
73
+ " #{opts.program_name} help"
67
74
  end.parse!
68
75
 
69
76
  else
data/lib/veracode.rb CHANGED
@@ -1,34 +1,45 @@
1
+ require 'pathname'
2
+ require 'set'
1
3
  require 'zlib'
2
- require 'zip/zip'
3
- require "veracode/version"
4
+ require 'zip'
5
+ require 'veracode/version'
6
+ require 'veracode/schema'
7
+ require 'veracode/gems'
4
8
 
5
9
  module Veracode
6
10
  @run_id = nil
11
+ @required_libs = Set.new
7
12
 
8
13
  # Metadata and method disassemblies for all Modules (.txt.gz)
9
14
  @disasmlog = nil
10
- @disasmlog_filename = "disasm.txt.gz"
15
+ @disasmlog_filename = 'disasm.txt.gz'
11
16
 
12
17
  # Error log including capture of STDERR and any errors generated by the gem (.log)
13
18
  @errorlog = nil
14
- @errorlog_filename = "error.log"
19
+ @errorlog_filename = 'error.log'
15
20
 
16
21
  # Index file containing the names of files present in the application directory (.txt)
17
- @index_filename = "index.txt"
22
+ @index_filename = 'index.txt'
18
23
 
19
24
  # Manifest file containing original names of all files in archive (.txt)
20
25
  @manifest = []
21
- @manifest_filename = "manifest.txt"
26
+ @manifest_filename = 'manifest.txt'
27
+
28
+ # XML file containing list of gems used by application
29
+ @gems_filename = 'gems.xml'
30
+
31
+ # Archive version file containing archive format version identifier
32
+ @version_filename = 'version.txt'
22
33
 
23
34
  # The final archive that will be uploaded to Veracode for analysis (.zip)
24
35
  @archive = nil
25
36
  @archive_filename = nil
26
37
  @archive_dirname = nil
27
38
 
28
-
29
39
  def self.init
30
40
  @run_id = Time.now.strftime("%Y%m%d%H%M%S")
31
41
  @archive_dirname = File.join("tmp","veracode-#{@run_id}")
42
+ @required_libs.merge(["pathname", "set", "zlib", "zip/zip", "veracode"])
32
43
 
33
44
  if !Dir.exists?("tmp")
34
45
  begin
@@ -57,9 +68,11 @@ module Veracode
57
68
  @disasmlog_filename = File.join(@archive_dirname, @disasmlog_filename)
58
69
  @index_filename = File.join(@archive_dirname, @index_filename)
59
70
  @manifest_filename = File.join(@archive_dirname, @manifest_filename)
71
+ @gems_filename = File.join(@archive_dirname, @gems_filename)
72
+ @version_filename = File.join(@archive_dirname, @version_filename)
60
73
 
61
74
  # Try touching each of the files to be written
62
- [@disasmlog_filename, @errorlog_filename, @index_filename, @manifest_filename].each {|f|
75
+ [@disasmlog_filename, @errorlog_filename, @index_filename, @manifest_filename, @gems_filename, @version_filename].each {|f|
63
76
  begin
64
77
  File.open(f, "wb") {}
65
78
  rescue Exception => e
@@ -76,6 +89,7 @@ module Veracode
76
89
  log_error "RUBY_DESCRIPTION: #{RUBY_DESCRIPTION}"
77
90
  log_error "RAILS_VERSION: " + `rails --version`.chomp
78
91
  log_error "GEM_VERSION: #{Veracode::VERSION}"
92
+ log_error "ARCHIVE_VERSION: #{Veracode::ARCHIVE_VERSION}"
79
93
  log_error "PWD: #{Dir.pwd.to_s.dump}"
80
94
  log_error "APP_NAME: #{APP_NAME.dump}"
81
95
  log_error "RUNID: #{@run_id}"
@@ -86,6 +100,16 @@ module Veracode
86
100
  STDERR.reopen(@errorlog)
87
101
  end
88
102
 
103
+ begin
104
+ File.open(@version_filename, "wb") {|version_file|
105
+ version_file.puts Veracode::ARCHIVE_VERSION
106
+ }
107
+ rescue Exception => e
108
+ log_error "Unable to write to archive version file #{@version_filename}: #{e.message}"
109
+ end
110
+
111
+ list_gems
112
+
89
113
  index_application
90
114
 
91
115
  @manifest += Dir.glob("*").keep_if {|f| File.file?(f)}
@@ -101,6 +125,8 @@ module Veracode
101
125
  @manifest |= Dir[File.join("**","*.rb")]
102
126
  # Add any other erb files not already added
103
127
  @manifest |= Dir[File.join("**","*.erb")]
128
+ # Add any other builder files not already added
129
+ @manifest |= Dir[File.join("**","*.builder")]
104
130
  # Add any other haml files not already added
105
131
  @manifest |= Dir[File.join("**","*.haml")]
106
132
  end
@@ -133,7 +159,7 @@ module Veracode
133
159
  @errorlog.flush
134
160
 
135
161
  begin
136
- Zip::ZipFile.open(@archive_filename, Zip::ZipFile::CREATE) { |zf|
162
+ Zip::File.open(@archive_filename, Zip::File::CREATE) { |zf|
137
163
  @manifest.each {|file|
138
164
 
139
165
  if file.start_with?(@archive_dirname)
@@ -155,7 +181,7 @@ module Veracode
155
181
  end
156
182
 
157
183
  def self.cleanup
158
- [@disasmlog_filename, @errorlog_filename, @index_filename, @manifest_filename].each {|f|
184
+ [@disasmlog_filename, @errorlog_filename, @index_filename, @manifest_filename, @gems_filename, @version_filename].each {|f|
159
185
  begin
160
186
  File.delete(f)
161
187
  rescue Exception => e
@@ -198,12 +224,20 @@ module Veracode
198
224
 
199
225
  ##############################################################################
200
226
  # Helpers
227
+ def self.cond_require(lib)
228
+ if @required_libs.add?(lib)
229
+ return require lib
230
+ end
231
+ return false
232
+ end
233
+
201
234
  def self.glob_require(files)
235
+ any_new = false
202
236
  Dir.glob(files) do |f|
203
237
  print "Requiring #{f.to_s} " if $options[:verbose]
204
238
 
205
239
  begin
206
- require File.expand_path(f)
240
+ any_new |= cond_require File.expand_path(f)
207
241
  rescue Exception => e
208
242
  puts "(failed: #{e.message})" if $options[:verbose]
209
243
  log_error "Unable to require #{File.expand_path(f).to_s.dump} (#{e.message})"
@@ -212,6 +246,7 @@ module Veracode
212
246
  end
213
247
 
214
248
  end
249
+ return any_new
215
250
  end
216
251
 
217
252
  def self.safe_name(o)
@@ -412,8 +447,8 @@ module Veracode
412
447
 
413
448
  %w[ public protected private ].each {|p|
414
449
  get_methods = (p + "_instance_methods").to_sym
415
- if m.respond_to?(get_methods) && m.send(get_methods, $options[:include_inherited]).count > 0
416
- m.send(get_methods, $options[:include_inherited]).each do |m_symbol|
450
+ if m.respond_to?(get_methods) && m.__send__(get_methods, $options[:include_inherited]).count > 0
451
+ m.__send__(get_methods, $options[:include_inherited]).each do |m_symbol|
417
452
  begin
418
453
  method = m.instance_method(m_symbol)
419
454
  formatted_contents += format_method(method, "#{p.to_s}_instance", with_disasm)
@@ -465,7 +500,12 @@ module Veracode
465
500
  # Archiving Objects
466
501
  def self.archive(objects, with_disasm=true)
467
502
 
468
- objects = objects - [Veracode]
503
+ objects = objects - [
504
+ Veracode,
505
+ Veracode::ActiveRecord,
506
+ Veracode::ActiveRecord::Model,
507
+ Veracode::ActiveRecord::Schema,
508
+ ]
469
509
 
470
510
  if $options[:verbose]
471
511
  puts "Archiving #{objects.count.to_s} objects" + (with_disasm ? " with disassembly" : "")
@@ -491,6 +531,68 @@ module Veracode
491
531
  end
492
532
 
493
533
 
534
+ def self.compile_templates
535
+
536
+ begin
537
+ cond_require 'action_view' unless defined? ActionView
538
+ cond_require 'action_controller' unless defined? ActionController
539
+ rescue Exception => e
540
+ log_error "Unable to satisfy haml dependencies (#{e.message})"
541
+ return
542
+ end
543
+
544
+ types = %w{ erb builder haml }
545
+
546
+ view_paths = []
547
+ view_paths += ActionController::Base.view_paths.to_a.map(&:to_s)
548
+ view_paths |= [File.expand_path("app/views")]
549
+
550
+ puts "Looking for templates in #{view_paths.join(", ")}" if $options[:verbose]
551
+
552
+ templates = view_paths.map { |vp|
553
+ Dir[File.join(vp, "**", "*.erb")] +
554
+ Dir[File.join(vp, "**", "*.builder")] +
555
+ Dir[File.join(vp, "**", "*.haml")]
556
+ }.flatten
557
+
558
+ return unless templates.count > 0
559
+
560
+ puts "Found #{templates.count} templates" if $options[:verbose]
561
+ log_error "Found #{templates.count} templates"
562
+
563
+ haml_templates = templates.grep(/\.haml$/)
564
+ if haml_templates.any?
565
+ begin
566
+ cond_require 'haml' unless defined? Haml
567
+ cond_require 'haml/template/plugin' unless defined? Haml::Plugin
568
+ rescue Exception => e
569
+ puts "Unable to satisfy haml dependencies"
570
+ log_error "Unable to satisfy haml dependencies (#{e.message})"
571
+ templates -= haml_templates
572
+ puts " #{templates.count} templates" if $options[:verbose]
573
+ end
574
+ end
575
+
576
+ assigns = {}
577
+ view = ActionView::Base.new(view_paths, assigns)
578
+ controller_view = ApplicationController.new.view_context
579
+
580
+ templates.each { |template|
581
+ puts "Compiling template #{template}" if $options[:verbose]
582
+
583
+ begin
584
+ # This render will fail, but will trigger compilation of template
585
+ view.render(:file => template)
586
+ rescue Exception => e
587
+ log_error "Compiled template #{template} #{e.message}"
588
+ end
589
+ }
590
+
591
+ puts "Compiled #{ActionView::CompiledTemplates.instance_methods.count.to_s} templates" if $options[:verbose]
592
+ log_error "Compiled #{ActionView::CompiledTemplates.instance_methods.count.to_s} templates"
593
+ log_error "Not all templates were compiled" if ActionView::CompiledTemplates.instance_methods.count < templates.count
594
+ end
595
+
494
596
  def self.compile_erb_templates
495
597
 
496
598
  # Rails 3 has wrapped Erubis to handle block helpers in ERB templates
@@ -563,9 +665,9 @@ module Veracode
563
665
  return unless templates.count > 0
564
666
 
565
667
  begin
566
- require 'action_view'
567
- require 'haml'
568
- require 'haml/template/plugin'
668
+ cond_require 'action_view'
669
+ cond_require 'haml'
670
+ cond_require 'haml/template/plugin'
569
671
  rescue Exception => e
570
672
  log_error "Unable to satisfy haml dependencies (#{e.message})"
571
673
  return
@@ -604,7 +706,58 @@ module Veracode
604
706
 
605
707
  end
606
708
 
607
-
709
+ def self.require_libs(lib_paths)
710
+ for lib_path in lib_paths
711
+ dirsToProcess = [Pathname(lib_path)]
712
+ until dirsToProcess.count == 0 || !Dir.exists?(dirsToProcess[0])
713
+ currentDir = dirsToProcess.delete_at(0)
714
+ for child in currentDir.children
715
+ if child.directory?
716
+ dirsToProcess[dirsToProcess.count] = child
717
+ base = child.to_s.partition("#{lib_path}/")[2]
718
+ lib = ""
719
+ for part in base.split('/').reverse
720
+ lib = "#{part}/#{lib}"
721
+ lib = lib[0..lib.length-2] if lib[lib.length-1] == '/'
722
+ begin
723
+ if cond_require lib
724
+ puts "requiring #{lib}" if $options[:verbose]
725
+ end
726
+ rescue Exception => e
727
+ end
728
+ end
729
+ end
730
+ end
731
+ end
732
+ end
733
+ end
734
+
735
+ def self.require_rails(gemdir)
736
+ dirsToProcess = [Pathname(gemdir)]
737
+ until dirsToProcess.count == 0
738
+ currentDir = dirsToProcess.delete_at(0)
739
+ for child in currentDir.children
740
+ if child.directory?
741
+ dirsToProcess[dirsToProcess.count] = child
742
+ end
743
+ base = child.to_s.partition("#{gemdir}/")[2]
744
+ if base.index("action_controller") != nil || base.index("action_view") != nil || base.index("active_record") != nil
745
+ lib = ""
746
+ for part in base.split('/').reverse
747
+ lib = "#{part}/#{lib}"
748
+ lib = lib[0..lib.length-2] if lib[lib.length-1] == '/'
749
+ lib.chomp!(File.extname(lib))
750
+ begin
751
+ if cond_require lib
752
+ puts "requiring #{lib}" if $options[:verbose]
753
+ end
754
+ rescue Exception => e
755
+ end
756
+ end
757
+ end
758
+ end
759
+ end
760
+ end
608
761
 
609
762
 
610
763
  ################################################################################
@@ -653,12 +806,46 @@ module Veracode
653
806
 
654
807
  puts "Phase 2 - Load Rails" if $options[:verbose]
655
808
  begin
656
- require "rails"
809
+ cond_require "rails"
810
+ cond_require 'action_controller'
811
+ cond_require 'action_view'
812
+ cond_require 'active_record'
657
813
  rescue Exception => e
658
814
  puts "Unable to require rails: #{e.message}"
659
815
  log_error "Unable to require rails: #{e.message}"
660
816
  exit
661
817
  else
818
+ @stdlib = $:
819
+ @gemdir = Gem.dir
820
+
821
+ ## Imitate script/rails
822
+ # APP_PATH = File.expand_path('config/application')
823
+ # APP_PATH is already set in bin/veracode
824
+ #require File.expand_path('../../config/boot', __FILE__)
825
+ glob_require "config/boot.rb"
826
+ #require 'rails/commands'
827
+ # this will trigger the console to be launched
828
+ # ARGV.clear
829
+ # ARGV << 'console'
830
+ # ARGV << '--sandbox'
831
+ # require 'rails/commands'
832
+
833
+ ## Imitate rails/commands when console
834
+ glob_require 'rails/commands/console'
835
+ # require APP_PATH # => config/application.rb
836
+
837
+ glob_require "config/application.rb"
838
+
839
+ Rails.application.require_environment! unless $options[:jruby]
840
+ begin
841
+ cond_require 'sass'
842
+ cond_require 'sass/rails/importer'
843
+ cond_require 'multi_json/adapters/json_gem'
844
+ rescue Exception => e
845
+ end
846
+
847
+ require_libs(@stdlib)
848
+ require_rails(@gemdir)
662
849
  puts "Required rails" if $options[:verbose]
663
850
  end
664
851
 
@@ -681,26 +868,6 @@ module Veracode
681
868
  # phase 3 - require app
682
869
 
683
870
  puts "Phase 3 - Imitate Rails" if $options[:verbose]
684
-
685
- ## Imitate script/rails
686
- # APP_PATH = File.expand_path('config/application')
687
- # APP_PATH is already set in bin/veracode
688
- #require File.expand_path('../../config/boot', __FILE__)
689
- glob_require "config/boot.rb"
690
- #require 'rails/commands'
691
- # this will trigger the console to be launched
692
- # ARGV.clear
693
- # ARGV << 'console'
694
- # ARGV << '--sandbox'
695
- # require 'rails/commands'
696
-
697
- ## Imitate rails/commands when console
698
- glob_require 'rails/commands/console'
699
- # require APP_PATH # => config/application.rb
700
-
701
- glob_require "config/application.rb"
702
-
703
- Rails.application.require_environment! unless $options[:jruby]
704
871
  # Following line will actually kick off IRB
705
872
  # Rails::Console.start(Rails.application)
706
873
 
@@ -709,23 +876,28 @@ module Veracode
709
876
  glob_require "rails/console/app"
710
877
  glob_require "rails/console/helpers"
711
878
 
879
+ glob_require "lib/**/*.rb"
712
880
  glob_require "app/models/**/*.rb"
713
881
  glob_require "app/helpers/**/*.rb"
714
882
  glob_require "app/controllers/application_controller.rb"
715
883
  glob_require "app/controllers/**/*.rb"
716
884
 
717
- compile_erb_templates
718
- compile_haml_templates
885
+ compile_templates
719
886
 
720
887
  self.update
721
888
  self.stats if $options[:verbose]
722
889
 
890
+ # Ensure compiled templates are fully disassembled in archive
891
+ @baseline_modules.delete(ActionView::CompiledTemplates)
892
+
723
893
  if $options[:phase3]
724
894
  puts "Processing and disassembling #{APP_NAME} classes and modules"
725
895
  archive(@baseline_modules, false)
726
896
  archive(@modules - @baseline_modules, true)
727
897
  end
728
898
 
899
+ archive_schema
900
+
729
901
  ## /phase 3 - require app
730
902
  ################################################################
731
903
 
@@ -0,0 +1,49 @@
1
+ module Veracode
2
+ SupportedGems = %w{
3
+ actionmailer
4
+ actionpack
5
+ activemodel
6
+ activerecord
7
+ activeresource
8
+ activesupport
9
+ arel
10
+ builder
11
+ erubis
12
+ haml
13
+ haml-rails
14
+ rails
15
+ railties
16
+ veracode
17
+ }
18
+
19
+ def self.list_gems
20
+
21
+ gems = `bundle list`.each_line
22
+ .reject {|line| line !~ /^ \* /}
23
+ .map {|line| line[4..-1]}
24
+ .map {|line| line.split.first}
25
+
26
+ begin
27
+ File.open(@gems_filename, "wb") {|gems_file|
28
+ gems_file.puts '<messages>'
29
+ gems.each {|gem|
30
+ gems_file << <<GEMS_XML
31
+ <message>
32
+ <platform>ruby</platform>
33
+ <name>#{gem}</name>
34
+ <detailed_message>#{gem}</detailed_message>
35
+ <token>#{gem}</token>
36
+ <package>rubygem.#{gem}</package>
37
+ <errorlevel>#{(SupportedGems.include?(gem) ? "info" : "warn" )}</errorlevel>
38
+ <type>framework_unsupported</type>
39
+ </message>
40
+ GEMS_XML
41
+ }
42
+ gems_file.puts '</messages>'
43
+ }
44
+ rescue Exception => e
45
+ log_error "Unable to write to gem list to file #{@gems_filename}: #{e.message}"
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,86 @@
1
+ module Veracode
2
+ module ActiveRecord
3
+ class Model
4
+ attr_reader :name, :attributes
5
+ def initialize(name)
6
+ @name = name
7
+ @attributes = Array.new
8
+ end
9
+ def binary(name, *rest)
10
+ @attributes << [name, :binary]
11
+ end
12
+ def boolean(name, *rest)
13
+ @attributes << [name, :boolean]
14
+ end
15
+ def date(name, *rest)
16
+ @attributes << [name, :date]
17
+ end
18
+ def datetime(name, *rest)
19
+ @attributes << [name, :datetime]
20
+ end
21
+ def decimal(name, *rest)
22
+ @attributes << [name, :decimal]
23
+ end
24
+ def float(name, *rest)
25
+ @attributes << [name, :float]
26
+ end
27
+ def integer(name, *rest)
28
+ @attributes << [name, :integer]
29
+ end
30
+ def primary_key(name, *rest)
31
+ @attributes << [name, :primary_key]
32
+ end
33
+ def string(name, *rest)
34
+ @attributes << [name, :string]
35
+ end
36
+ def text(name, *rest)
37
+ @attributes << [name, :text]
38
+ end
39
+ def time(name, *rest)
40
+ @attributes << [name, :time]
41
+ end
42
+ def timestamp(name, *rest)
43
+ @attributes << [name, :timestamp]
44
+ end
45
+ end
46
+
47
+ class Schema
48
+ def self.define(info={}, &block)
49
+ Schema.new.instance_eval(&block)
50
+ end
51
+ def create_table(name, options={})
52
+ td = Model.new(name)
53
+ td.integer('id')
54
+ yield td if block_given?
55
+ Veracode.add_to_archive Veracode.format_variable("@@#{td.name}", td.attributes, 'class')
56
+ end
57
+ def add_index(table_name, column_name, options = {})
58
+ end
59
+ end
60
+ end
61
+
62
+ def self.archive_schema
63
+ puts "Evaluating and archiving schema information"
64
+ schema_file = File.join("db", "schema.rb")
65
+
66
+ begin
67
+ schema = 'Veracode::' + File.read(schema_file).each_line.reject {|l| l =~ /^\s*#/}.join
68
+ rescue Exception => e
69
+ puts "Unable to retrieve schema information from 'db/schema.rb'. Are your migrations up to date?"
70
+ log_error "Unable to retrieve schema from 'db/schema.rb' (#{e.message})"
71
+ add_to_archive %Q|module "Veracode::Schema"\n|
72
+ add_to_archive %Q|endmodule\n\n|
73
+ return
74
+ end
75
+
76
+ add_to_archive %Q|module "Veracode::Schema"\n|
77
+ begin
78
+ eval(schema)
79
+ rescue Exception => e
80
+ puts "Unable to evaluate schema information from 'db/schema.rb'. (#{e.message})"
81
+ log_error "Unable to evaluate 'db/schema.rb' (#{e.message})"
82
+ end
83
+ add_to_archive %Q|endmodule\n\n|
84
+ end
85
+
86
+ end
@@ -1,3 +1,4 @@
1
1
  module Veracode
2
- VERSION = "1.0.0.alpha"
2
+ VERSION = '1.0.0.alpha6'
3
+ ARCHIVE_VERSION = '2012-07-04'
3
4
  end
metadata CHANGED
@@ -1,27 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: veracode
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.alpha
5
- prerelease: 6
4
+ version: 1.0.0.alpha6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Veracode
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-05-14 00:00:00.000000000 Z
11
+ date: 2015-06-05 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rubyzip
16
- requirement: &70257511683960 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: '1.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70257511683960
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
25
27
  description: Prepares your Ruby on Rails app for submission to Veracode.
26
28
  email: devcontact@veracode.com
27
29
  executables:
@@ -31,30 +33,34 @@ extra_rdoc_files: []
31
33
  files:
32
34
  - bin/veracode
33
35
  - lib/veracode.rb
36
+ - lib/veracode/gems.rb
37
+ - lib/veracode/schema.rb
34
38
  - lib/veracode/version.rb
35
39
  homepage: http://veracode.com/
36
40
  licenses: []
41
+ metadata: {}
37
42
  post_install_message:
38
43
  rdoc_options: []
39
44
  require_paths:
40
45
  - lib
41
46
  required_ruby_version: !ruby/object:Gem::Requirement
42
- none: false
43
47
  requirements:
44
- - - ~>
48
+ - - '>='
45
49
  - !ruby/object:Gem::Version
46
50
  version: 1.9.3.0
51
+ - - <
52
+ - !ruby/object:Gem::Version
53
+ version: 2.2.0
47
54
  required_rubygems_version: !ruby/object:Gem::Requirement
48
- none: false
49
55
  requirements:
50
- - - ! '>'
56
+ - - '>'
51
57
  - !ruby/object:Gem::Version
52
58
  version: 1.3.1
53
59
  requirements: []
54
60
  rubyforge_project:
55
- rubygems_version: 1.8.10
61
+ rubygems_version: 2.4.3
56
62
  signing_key:
57
- specification_version: 3
63
+ specification_version: 4
58
64
  summary: Command line tool for preparing your Ruby on Rails app for submission to
59
65
  Veracode
60
66
  test_files: []