veracode 1.0.0.alpha4 → 1.0.0.alpha9

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: 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: