Sha256: 430313382b9f7e98a10efd43021c0a1e8268d69449ed52736ca1c20769c2731d

Contents?: true

Size: 1.91 KB

Versions: 28

Compression:

Stored size: 1.91 KB

Contents

# ==========================================
#   CMock Project - Automatic Mock Generation for C
#   Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
#   [Released under MIT License. Please refer to license.txt for details]
# ========================================== 

[ "../config/production_environment",
  "cmock_header_parser",
  "cmock_generator",
  "cmock_file_writer",
  "cmock_config",
  "cmock_plugin_manager",
  "cmock_generator_utils",
  "cmock_unityhelper_parser"].each {|req| require "#{File.expand_path(File.dirname(__FILE__))}/#{req}"}

class CMock
  
  def initialize(options=nil)
    cm_config      = CMockConfig.new(options)    
    cm_unityhelper = CMockUnityHelperParser.new(cm_config)
    cm_writer      = CMockFileWriter.new(cm_config)
    cm_gen_utils   = CMockGeneratorUtils.new(cm_config, {:unity_helper => cm_unityhelper})
    cm_gen_plugins = CMockPluginManager.new(cm_config, cm_gen_utils)
    @cm_parser     = CMockHeaderParser.new(cm_config)
    @cm_generator  = CMockGenerator.new(cm_config, cm_writer, cm_gen_utils, cm_gen_plugins)
    @silent        = (cm_config.verbosity < 2)
  end
  
  def setup_mocks(files)
    [files].flatten.each do |src|
      generate_mock src
    end
  end

  private ###############################

  def generate_mock(src)
    name = File.basename(src, '.h')
    puts "Creating mock for #{name}..." unless @silent
    @cm_generator.create_mock(name, @cm_parser.parse(name, File.read(src)))
  end
end

  # Command Line Support ###############################
  
if ($0 == __FILE__)
  usage = "usage: ruby #{__FILE__} (-oOptionsFile) File(s)ToMock"
  
  if (!ARGV[0])
    puts usage
    exit 1
  end
  
  options = nil
  filelist = []
  ARGV.each do |arg|
    if (arg =~ /^-o(\w*)/)
      options = arg.gsub(/^-o/,'')
    else
      filelist << arg
    end
  end
  
  CMock.new(options).setup_mocks(filelist)
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
ceedling-0.15.1 vendor/cmock/lib/cmock.rb
ceedling-0.15.0 vendor/cmock/lib/cmock.rb
ceedling-0.13.0 vendor/cmock/lib/cmock.rb
ceedling-0.13.0.rc1 vendor/cmock/lib/cmock.rb
ceedling-0.12.2 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.12.1 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.12.0 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.11.2 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.11.1 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.11.0 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.10.0 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.9.4 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.9.2 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.9.0 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.0.18 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.0.17 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.0.16 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.0.15 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.0.14 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
ceedling-0.0.13 new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb