veracode 1.0.0.alpha6 → 1.0.0.alpha7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 902b115fab8cb21e15a5bd54aef3246f5380de49
4
- data.tar.gz: ca13044ad546a545134ed74b7b7a3a0504329e47
3
+ metadata.gz: e57a698db0528192fcbd096c38cb4236ef54869f
4
+ data.tar.gz: f4b1f130125636850f94bddd03356b35ab6678f6
5
5
  SHA512:
6
- metadata.gz: 2268ae1531eedcc77c9b21b77d544c06c6a1f8b10f74504b9c616a092a6d95c2966e8f98188d1f40fbba87eb9701511268a9b614c5f2a35911f0c41630770b47
7
- data.tar.gz: 66bc411b52c53ff87c5958eb9a6c2dd1b66048d3d5fa3e2beca07798476eb9899fcb0385cf857fbd20a1e48493394a919729de0560efe47fe26d2867ed70c35c
6
+ metadata.gz: cbfc1cfc6c98a2dde96540a8f5c2f05baa01f4076e3204c49edcec5db86db752f641bb923b5f998a85e65fabe45cd1b0e05ac5074acdb71658315b1c8459f02c
7
+ data.tar.gz: 0935f7c827279516a28e56068e9b00c45c214484316f38e85ab618810dfa29811d368498a0822b8705a92bf22322946645e0bf9873e502db7f032fb294ba3665
data/bin/veracode CHANGED
@@ -16,12 +16,10 @@ require 'veracode'
16
16
  require 'veracode/version'
17
17
 
18
18
  $options = {
19
- :phase1 => false,
20
- :phase2 => false,
21
- :phase3 => true,
22
19
  :archive_source => true,
23
20
  :include_inherited => false,
24
21
  :jruby => false,
22
+ :environment => false,
25
23
  }
26
24
 
27
25
  subcommand = ARGV.shift
@@ -34,22 +32,13 @@ case subcommand
34
32
  $options[:verbose] = true
35
33
  end
36
34
 
37
- opts.on("-a", "--all", "Archive objects at all stages") do
38
- $options[:phase1] = true
39
- $options[:phase2] = true
40
- end
41
-
42
- opts.on("-f", "--file", "Disassemble .rb files") do
43
- $options[:disasm] = true
44
- end
45
-
46
35
  opts.on("-j", "--jruby", "Force JRuby mode") do
47
36
  $options[:jruby] = true
48
37
  end
49
38
 
50
- opts.on("--[no-]source", "[Don't] Include source code in archive") do |s|
51
- $options[:archive_source] = s
52
- end
39
+ # opts.on("--[no-]source", "[Don't] Include source code in archive") do |s|
40
+ # $options[:archive_source] = s
41
+ # end
53
42
 
54
43
  opts.on("-D", "--debug", "Enable debug output") do
55
44
  $DEBUG = true
@@ -73,6 +62,23 @@ case subcommand
73
62
  " #{opts.program_name} help"
74
63
  end.parse!
75
64
 
65
+ when "environment", "env"
66
+ $options[:environment] = true
67
+
68
+ OptionParser.new do |opts|
69
+ opts.banner = "Usage: veracode environment [options]"
70
+
71
+ opts.on("-v", "--verbose", "Run verbosely") do
72
+ $options[:verbose] = true
73
+ end
74
+
75
+ opts.on("-D", "--debug", "Enable debug output") do
76
+ $DEBUG = true
77
+ end
78
+
79
+ end.parse!
80
+ Veracode.prepare
81
+
76
82
  else
77
83
  $stderr.puts "#{subcommand.dump} is not a valid subcommand"
78
84
 
data/lib/veracode.rb CHANGED
@@ -36,6 +36,7 @@ module Veracode
36
36
  @archive_filename = nil
37
37
  @archive_dirname = nil
38
38
 
39
+
39
40
  def self.init
40
41
  @run_id = Time.now.strftime("%Y%m%d%H%M%S")
41
42
  @archive_dirname = File.join("tmp","veracode-#{@run_id}")
@@ -152,28 +153,47 @@ module Veracode
152
153
  }
153
154
  }
154
155
  rescue Exception => e
155
- log_error e.message
156
- $stderr.puts "Unable to write manifest file #{@manifest_filename}: #{e.message}"
156
+ log_error "Unable to write manifest file #{@manifest_filename}: #{e.message}"
157
+ puts "Unable to write manifest file #{@manifest_filename}: #{e.message}"
157
158
  end
158
159
 
159
160
  @errorlog.flush
160
161
 
161
162
  begin
162
- Zip::File.open(@archive_filename, Zip::File::CREATE) { |zf|
163
- @manifest.each {|file|
164
-
165
- if file.start_with?(@archive_dirname)
166
- name_in_archive = file.sub(/^#{@archive_dirname + File::SEPARATOR}/,"")
167
- else
168
- name_in_archive = File.join(APP_NAME, file)
169
- end
170
-
171
- puts "Adding #{file} to archive as #{name_in_archive}" if $options[:verbose]
172
- zf.add(name_in_archive, file)
163
+ if Gem.loaded_specs.keys.include?("zipruby")
164
+ log_error "zipruby gem detected, using it instead of rubyzip for creating archive"
165
+ @errorlog.flush
166
+ Zip::Archive.open(@archive_filename, Zip::CREATE) { |ar|
167
+ @manifest.each { |file|
168
+
169
+ if file.start_with?(@archive_dirname)
170
+ name_in_archive = file.sub(/^#{@archive_dirname + File::SEPARATOR}/,"")
171
+ else
172
+ name_in_archive = File.join(APP_NAME, file)
173
+ end
174
+
175
+ puts "Adding #{file} to archive as #{name_in_archive}" if $options[:verbose]
176
+ ar.add_file(name_in_archive, file)
177
+ }
178
+ }
179
+ else
180
+ Zip::File.open(@archive_filename, Zip::File::CREATE) { |zf|
181
+ @manifest.each { |file|
182
+
183
+ if file.start_with?(@archive_dirname)
184
+ name_in_archive = file.sub(/^#{@archive_dirname + File::SEPARATOR}/,"")
185
+ else
186
+ name_in_archive = File.join(APP_NAME, file)
187
+ end
188
+
189
+ puts "Adding #{file} to archive as #{name_in_archive}" if $options[:verbose]
190
+ zf.add(name_in_archive, file)
191
+ }
173
192
  }
174
- }
193
+ end
175
194
  rescue Exception => e
176
- $stderr.puts "Unable to create archive #{@manifest_filename}: #{e.message}"
195
+ log_error "Unable to create archive #{@manifest_filename}: #{e.message}"
196
+ puts "Unable to create archive #{@manifest_filename}: #{e.message}"
177
197
  exit
178
198
  end
179
199
 
@@ -233,20 +253,24 @@ module Veracode
233
253
 
234
254
  def self.glob_require(files)
235
255
  any_new = false
256
+ total, count = 0, 0
236
257
  Dir.glob(files) do |f|
237
258
  print "Requiring #{f.to_s} " if $options[:verbose]
238
259
 
239
260
  begin
240
- any_new |= cond_require File.expand_path(f)
261
+ required = require File.expand_path(f)
241
262
  rescue Exception => e
242
263
  puts "(failed: #{e.message})" if $options[:verbose]
243
264
  log_error "Unable to require #{File.expand_path(f).to_s.dump} (#{e.message})"
244
265
  else
245
- puts "(OK)" if $options[:verbose]
266
+ puts "(OK: #{(required ? "required" : "already required")})" if $options[:verbose]
246
267
  end
247
-
268
+ any_new |= required
269
+ total += 1
270
+ count += 1 if required
248
271
  end
249
- return any_new
272
+ puts "#{count}/#{total} files were required" if $options[:verbose]
273
+ any_new
250
274
  end
251
275
 
252
276
  def self.safe_name(o)
@@ -254,7 +278,11 @@ module Veracode
254
278
  when o == ActiveSupport::TimeWithZone
255
279
  "ActiveSupport::TimeWithZone"
256
280
  when o.is_a?(Module)
257
- ( o.name.nil? ? o.to_s : o.name )
281
+ begin
282
+ ( o.name.nil? ? o.to_s : o.name.to_s )
283
+ rescue
284
+ o.to_s
285
+ end
258
286
  when o.is_a?(Method), o.is_a?(UnboundMethod)
259
287
  o.name.to_s
260
288
  else
@@ -319,7 +347,13 @@ module Veracode
319
347
  def self.prepare_archive
320
348
  @disasmlog = Zlib::GzipWriter.new(File.open(@disasmlog_filename, "wb"), nil, nil)
321
349
  @disasmlog.puts "#{RUBY_ENGINE}-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
322
- @disasmlog.puts "# " + `rails --version`.chomp
350
+ if $options[:environment]
351
+ @disasmlog.puts "# EnvironmentDef %s-%s_rails-%s" % [RUBY_ENGINE, RUBY_VERSION, Rails.version]
352
+ else
353
+ @disasmlog.puts "# Environment %s-%s_rails-%s" % [RUBY_ENGINE, RUBY_VERSION, Rails.version]
354
+ end
355
+ @disasmlog.puts "# Ruby #{RUBY_ENGINE}-#{RUBY_VERSION}"
356
+ @disasmlog.puts "# Rails #{Rails.version}"
323
357
  @disasmlog.puts
324
358
  end
325
359
 
@@ -396,7 +430,7 @@ module Veracode
396
430
  m.included_modules.map {|m| "include #{m.inspect.dump}\n" }.join :
397
431
  ""
398
432
  ) +
399
- ( m.singleton_class.included_modules.count > 0 ?
433
+ ( m.respond_to?(:singleton_class) && m.singleton_class.included_modules.count > 0 ?
400
434
  m.singleton_class.included_modules.map {|m| "extend #{m.inspect.dump}\n" }.join :
401
435
  ""
402
436
  )
@@ -432,17 +466,20 @@ module Veracode
432
466
  end
433
467
  end
434
468
 
435
- if m.respond_to?(:global_variables)
436
- m.global_variables.each do |v_symbol|
437
- begin
438
- v = eval(v_symbol.to_s)
439
- formatted_contents += format_variable(v_symbol, v, "global")
440
- rescue Exception => e
441
- log_error "Error archiving global variable #{v_symbol.to_s.dump}: #{e.message}"
442
- formatted_contents += format_variable(v_symbol, :veracode_nil, "global")
443
- end
444
-
469
+ begin
470
+ if m == Kernel
471
+ m.global_variables.each do |v_symbol|
472
+ begin
473
+ v = eval(v_symbol.to_s)
474
+ formatted_contents += format_variable(v_symbol, v, "global")
475
+ rescue Exception => e
476
+ log_error "Error archiving global variable #{v_symbol.to_s.dump}: #{e.message}"
477
+ formatted_contents += format_variable(v_symbol, :veracode_nil, "global")
478
+ end
479
+ end
445
480
  end
481
+ rescue Exception => e
482
+ # m.respond_to?(:global_variables) was throwing exceptions
446
483
  end
447
484
 
448
485
  %w[ public protected private ].each {|p|
@@ -706,7 +743,7 @@ module Veracode
706
743
 
707
744
  end
708
745
 
709
- def self.require_libs(lib_paths)
746
+ def self.require_libs(lib_paths)
710
747
  for lib_path in lib_paths
711
748
  dirsToProcess = [Pathname(lib_path)]
712
749
  until dirsToProcess.count == 0 || !Dir.exists?(dirsToProcess[0])
@@ -714,50 +751,52 @@ module Veracode
714
751
  for child in currentDir.children
715
752
  if child.directory?
716
753
  dirsToProcess[dirsToProcess.count] = child
717
- base = child.to_s.partition("#{lib_path}/")[2]
754
+ base = child.to_s.partition("#{lib_path}/")[2]
718
755
  lib = ""
719
756
  for part in base.split('/').reverse
720
757
  lib = "#{part}/#{lib}"
721
758
  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
759
+ begin
760
+ if cond_require lib
761
+ puts "requiring #{lib}" if $options[:verbose]
727
762
  end
728
- end
763
+ rescue Exception => e
764
+ end
729
765
  end
730
766
  end
731
767
  end
732
768
  end
733
769
  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
770
+ end
771
+
772
+ def self.require_rails(gemdir)
773
+ dirsToProcess = [Pathname(gemdir)]
774
+ until dirsToProcess.count == 0
775
+ currentDir = dirsToProcess.delete_at(0)
776
+ for child in currentDir.children
777
+ if child.directory?
778
+ dirsToProcess[dirsToProcess.count] = child
779
+ end
780
+ base = child.to_s.partition("#{gemdir}/")[2]
781
+ if base.index("action_controller") != nil || base.index("action_view") != nil || base.index("active_record") != nil
782
+ lib = ""
783
+ for part in base.split('/').reverse
784
+ lib = "#{part}/#{lib}"
785
+ lib = lib[0..lib.length-2] if lib[lib.length-1] == '/'
786
+ lib.chomp!(File.extname(lib))
787
+ begin
788
+ if cond_require lib
789
+ puts "requiring #{lib}" if $options[:verbose]
790
+ end
791
+ rescue Exception => e
792
+ end
757
793
  end
758
794
  end
759
795
  end
760
796
  end
797
+ end
798
+
799
+
761
800
 
762
801
 
763
802
  ################################################################################
@@ -774,16 +813,6 @@ module Veracode
774
813
  puts
775
814
  end
776
815
 
777
- if $options[:disasm]
778
- rbfiles = File.join("**", "*.rb")
779
- Dir[rbfiles].each do |f|
780
- puts RubyVM::InstructionSequence.compile_file(f).disasm
781
- puts
782
- end
783
- exit
784
- end
785
-
786
- prepare_archive
787
816
 
788
817
  ################################################################
789
818
  ## phase 1 - Create baseline
@@ -792,10 +821,6 @@ module Veracode
792
821
  puts "Phase 1 - Initial State" if $options[:verbose]
793
822
  self.stats if $options[:verbose]
794
823
 
795
- if $options[:phase1]
796
- puts "Processing and disassembling Ruby standard classes and modules"
797
- archive(@modules)
798
- end
799
824
  ## /phase 1 - Create baseline
800
825
  ################################################################
801
826
 
@@ -806,59 +831,54 @@ module Veracode
806
831
 
807
832
  puts "Phase 2 - Load Rails" if $options[:verbose]
808
833
  begin
809
- cond_require "rails"
810
- cond_require 'action_controller'
811
- cond_require 'action_view'
812
- cond_require 'active_record'
834
+ require "rails/all"
813
835
  rescue Exception => e
814
836
  puts "Unable to require rails: #{e.message}"
815
837
  log_error "Unable to require rails: #{e.message}"
816
838
  exit
817
839
  else
840
+ puts "Required rails" if $options[:verbose]
841
+ end
842
+
843
+ ## Imitate script/rails
844
+ # APP_PATH = File.expand_path('config/application')
845
+ # APP_PATH is already set in bin/veracode
846
+ #require File.expand_path('../../config/boot', __FILE__)
847
+ glob_require "config/boot.rb"
848
+ #require 'rails/commands'
849
+ # this will trigger the console to be launched
850
+ # ARGV.clear
851
+ # ARGV << 'console'
852
+ # ARGV << '--sandbox'
853
+ # require 'rails/commands'
854
+
855
+ ## Imitate rails/commands when console
856
+ cond_require 'rails/commands/console.rb'
857
+ # require APP_PATH # => config/application.rb
858
+
859
+ glob_require "config/application.rb"
860
+
861
+ Rails.application.require_environment! unless $options[:jruby]
862
+ # Following line will actually kick off IRB
863
+ # Rails::Console.start(Rails.application)
864
+
865
+ # Imitate Rails::Console.initialize_console
866
+ # require "pp"
867
+ cond_require "rails/console/app.rb"
868
+ cond_require "rails/console/helpers.rb"
869
+
870
+ if $options[:environment]
818
871
  @stdlib = $:
819
872
  @gemdir = Gem.dir
820
873
 
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
874
  require_libs(@stdlib)
848
875
  require_rails(@gemdir)
849
- puts "Required rails" if $options[:verbose]
850
876
  end
851
877
 
852
- self.update
878
+ self.rebaseline
853
879
 
854
880
  self.stats if $options[:verbose]
855
881
 
856
- if $options[:phase2]
857
- puts "Processing and disassembling Rails classes and modules"
858
- archive(@modules)
859
- end
860
-
861
- self.rebaseline
862
882
  ## /phase 2 - Require rails
863
883
  ################################################################
864
884
 
@@ -868,19 +888,14 @@ module Veracode
868
888
  # phase 3 - require app
869
889
 
870
890
  puts "Phase 3 - Imitate Rails" if $options[:verbose]
871
- # Following line will actually kick off IRB
872
- # Rails::Console.start(Rails.application)
873
-
874
- # Imitate Rails::Console.initialize_console
875
- # require "pp"
876
- glob_require "rails/console/app"
877
- glob_require "rails/console/helpers"
878
891
 
879
- glob_require "lib/**/*.rb"
880
- glob_require "app/models/**/*.rb"
881
- glob_require "app/helpers/**/*.rb"
882
- glob_require "app/controllers/application_controller.rb"
883
- glob_require "app/controllers/**/*.rb"
892
+ any_new = true
893
+ while any_new
894
+ any_new = false
895
+ any_new |= glob_require "lib/**/*.rb"
896
+ any_new |= glob_require "app/**/*.rb"
897
+ puts "new successful requires? #{any_new.to_s}" if $options[:verbose]
898
+ end
884
899
 
885
900
  compile_templates
886
901
 
@@ -890,19 +905,25 @@ module Veracode
890
905
  # Ensure compiled templates are fully disassembled in archive
891
906
  @baseline_modules.delete(ActionView::CompiledTemplates)
892
907
 
893
- if $options[:phase3]
894
- puts "Processing and disassembling #{APP_NAME} classes and modules"
908
+ if $options[:environment]
909
+ puts "Processing and disassembling environment"
910
+ archive(@modules.reject {|o| safe_name(o) =~ /^#<(Class|Module):0x[0-9a-f]+>/i }
911
+ .reject {|o| safe_name(o) =~ /^Veracode/ }
912
+ .reject {|o| safe_name(o) =~ /^EmptyRails/ }
913
+ .reject {|o| safe_name(o) =~ /^ActionView::CompiledTemplates$/ }, false)
914
+ else
915
+ puts "Processing Ruby and Rails classes and modules"
895
916
  archive(@baseline_modules, false)
917
+ add_to_archive "\n# Phase 3 - App disassembly\n"
918
+ puts "Processing and disassembling #{APP_NAME} classes and modules"
896
919
  archive(@modules - @baseline_modules, true)
920
+ archive_schema
897
921
  end
898
922
 
899
- archive_schema
900
-
901
923
  ## /phase 3 - require app
902
924
  ################################################################
903
925
 
904
926
  finalize_archive
905
-
906
927
  pack_manifest
907
928
  cleanup
908
929
 
@@ -1,61 +1,79 @@
1
1
  module Veracode
2
2
  module ActiveRecord
3
3
  class Model
4
+
4
5
  attr_reader :name, :attributes
6
+
5
7
  def initialize(name)
6
8
  @name = name
7
9
  @attributes = Array.new
8
10
  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]
11
+
12
+ %w(
13
+ binary boolean date datetime decimal float integer primary_key string text time timestamp
14
+ ).map(&:to_sym).each do |meth|
15
+ define_method(meth) do |name, *rest|
16
+ @attributes << [name, meth]
17
+ end
44
18
  end
19
+
45
20
  end
46
21
 
47
22
  class Schema
23
+
48
24
  def self.define(info={}, &block)
49
25
  Schema.new.instance_eval(&block)
50
26
  end
27
+
51
28
  def create_table(name, options={})
52
29
  td = Model.new(name)
53
30
  td.integer('id')
54
31
  yield td if block_given?
55
32
  Veracode.add_to_archive Veracode.format_variable("@@#{td.name}", td.attributes, 'class')
56
33
  end
57
- def add_index(table_name, column_name, options = {})
58
- end
34
+
35
+ # ActiveRecord::ConnectionAdapters::SchemaStatements
36
+ # http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html
37
+ def add_column(table_name, column_name, type, options = {}) ; end
38
+ def add_index(table_name, column_name, options = {}) ; end
39
+ def add_index_options(table_name, column_name, options = {}) ; end
40
+ def add_index_sort_order(option_strings, column_names, options = {}) ; end
41
+ def add_timestamps(table_name) ; end
42
+
43
+ # ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaStatementsExt
44
+ # http://rubydoc.info/gems/activerecord-oracle_enhanced-adapter/ActiveRecord/ConnectionAdapters/OracleEnhancedSchemaStatementsExt
45
+ def add_foreign_key(from_table, to_table, options = {})
46
+ Veracode::log_error "schema.rb: ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaStatementsExt#add_foreign_key called"
47
+ end
48
+ def add_primary_key_trigger(table_name, options = {})
49
+ Veracode::log_error "schema.rb: ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaStatementsExt#add_primary_key_trigger called"
50
+ end
51
+ def add_synonym(name, table_name, options = {})
52
+ Veracode::log_error "schema.rb: ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaStatementsExt#add_synonym called"
53
+ end
54
+ # def disable_referential_integrity(&block) ; end
55
+ # def foreign_key_definition(to_table, options = {}) ; end
56
+ # def foreign_keys(table_name) ; end
57
+ # def remove_foreign_key(from_table, options) ; end
58
+ # def remove_synonym(name) ; end
59
+ # def supports_foreign_keys? ; end
60
+ # def synonyms ; end
61
+
62
+ # TODO: Return only if real receiver would respond to method
63
+ # def method_missing(meth, *args, &block)
64
+ # if ActiveRecord::ConnectionAdapters::AbstractAdapter.instance_methods.include?(meth)
65
+ # log_error "Unhandled method: #{meth} args: #{args.to_s}"
66
+ # nil
67
+ # else
68
+ # super
69
+ # end
70
+ # end
71
+ # def respond_to_everything(meth)
72
+ # log_error "Unhandled respond_to? for: #{meth}" unless really_respond_to?(meth)
73
+ # true
74
+ # end
75
+ # alias_method :really_respond_to?, :respond_to?
76
+ # alias_method :respond_to?, :respond_to_everything
59
77
  end
60
78
  end
61
79
 
@@ -1,4 +1,4 @@
1
1
  module Veracode
2
- VERSION = '1.0.0.alpha6'
2
+ VERSION = '1.0.0.alpha7'
3
3
  ARCHIVE_VERSION = '2012-07-04'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: veracode
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.alpha6
4
+ version: 1.0.0.alpha7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Veracode
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-05 00:00:00.000000000 Z
11
+ date: 2015-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  version: 1.3.1
59
59
  requirements: []
60
60
  rubyforge_project:
61
- rubygems_version: 2.4.3
61
+ rubygems_version: 2.0.14
62
62
  signing_key:
63
63
  specification_version: 4
64
64
  summary: Command line tool for preparing your Ruby on Rails app for submission to