veracode 1.0.0.alpha4 → 1.0.0.alpha9

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: 948515a4106797409146f98bd9d8c9d742216870
4
+ data.tar.gz: 263a3f858d7019ced25a402ccaf14fc3ebd6cc67
5
+ SHA512:
6
+ metadata.gz: 2f726fcd3c4932e2dd33aca04d94aff45e3bba0a6126b3a2c889c8a225a4a0373a74905c8a488c34e9b360225fbe4d7ffe0936c8c426379013559f78b3873d76
7
+ data.tar.gz: d07c8986c6ae1baee810e10161dacecb82f8c344792f6ca589a647a1bc33c7af48e878943ef9c2bfae457adab6c49a00029f415024ca7c168c8a48ed8adee14b
data/bin/veracode CHANGED
@@ -4,8 +4,13 @@ require 'optparse'
4
4
  $:.unshift File.expand_path(File.dirname(__FILE__) + "/../lib")
5
5
  $:.unshift Dir.pwd
6
6
 
7
- unless File.exists?("script/rails")
8
- $stderr.puts "Current directory #{File.basename(Dir.pwd).dump} does not appear to be a Rails 3 application."
7
+ if File.exists?('Gemfile.lock')
8
+ rails_version = File.open('Gemfile.lock').grep(/^\s*rails\s*\(=\s*[34]/)
9
+ else
10
+ rails_version = File.exists?("script/rails") #fallback for rails 3.0
11
+ end
12
+ unless rails_version
13
+ $stderr.puts "Current directory #{File.basename(Dir.pwd).dump} does not appear to be a Rails 3/4 application."
9
14
  exit
10
15
  end
11
16
  APP_PATH = File.expand_path('config/application')
data/lib/veracode.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'pathname'
2
2
  require 'set'
3
3
  require 'zlib'
4
- require 'zip/zip'
4
+ require 'zip'
5
5
  require 'veracode/version'
6
6
  require 'veracode/schema'
7
7
  require 'veracode/gems'
@@ -38,6 +38,11 @@ module Veracode
38
38
 
39
39
 
40
40
  def self.init
41
+ if Gem::Dependency.new('', '~> 2.2.0').match?('', RUBY_VERSION)
42
+ $stderr.puts "Ruby 2.2 is not supported, please consult the compilation guide for all supported Ruby versions"
43
+ exit
44
+ end
45
+
41
46
  @run_id = Time.now.strftime("%Y%m%d%H%M%S")
42
47
  @archive_dirname = File.join("tmp","veracode-#{@run_id}")
43
48
  @required_libs.merge(["pathname", "set", "zlib", "zip/zip", "veracode"])
@@ -153,28 +158,47 @@ module Veracode
153
158
  }
154
159
  }
155
160
  rescue Exception => e
156
- log_error e.message
157
- $stderr.puts "Unable to write manifest file #{@manifest_filename}: #{e.message}"
161
+ log_error "Unable to write manifest file #{@manifest_filename}: #{e.message}"
162
+ puts "Unable to write manifest file #{@manifest_filename}: #{e.message}"
158
163
  end
159
164
 
160
165
  @errorlog.flush
161
166
 
162
167
  begin
163
- Zip::ZipFile.open(@archive_filename, Zip::ZipFile::CREATE) { |zf|
164
- @manifest.each {|file|
165
-
166
- if file.start_with?(@archive_dirname)
167
- name_in_archive = file.sub(/^#{@archive_dirname + File::SEPARATOR}/,"")
168
- else
169
- name_in_archive = File.join(APP_NAME, file)
170
- end
171
-
172
- puts "Adding #{file} to archive as #{name_in_archive}" if $options[:verbose]
173
- zf.add(name_in_archive, file)
168
+ if Gem.loaded_specs.keys.include?("zipruby")
169
+ log_error "zipruby gem detected, using it instead of rubyzip for creating archive"
170
+ @errorlog.flush
171
+ Zip::Archive.open(@archive_filename, Zip::CREATE) { |ar|
172
+ @manifest.each { |file|
173
+
174
+ if file.start_with?(@archive_dirname)
175
+ name_in_archive = file.sub(/^#{@archive_dirname + File::SEPARATOR}/,"")
176
+ else
177
+ name_in_archive = File.join(APP_NAME, file)
178
+ end
179
+
180
+ puts "Adding #{file} to archive as #{name_in_archive}" if $options[:verbose]
181
+ ar.add_file(name_in_archive, file)
182
+ }
183
+ }
184
+ else
185
+ Zip::File.open(@archive_filename, Zip::File::CREATE) { |zf|
186
+ @manifest.each { |file|
187
+
188
+ if file.start_with?(@archive_dirname)
189
+ name_in_archive = file.sub(/^#{@archive_dirname + File::SEPARATOR}/,"")
190
+ else
191
+ name_in_archive = File.join(APP_NAME, file)
192
+ end
193
+
194
+ puts "Adding #{file} to archive as #{name_in_archive}" if $options[:verbose]
195
+ zf.add(name_in_archive, file)
196
+ }
174
197
  }
175
- }
198
+ end
176
199
  rescue Exception => e
177
- $stderr.puts "Unable to create archive #{@manifest_filename}: #{e.message}"
200
+ log_error "Unable to create archive #{@manifest_filename}: #{e.message}"
201
+ puts "Unable to create archive #{@manifest_filename}: #{e.message}"
178
202
  exit
179
203
  end
180
204
 
@@ -227,7 +251,12 @@ module Veracode
227
251
  # Helpers
228
252
  def self.cond_require(lib)
229
253
  if @required_libs.add?(lib)
230
- return require lib
254
+ begin
255
+ return require lib
256
+ rescue Exception => e
257
+ puts "(failed: require #{lib} #{e.message})" if $options[:verbose]
258
+ log_error "Unable to require #{lib} (#{e.message})"
259
+ end
231
260
  end
232
261
  return false
233
262
  end
@@ -905,7 +934,6 @@ end
905
934
  ################################################################
906
935
 
907
936
  finalize_archive
908
-
909
937
  pack_manifest
910
938
  cleanup
911
939
 
data/lib/veracode/gems.rb CHANGED
@@ -25,24 +25,25 @@ module Veracode
25
25
 
26
26
  begin
27
27
  File.open(@gems_filename, "wb") {|gems_file|
28
- gems_file.puts '<supportissues>'
28
+ gems_file.puts '<messages>'
29
29
  gems.each {|gem|
30
30
  gems_file << <<GEMS_XML
31
- <supportissue>
31
+ <message>
32
32
  <platform>ruby</platform>
33
33
  <name>#{gem}</name>
34
+ <detailed_message>#{gem}</detailed_message>
34
35
  <token>#{gem}</token>
35
36
  <package>rubygem.#{gem}</package>
36
37
  <errorlevel>#{(SupportedGems.include?(gem) ? "info" : "warn" )}</errorlevel>
37
38
  <type>framework_unsupported</type>
38
- </supportissue>
39
+ </message>
39
40
  GEMS_XML
40
41
  }
41
- gems_file.puts '</supportissues>'
42
+ gems_file.puts '</messages>'
42
43
  }
43
44
  rescue Exception => e
44
45
  log_error "Unable to write to gem list to file #{@gems_filename}: #{e.message}"
45
46
  end
46
47
 
47
48
  end
48
- end
49
+ end
@@ -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.alpha4'
2
+ VERSION = '1.0.0.alpha9'
3
3
  ARCHIVE_VERSION = '2012-07-04'
4
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.alpha4
5
- prerelease: 6
4
+ version: 1.0.0.alpha9
6
5
  platform: ruby
7
6
  authors:
8
7
  - Veracode
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-10-11 00:00:00.000000000 Z
11
+ date: 2017-03-17 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rubyzip
16
- requirement: &70110652152040 !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: *70110652152040
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:
@@ -36,27 +38,27 @@ files:
36
38
  - lib/veracode/version.rb
37
39
  homepage: http://veracode.com/
38
40
  licenses: []
41
+ metadata: {}
39
42
  post_install_message:
40
43
  rdoc_options: []
41
44
  require_paths:
42
45
  - lib
43
46
  required_ruby_version: !ruby/object:Gem::Requirement
44
- none: false
45
47
  requirements:
46
- - - ~>
48
+ - - ">="
47
49
  - !ruby/object:Gem::Version
48
50
  version: 1.9.3.0
49
51
  required_rubygems_version: !ruby/object:Gem::Requirement
50
- none: false
51
52
  requirements:
52
- - - ! '>'
53
+ - - ">"
53
54
  - !ruby/object:Gem::Version
54
55
  version: 1.3.1
55
56
  requirements: []
56
57
  rubyforge_project:
57
- rubygems_version: 1.8.10
58
+ rubygems_version: 2.5.1
58
59
  signing_key:
59
- specification_version: 3
60
+ specification_version: 4
60
61
  summary: Command line tool for preparing your Ruby on Rails app for submission to
61
62
  Veracode
62
63
  test_files: []
64
+ has_rdoc: