ceedling 0.25.0 → 0.27.0
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 +4 -4
- data/README.md +1 -1
- data/assets/project_as_gem.yml +13 -0
- data/assets/project_with_guts.yml +13 -0
- data/bin/ceedling +91 -67
- data/docs/CeedlingPacket.md +61 -23
- data/docs/CeedlingPacket.odt +0 -0
- data/docs/CeedlingPacket.pdf +0 -0
- data/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/examples/temp_sensor/test/TestTemperatureCalculator.c +4 -1
- data/lib/ceedling/configurator.rb +14 -1
- data/lib/ceedling/configurator_builder.rb +2 -1
- data/lib/ceedling/configurator_validator.rb +12 -3
- data/lib/ceedling/constants.rb +3 -1
- data/lib/ceedling/defaults.rb +12 -1
- data/lib/ceedling/file_finder.rb +3 -0
- data/lib/ceedling/file_path_utils.rb +1 -1
- data/lib/ceedling/file_wrapper.rb +4 -4
- data/lib/ceedling/generator.rb +12 -3
- data/lib/ceedling/preprocessinator_helper.rb +5 -5
- data/lib/ceedling/preprocessinator_includes_handler.rb +10 -1
- data/lib/ceedling/project_config_manager.rb +1 -2
- data/lib/ceedling/project_file_loader.rb +27 -9
- data/lib/ceedling/rakefile.rb +6 -6
- data/lib/ceedling/release_invoker.rb +21 -6
- data/lib/ceedling/rules_release.rake +9 -5
- data/lib/ceedling/rules_tests.rake +6 -1
- data/lib/ceedling/setupinator.rb +1 -0
- data/lib/ceedling/tasks_base.rake +3 -0
- data/lib/ceedling/tasks_filesystem.rake +10 -7
- data/lib/ceedling/tasks_release.rake +3 -1
- data/lib/ceedling/test_includes_extractor.rb +16 -12
- data/lib/ceedling/test_invoker.rb +40 -0
- data/lib/ceedling/version.rb +3 -3
- data/lib/ceedling/version.rb.erb +1 -1
- data/plugins/command_hooks/lib/command_hooks.rb +1 -1
- data/plugins/fake_function_framework/examples/fff_example/src/bar.h +1 -0
- data/plugins/fake_function_framework/examples/fff_example/src/event_processor.c +1 -0
- data/plugins/fake_function_framework/lib/fff_mock_generator.rb +4 -0
- data/plugins/fake_function_framework/spec/{fff_mock_generator_spec.rb → fff_mock_header_generator_spec.rb} +34 -194
- data/plugins/fake_function_framework/spec/fff_mock_source_generator_spec.rb +149 -0
- data/plugins/fake_function_framework/spec/header_generator.rb +51 -0
- data/plugins/junit_tests_report/lib/junit_tests_report.rb +115 -0
- data/plugins/subprojects/README.md +63 -0
- data/plugins/subprojects/config/defaults.yml +33 -0
- data/plugins/subprojects/lib/subprojects.rb +92 -0
- data/plugins/subprojects/subprojects.rake +78 -0
- data/spec/preprocessinator_includes_handler_spec.rb +15 -5
- data/spec/spec_helper.rb +2 -2
- data/spec/spec_system_helper.rb +49 -1
- data/spec/system/deployment_spec.rb +29 -0
- data/vendor/c_exception/README.md +8 -2
- data/vendor/c_exception/docs/{readme.txt → CException.md} +133 -102
- data/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/c_exception/vendor/unity/README.md +19 -10
- data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +67 -64
- data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +20 -20
- data/vendor/c_exception/vendor/unity/auto/generate_module.rb +149 -142
- data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +234 -232
- data/vendor/c_exception/vendor/unity/auto/parse_output.rb +220 -0
- data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +108 -120
- data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +11 -9
- data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +1 -3
- data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +6 -2
- data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +45 -57
- data/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +716 -0
- data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
- data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
- data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/makefile +22 -17
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/c_exception/vendor/unity/examples/example_2/makefile +16 -17
- data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +15 -15
- data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
- data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +4 -10
- data/vendor/c_exception/vendor/unity/examples/unity_config.h +14 -26
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +12 -12
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
- data/vendor/c_exception/vendor/unity/src/unity.c +396 -330
- data/vendor/c_exception/vendor/unity/src/unity.h +50 -4
- data/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -84
- data/vendor/c_exception/vendor/unity/test/Makefile +17 -17
- data/vendor/c_exception/vendor/unity/test/rakefile +63 -3
- data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +108 -105
- data/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
- data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -6
- data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +1 -9
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
- data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
- data/vendor/c_exception/vendor/unity/test/tests/testunity.c +1338 -151
- data/vendor/cmock/README.md +10 -1
- data/vendor/cmock/config/test_environment.rb +7 -7
- data/vendor/cmock/docs/CMock_Summary.md +325 -128
- data/vendor/cmock/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/examples/make_example/Makefile +2 -2
- data/vendor/cmock/examples/temp_sensor/gcc.yml +5 -4
- data/vendor/cmock/examples/temp_sensor/iar_v4.yml +5 -4
- data/vendor/cmock/examples/temp_sensor/iar_v5.yml +5 -4
- data/vendor/cmock/examples/temp_sensor/rakefile.rb +11 -1
- data/vendor/cmock/examples/temp_sensor/rakefile_helper.rb +12 -10
- data/vendor/cmock/lib/cmock.rb +0 -3
- data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +6 -2
- data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +2 -1
- data/vendor/cmock/lib/cmock_header_parser.rb +5 -6
- data/vendor/cmock/release/version.info +1 -1
- data/vendor/cmock/scripts/create_makefile.rb +4 -2
- data/vendor/cmock/scripts/test_summary.rb +17 -9
- data/vendor/cmock/src/cmock.c +1 -0
- data/vendor/cmock/src/cmock.h +1 -1
- data/vendor/cmock/src/cmock_internals.h +14 -1
- data/vendor/cmock/test/c/TestCMockC.yml +4 -4
- data/vendor/cmock/test/c/TestCMockCDynamic.yml +4 -4
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/SAM7_FLASH.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/SAM7_RAM.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/SAM7_SIM.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/at91SAM7X256_FLASH.xcl +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/at91SAM7X256_RAM.xcl +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/ioat91sam7x256.ddf +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.dep +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.ewd +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.ewp +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.eww +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X-EK.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256.inc +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256.rdf +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256.tcl +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256_inc.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/ioat91sam7x256.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/lib_AT91SAM7X256.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.cspy.bat +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.dbgdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.dni +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.wsdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/srcIAR/Cstartup.s79 +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/srcIAR/Cstartup_SAM7.c +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/SAM7_FLASH.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/SAM7_RAM.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/SAM7_SIM.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/at91SAM7X256_FLASH.icf +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/at91SAM7X256_RAM.icf +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.dep +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.ewd +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.ewp +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.eww +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/AT91SAM7X-EK.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/AT91SAM7X256_inc.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/lib_AT91SAM7X256.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/project.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.cspy.bat +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.dbgdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.dni +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.wsdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X_FLASH_Debug.jlink +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.cspy.bat +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.dbgdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.dni +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.wsdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo_Binary.jlink +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo_FLASH_Debug.jlink +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo_RAM_Debug.jlink +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/srcIAR/Cstartup.s +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/srcIAR/Cstartup_SAM7.c +0 -0
- data/vendor/cmock/{Rakefile → test/rakefile} +9 -9
- data/vendor/cmock/{rakefile_helper.rb → test/rakefile_helper.rb} +13 -13
- data/vendor/cmock/test/system/test_compilation/config.yml +4 -4
- data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +2 -0
- data/vendor/cmock/{targets → test/targets}/clang_strict.yml +11 -11
- data/vendor/cmock/{targets → test/targets}/gcc.yml +9 -9
- data/vendor/cmock/{targets → test/targets}/gcc_64.yml +9 -9
- data/vendor/cmock/{targets → test/targets}/gcc_tiny.yml +9 -9
- data/vendor/cmock/{targets → test/targets}/iar_arm_v4.yml +9 -9
- data/vendor/cmock/{targets → test/targets}/iar_arm_v5.yml +10 -10
- data/vendor/cmock/test/test_helper.rb +4 -8
- data/vendor/cmock/test/unit/cmock_config_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_file_writer_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +3 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_header_parser_test.rb +15 -2
- data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +6 -10
- data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +1 -1
- data/vendor/cmock/vendor/c_exception/README.md +8 -2
- data/vendor/cmock/vendor/c_exception/docs/{readme.txt → CException.md} +133 -102
- data/vendor/cmock/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +19 -10
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +67 -64
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +20 -20
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +149 -142
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +234 -232
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parse_output.rb +220 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +108 -120
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +11 -9
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +1 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +6 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +45 -57
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +716 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +22 -17
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +16 -17
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +15 -15
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +4 -10
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +14 -26
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +12 -12
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +396 -330
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +50 -4
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -84
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +17 -17
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile +63 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +108 -105
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +1 -9
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testunity.c +1338 -151
- data/vendor/cmock/vendor/unity/README.md +19 -10
- data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +67 -64
- data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +20 -20
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +149 -142
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +234 -232
- data/vendor/cmock/vendor/unity/auto/parse_output.rb +220 -0
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +108 -120
- data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +11 -9
- data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +1 -3
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +6 -2
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +45 -57
- data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +716 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
- data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
- data/vendor/cmock/vendor/unity/examples/example_1/makefile +22 -17
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/makefile +16 -17
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +15 -15
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
- data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +4 -10
- data/vendor/cmock/vendor/unity/examples/unity_config.h +14 -26
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +12 -12
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
- data/vendor/cmock/vendor/unity/release/version.info +1 -1
- data/vendor/cmock/vendor/unity/src/unity.c +396 -330
- data/vendor/cmock/vendor/unity/src/unity.h +50 -4
- data/vendor/cmock/vendor/unity/src/unity_internals.h +119 -84
- data/vendor/cmock/vendor/unity/test/Makefile +17 -17
- data/vendor/cmock/vendor/unity/test/rakefile +63 -3
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +108 -105
- data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
- data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -6
- data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +1 -9
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
- data/vendor/cmock/vendor/unity/test/tests/testunity.c +1338 -151
- data/vendor/deep_merge/Rakefile +1 -1
- data/vendor/unity/README.md +19 -10
- data/vendor/unity/auto/colour_prompt.rb +67 -64
- data/vendor/unity/auto/colour_reporter.rb +20 -20
- data/vendor/unity/auto/generate_module.rb +149 -142
- data/vendor/unity/auto/generate_test_runner.rb +234 -232
- data/vendor/unity/auto/parse_output.rb +220 -0
- data/vendor/unity/auto/stylize_as_junit.rb +108 -120
- data/vendor/unity/auto/test_file_filter.rb +11 -9
- data/vendor/unity/auto/type_sanitizer.rb +1 -3
- data/vendor/unity/auto/unity_test_summary.py +6 -2
- data/vendor/unity/auto/unity_test_summary.rb +45 -57
- data/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/unity/docs/UnityAssertionsReference.md +716 -0
- data/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
- data/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
- data/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
- data/vendor/unity/examples/example_1/makefile +22 -17
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/unity/examples/example_2/makefile +16 -17
- data/vendor/unity/examples/example_3/rakefile.rb +15 -15
- data/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
- data/vendor/unity/examples/example_3/readme.txt +4 -10
- data/vendor/unity/examples/unity_config.h +14 -26
- data/vendor/unity/extras/fixture/rakefile.rb +12 -12
- data/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
- data/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
- data/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
- data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
- data/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
- data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
- data/vendor/unity/release/version.info +1 -1
- data/vendor/unity/src/unity.c +396 -330
- data/vendor/unity/src/unity.h +50 -4
- data/vendor/unity/src/unity_internals.h +119 -84
- data/vendor/unity/test/Makefile +17 -17
- data/vendor/unity/test/rakefile +63 -3
- data/vendor/unity/test/rakefile_helper.rb +108 -105
- data/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
- data/vendor/unity/test/targets/clang_file.yml +0 -6
- data/vendor/unity/test/targets/clang_strict.yml +1 -9
- data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
- data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
- data/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
- data/vendor/unity/test/tests/testunity.c +1338 -151
- metadata +102 -157
- data/test_graveyard/integration/paths.yml +0 -17
- data/test_graveyard/integration/paths_test.rb +0 -80
- data/test_graveyard/integration/rake_rules_aux_dependencies_test.rb +0 -75
- data/test_graveyard/integration/rake_rules_cmock_test.rb +0 -74
- data/test_graveyard/integration/rake_rules_preprocess_test.rb +0 -178
- data/test_graveyard/integration/rake_rules_test.rb +0 -268
- data/test_graveyard/integration/rake_tasks_test.rb +0 -103
- data/test_graveyard/integration_test_helper.rb +0 -34
- data/test_graveyard/rakefile_rules.rb +0 -10
- data/test_graveyard/rakefile_rules_aux_dependencies.rb +0 -10
- data/test_graveyard/rakefile_rules_cmock.rb +0 -10
- data/test_graveyard/rakefile_rules_preprocess.rb +0 -10
- data/test_graveyard/rakefile_tasks.rb +0 -10
- data/test_graveyard/system/file_system_dependencies.yml +0 -20
- data/test_graveyard/system/file_system_kitchen_sink.yml +0 -20
- data/test_graveyard/system/file_system_mocks.yml +0 -20
- data/test_graveyard/system/file_system_preprocess.yml +0 -20
- data/test_graveyard/system/file_system_simple.yml +0 -20
- data/test_graveyard/system/file_system_test.rb +0 -78
- data/test_graveyard/system/mocks/include/a_file.h +0 -2
- data/test_graveyard/system/mocks/include/other_stuff.h +0 -2
- data/test_graveyard/system/mocks/include/stuff.h +0 -3
- data/test_graveyard/system/mocks/source/a_file.c +0 -9
- data/test_graveyard/system/mocks/test/test_a_file.c +0 -41
- data/test_graveyard/system/mocks/test/test_no_file.c +0 -14
- data/test_graveyard/system/project_mocks.yml +0 -43
- data/test_graveyard/system/project_mocks_test.rb +0 -38
- data/test_graveyard/system/project_simple.yml +0 -36
- data/test_graveyard/system/project_simple_test.rb +0 -39
- data/test_graveyard/system/rule_mocks_test.rb +0 -44
- data/test_graveyard/system/rule_runners_test.rb +0 -44
- data/test_graveyard/system/simple/include/other_stuff.h +0 -2
- data/test_graveyard/system/simple/include/stuff.h +0 -3
- data/test_graveyard/system/simple/source/other_stuff.c +0 -6
- data/test_graveyard/system/simple/source/stuff.c +0 -7
- data/test_graveyard/system/simple/test/test_other_stuff.c +0 -30
- data/test_graveyard/system/simple/test/test_stuff.c +0 -51
- data/test_graveyard/system_test_helper.rb +0 -73
- data/test_graveyard/test_helper.rb +0 -93
- data/test_graveyard/unit/busted/configurator_builder_test.rb +0 -569
- data/test_graveyard/unit/busted/configurator_helper_test.rb +0 -234
- data/test_graveyard/unit/busted/configurator_test.rb +0 -232
- data/test_graveyard/unit/busted/configurator_validator_test.rb +0 -169
- data/test_graveyard/unit/busted/deep_merge_fix_test.rb +0 -55
- data/test_graveyard/unit/busted/dependinator_test.rb +0 -129
- data/test_graveyard/unit/busted/file_finder_helper_test.rb +0 -45
- data/test_graveyard/unit/busted/file_finder_test.rb +0 -114
- data/test_graveyard/unit/busted/file_path_utils_test.rb +0 -97
- data/test_graveyard/unit/busted/file_system_utils_test.rb +0 -21
- data/test_graveyard/unit/busted/generator_test.rb +0 -187
- data/test_graveyard/unit/busted/generator_test_results_test.rb +0 -129
- data/test_graveyard/unit/busted/generator_test_runner_test.rb +0 -475
- data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +0 -39
- data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +0 -156
- data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +0 -93
- data/test_graveyard/unit/busted/preprocessinator_test.rb +0 -57
- data/test_graveyard/unit/busted/project_file_loader_test.rb +0 -142
- data/test_graveyard/unit/busted/setupinator_test.rb +0 -45
- data/test_graveyard/unit/busted/streaminator_test.rb +0 -49
- data/test_graveyard/unit/busted/task_invoker_test.rb +0 -69
- data/test_graveyard/unit/busted/test_includes_extractor_test.rb +0 -111
- data/test_graveyard/unit/busted/test_invoker_helper_test.rb +0 -62
- data/test_graveyard/unit/busted/test_invoker_test.rb +0 -47
- data/test_graveyard/unit/busted/tool_executor_helper_test.rb +0 -100
- data/test_graveyard/unit/busted/tool_executor_test.rb +0 -351
- data/test_graveyard/unit/busted/verbosinator_test.rb +0 -65
- data/test_graveyard/unit/preprocessinator_extractor_test.rb +0 -731
- data/test_graveyard/unit_test_helper.rb +0 -16
- data/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
- data/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
- data/vendor/c_exception/vendor/unity/auto/parseOutput.rb +0 -191
- data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
- data/vendor/cmock/docs/CMock Summary.odt +0 -0
- data/vendor/cmock/docs/CMock Summary.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
- data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parseOutput.rb +0 -191
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
- data/vendor/cmock/vendor/unity/auto/parseOutput.rb +0 -191
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
- data/vendor/unity/auto/parseOutput.rb +0 -191
- data/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
- data/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
- data/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
- data/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 93c488605f82954ab5f2cccb06ecbfc489133c3b
|
|
4
|
+
data.tar.gz: 5c97c451a98f9fb5c62522f46814f45aba20e4a6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8cf0b9dbce04687b13d374cfbf214641a72e147093b1c394c67e7e7775c73896c2bc290db3d108174cf8706f0bd378136eefe7540523c7115af2841b89a5695a
|
|
7
|
+
data.tar.gz: f7575f0950a80118723f6a58fffd361fef164eddb2065ff622641ec1bdb5cbb6aa232149f6821ac495daa7f5086b835fc5c0a1ccd41af14e05271df16ce71fa6
|
data/README.md
CHANGED
|
@@ -23,7 +23,7 @@ First make sure Ruby is installed on your system (if it's not already). Then, fr
|
|
|
23
23
|
> git clone --recursive https://github.com/throwtheswitch/ceedling.git
|
|
24
24
|
> cd ceedling
|
|
25
25
|
> bundle install # Ensures you have all RubyGems needed
|
|
26
|
-
> bundle
|
|
26
|
+
> bundle exec rake # Run all CMock library tests
|
|
27
27
|
|
|
28
28
|
If bundler isn't installed on your system or you run into problems, you might have to install it:
|
|
29
29
|
|
data/assets/project_as_gem.yml
CHANGED
|
@@ -62,6 +62,19 @@
|
|
|
62
62
|
# As [:tools] is blank, gcc will be used (so long as it's in your system path)
|
|
63
63
|
# See documentation to configure a given toolchain for use
|
|
64
64
|
|
|
65
|
+
# LIBRARIES
|
|
66
|
+
# These libraries are automatically injected into the build process. Those specified as
|
|
67
|
+
# common will be used in all types of builds. Otherwise, libraries can be injected in just
|
|
68
|
+
# tests or releases. These options are MERGED with the options in supplemental yaml files.
|
|
69
|
+
:libraries:
|
|
70
|
+
:placement: :end
|
|
71
|
+
:flag: "${1}" # or "-L ${1}" for example
|
|
72
|
+
:common: &common_libraries []
|
|
73
|
+
:test:
|
|
74
|
+
- *common_libraries
|
|
75
|
+
:release:
|
|
76
|
+
- *common_libraries
|
|
77
|
+
|
|
65
78
|
:plugins:
|
|
66
79
|
:load_paths:
|
|
67
80
|
- "#{Ceedling.load_path}"
|
|
@@ -62,6 +62,19 @@
|
|
|
62
62
|
# As [:tools] is blank, gcc will be used (so long as it's in your system path)
|
|
63
63
|
# See documentation to configure a given toolchain for use
|
|
64
64
|
|
|
65
|
+
# LIBRARIES
|
|
66
|
+
# These libraries are automatically injected into the build process. Those specified as
|
|
67
|
+
# common will be used in all types of builds. Otherwise, libraries can be injected in just
|
|
68
|
+
# tests or releases. These options are MERGED with the options in supplemental yaml files.
|
|
69
|
+
:libraries:
|
|
70
|
+
:placement: :end
|
|
71
|
+
:flag: "${1}" # or "-L ${1}" for example
|
|
72
|
+
:common: &common_libraries []
|
|
73
|
+
:test:
|
|
74
|
+
- *common_libraries
|
|
75
|
+
:release:
|
|
76
|
+
- *common_libraries
|
|
77
|
+
|
|
65
78
|
:plugins:
|
|
66
79
|
:load_paths:
|
|
67
80
|
- vendor/ceedling/plugins
|
data/bin/ceedling
CHANGED
|
@@ -4,7 +4,16 @@
|
|
|
4
4
|
require 'rubygems'
|
|
5
5
|
require 'fileutils'
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
# Check for the main project file (either the one defined in the ENV or the default)
|
|
8
|
+
main_filepath = ENV['CEEDLING_MAIN_PROJECT_FILE']
|
|
9
|
+
project_found = (!main_filepath.nil? && File.exists?(main_filepath))
|
|
10
|
+
if (!project_found)
|
|
11
|
+
main_filepath = "project.yml"
|
|
12
|
+
project_found = File.exists?(main_filepath)
|
|
13
|
+
end
|
|
14
|
+
rakefile_found = (File.exists? "rakefile.rb")
|
|
15
|
+
|
|
16
|
+
unless (project_found && rakefile_found)
|
|
8
17
|
#===================================== We Do Not Have A Project ================================================
|
|
9
18
|
|
|
10
19
|
puts "Welcome to Ceedling!"
|
|
@@ -21,83 +30,96 @@ unless (File.exists?("project.yml"))
|
|
|
21
30
|
method_option :nodocs, :type => :boolean, :default => false, :desc => "No docs in vendor directory"
|
|
22
31
|
method_option :as_gem, :type => :boolean, :default => false, :desc => "Create the scaffold using Ceedling as a gem instead of filling in the vendor directory. Implies --no-docs."
|
|
23
32
|
def new(name, silent = false)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
test_path = File.join(name, 'test')
|
|
27
|
-
test_support_path = File.join(name, 'test/support')
|
|
28
|
-
build_path = File.join(name, 'build')
|
|
29
|
-
|
|
30
|
-
[source_path, test_path, test_support_path, build_path].each do |d|
|
|
31
|
-
FileUtils.mkdir_p d
|
|
32
|
-
end
|
|
33
|
+
copy_assets_and_create_structure(name, silent, false, options[:nodocs], options[:as_gem])
|
|
34
|
+
end
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
desc "upgrade PROJECT_NAME", "upgrade ceedling for a project (not req'd if gem used)"
|
|
37
|
+
method_option :nodocs, :type => :boolean, :default => false, :desc => "No docs in vendor directory"
|
|
38
|
+
def upgrade(name, silent = false)
|
|
39
|
+
copy_assets_and_create_structure(name, silent, true, options[:nodocs])
|
|
40
|
+
end
|
|
36
41
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
no_commands do
|
|
43
|
+
def copy_assets_and_create_structure(name, silent=false, force=false, no_docs=false, as_gem=false)
|
|
44
|
+
ceedling_path = File.join(name, 'vendor', 'ceedling')
|
|
45
|
+
source_path = File.join(name, 'src')
|
|
46
|
+
test_path = File.join(name, 'test')
|
|
47
|
+
test_support_path = File.join(name, 'test/support')
|
|
48
|
+
build_path = File.join(name, 'build')
|
|
49
|
+
|
|
50
|
+
[source_path, test_path, test_support_path, build_path].each do |d|
|
|
51
|
+
FileUtils.mkdir_p d
|
|
52
|
+
end
|
|
40
53
|
|
|
41
|
-
|
|
54
|
+
unless as_gem
|
|
55
|
+
FileUtils.mkdir_p ceedling_path
|
|
56
|
+
|
|
57
|
+
unless no_docs
|
|
58
|
+
doc_path = File.join(ceedling_path, 'docs')
|
|
59
|
+
FileUtils.mkdir_p doc_path
|
|
60
|
+
|
|
61
|
+
in_doc_path = lambda {|f| File.join(doc_path, f)}
|
|
62
|
+
|
|
63
|
+
doc_files = [
|
|
64
|
+
'docs/CeedlingPacket.md',
|
|
65
|
+
'vendor/c_exception/docs/CException.md',
|
|
66
|
+
'vendor/cmock/docs/CMock_Summary.md',
|
|
67
|
+
'vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf',
|
|
68
|
+
'vendor/unity/docs/UnityAssertionsReference.md',
|
|
69
|
+
'vendor/unity/docs/UnityConfigurationGuide.md',
|
|
70
|
+
'vendor/unity/docs/UnityGettingStartedGuide.md',
|
|
71
|
+
'vendor/unity/docs/UnityHelperScriptsGuide.md',
|
|
72
|
+
'vendor/unity/docs/ThrowTheSwitchCodingStandard.md',
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
doc_files.each do |f|
|
|
76
|
+
copy_file(f, in_doc_path.call(File.basename(f)), :force => force)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
42
79
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
'vendor/unity/docs/UnityConfigurationGuide.pdf',
|
|
50
|
-
'vendor/unity/docs/UnityGettingStartedGuide.pdf',
|
|
51
|
-
'vendor/unity/docs/UnityHelperScriptsGuide.pdf',
|
|
52
|
-
]
|
|
80
|
+
folders = %w{plugins lib}
|
|
81
|
+
folders.map do |f|
|
|
82
|
+
{:src => f, :dst => File.join(ceedling_path, f)}
|
|
83
|
+
end.each do |f|
|
|
84
|
+
directory(f[:src], f[:dst], :force => force)
|
|
85
|
+
end
|
|
53
86
|
|
|
54
|
-
|
|
55
|
-
|
|
87
|
+
sub_components = [
|
|
88
|
+
{:src => 'vendor/c_exception/lib/', :dst => 'vendor/c_exception/lib'},
|
|
89
|
+
{:src => 'vendor/c_exception/release/', :dst => 'vendor/c_exception/release'},
|
|
90
|
+
{:src => 'vendor/cmock/config/', :dst => 'vendor/cmock/config'},
|
|
91
|
+
{:src => 'vendor/cmock/lib/', :dst => 'vendor/cmock/lib'},
|
|
92
|
+
{:src => 'vendor/cmock/release/', :dst => 'vendor/cmock/release'},
|
|
93
|
+
{:src => 'vendor/cmock/src/', :dst => 'vendor/cmock/src'},
|
|
94
|
+
{:src => 'vendor/constructor/lib/', :dst => 'vendor/constructor/lib'},
|
|
95
|
+
{:src => 'vendor/deep_merge/lib/', :dst => 'vendor/deep_merge/lib'},
|
|
96
|
+
{:src => 'vendor/diy/lib', :dst => 'vendor/diy/lib'},
|
|
97
|
+
{:src => 'vendor/unity/auto/', :dst => 'vendor/unity/auto'},
|
|
98
|
+
{:src => 'vendor/unity/release/', :dst => 'vendor/unity/release'},
|
|
99
|
+
{:src => 'vendor/unity/src/', :dst => 'vendor/unity/src'},
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
sub_components.each do |c|
|
|
103
|
+
directory(c[:src], File.join(ceedling_path, c[:dst]), :force => force)
|
|
56
104
|
end
|
|
57
105
|
end
|
|
58
106
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
107
|
+
if as_gem
|
|
108
|
+
copy_file(File.join('assets', 'project_as_gem.yml'), File.join(name, 'project.yml'), :force => force)
|
|
109
|
+
copy_file(File.join('assets', 'rakefile_as_gem.rb'), File.join(name, 'rakefile.rb'), :force => force)
|
|
110
|
+
else
|
|
111
|
+
copy_file(File.join('assets', 'project_with_guts.yml'), File.join(name, 'project.yml'), :force => force)
|
|
112
|
+
copy_file(File.join('assets', 'rakefile_with_guts.rb'), File.join(name, 'rakefile.rb'), :force => force)
|
|
64
113
|
end
|
|
65
114
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
{:src => 'vendor/cmock/src/', :dst => 'vendor/cmock/src'},
|
|
73
|
-
{:src => 'vendor/constructor/lib/', :dst => 'vendor/constructor/lib'},
|
|
74
|
-
{:src => 'vendor/deep_merge/lib/', :dst => 'vendor/deep_merge/lib'},
|
|
75
|
-
{:src => 'vendor/diy/lib', :dst => 'vendor/diy/lib'},
|
|
76
|
-
{:src => 'vendor/unity/auto/', :dst => 'vendor/unity/auto'},
|
|
77
|
-
{:src => 'vendor/unity/release/', :dst => 'vendor/unity/release'},
|
|
78
|
-
{:src => 'vendor/unity/src/', :dst => 'vendor/unity/src'},
|
|
79
|
-
]
|
|
80
|
-
|
|
81
|
-
sub_components.each do |c|
|
|
82
|
-
directory c[:src], File.join(ceedling_path, c[:dst])
|
|
115
|
+
unless silent
|
|
116
|
+
puts "\n"
|
|
117
|
+
puts "Project '#{name}' #{force ? "upgraded" : "created"}!"
|
|
118
|
+
puts " - Tool documentation is located in vendor/ceedling/docs" if (not no_docs) and (not as_gem)
|
|
119
|
+
puts " - Execute 'ceedling help' to view available test & build tasks"
|
|
120
|
+
puts ''
|
|
83
121
|
end
|
|
84
122
|
end
|
|
85
|
-
|
|
86
|
-
if options[:as_gem]
|
|
87
|
-
copy_file File.join('assets', 'project_as_gem.yml'), File.join(name, 'project.yml')
|
|
88
|
-
copy_file File.join('assets', 'rakefile_as_gem.rb'), File.join(name, 'rakefile.rb')
|
|
89
|
-
else
|
|
90
|
-
copy_file File.join('assets', 'project_with_guts.yml'), File.join(name, 'project.yml')
|
|
91
|
-
copy_file File.join('assets', 'rakefile_with_guts.rb'), File.join(name, 'rakefile.rb')
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
unless silent
|
|
95
|
-
puts "\n"
|
|
96
|
-
puts "Project '#{name}' created!"
|
|
97
|
-
puts " - Tool documentation is located in vendor/ceedling/docs" if (not options[:nodocs]) and (not options[:as_gem])
|
|
98
|
-
puts " - Execute 'rake -T' to view available test & build tasks"
|
|
99
|
-
puts ''
|
|
100
|
-
end
|
|
101
123
|
end
|
|
102
124
|
|
|
103
125
|
desc "examples", "list available example projects"
|
|
@@ -248,7 +270,7 @@ else
|
|
|
248
270
|
end
|
|
249
271
|
|
|
250
272
|
#merge in project settings if they can be found here
|
|
251
|
-
yaml_options = YAML.load_file(
|
|
273
|
+
yaml_options = YAML.load_file(main_filepath)
|
|
252
274
|
options[:pretend_we_are_gtest] = (yaml_options[:plugins][:enabled].include? :stdout_gtestlike_tests_report) if (yaml_options[:plugins] && yaml_options[:plugins][:enabled])
|
|
253
275
|
if (yaml_options[:paths])
|
|
254
276
|
options[:add_path] = yaml_options[:paths][:tools] || []
|
|
@@ -272,6 +294,8 @@ else
|
|
|
272
294
|
options[:outfile] = "debug.txt"
|
|
273
295
|
when /^help$/
|
|
274
296
|
options[:args] += "-T "
|
|
297
|
+
when /^project:(\w+)/
|
|
298
|
+
ENV['CEEDLING_USER_PROJECT_FILE'] = "#{$1}.yml"
|
|
275
299
|
else
|
|
276
300
|
options[:args] += v + " "
|
|
277
301
|
end
|
data/docs/CeedlingPacket.md
CHANGED
|
@@ -165,8 +165,8 @@ As a [Ruby gem](http://docs.rubygems.org/read/chapter/1):
|
|
|
165
165
|
1. [Download and install Ruby](http://www.ruby-lang.org/en/downloads/)
|
|
166
166
|
|
|
167
167
|
2. Use Ruby's command line gem package manager to install Ceedling:
|
|
168
|
-
`gem install ceedling`
|
|
169
|
-
and CException come along with Ceedling for free)
|
|
168
|
+
`gem install ceedling`
|
|
169
|
+
(Unity, CMock, and CException come along with Ceedling for free)
|
|
170
170
|
|
|
171
171
|
3. Execute Ceedling at command line to create example project
|
|
172
172
|
or an empty Ceedling project in your filesystem (executing
|
|
@@ -375,7 +375,7 @@ That is, they must each be specified at the command line each time
|
|
|
375
375
|
they are needed. For instance, Ceedling's verbosity command
|
|
376
376
|
only affects output at the time it's run.
|
|
377
377
|
|
|
378
|
-
|
|
378
|
+
Individual test and release file tasks
|
|
379
379
|
are not listed in `-T` output. Because so many files may be present
|
|
380
380
|
it's unwieldy to list them all.
|
|
381
381
|
|
|
@@ -972,11 +972,12 @@ Notes on path grammar within the [:paths] section:
|
|
|
972
972
|
entry in the [:tools] section
|
|
973
973
|
|
|
974
974
|
* Wherever multiple path lists are combined for use Ceedling prioritizes
|
|
975
|
-
path groups as follows:
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
the
|
|
975
|
+
path groups as follows:
|
|
976
|
+
test paths, support paths, source paths, include paths.
|
|
977
|
+
|
|
978
|
+
This can be useful, for instance, in certain testing scenarios where
|
|
979
|
+
we desire Ceedling or the compiler to find a stand-in header file before
|
|
980
|
+
the actual source header file of the same name.
|
|
980
981
|
|
|
981
982
|
* Paths:
|
|
982
983
|
|
|
@@ -1270,6 +1271,43 @@ Example [:defines] YAML blurb
|
|
|
1270
1271
|
- FEATURE_X=ON
|
|
1271
1272
|
```
|
|
1272
1273
|
|
|
1274
|
+
|
|
1275
|
+
**libraries**: command line defines used in test and release compilation by configured tools
|
|
1276
|
+
|
|
1277
|
+
Ceedling allows you to pull in specific libraries for the purpose of release and test builds.
|
|
1278
|
+
It has a few levels of support for this. Start by adding a :libraries main section in your
|
|
1279
|
+
configuration. In this section, you can optionally have the following subsections:
|
|
1280
|
+
|
|
1281
|
+
* `test`:
|
|
1282
|
+
|
|
1283
|
+
Library files that should be injected into your tests when linking occurs.
|
|
1284
|
+
These can be specified as either relative or absolute paths. These files MUST
|
|
1285
|
+
exist when the test attempts to build.
|
|
1286
|
+
|
|
1287
|
+
* `source`:
|
|
1288
|
+
|
|
1289
|
+
Library files that should be injected into your release when linking occurs. These
|
|
1290
|
+
can be specified as either relative or absolute paths. These files MUST exist when
|
|
1291
|
+
the release attempts to build UNLESS you are using the subprojects plugin. In that
|
|
1292
|
+
case, it will attempt to build that library for you as a dynamic dependency.
|
|
1293
|
+
|
|
1294
|
+
* `system`:
|
|
1295
|
+
|
|
1296
|
+
These libraries are assumed to be in the tool path somewhere and shouldn't need to be
|
|
1297
|
+
specified. The libraries added here will be injected into releases and tests.
|
|
1298
|
+
|
|
1299
|
+
* `flag`:
|
|
1300
|
+
|
|
1301
|
+
This is the method of adding an argument for each library. For example, gcc really likes
|
|
1302
|
+
it when you specify “-l${1}”
|
|
1303
|
+
|
|
1304
|
+
Notes:
|
|
1305
|
+
|
|
1306
|
+
* If you've specified your own link step, you are going to want to add ${4} to your argument
|
|
1307
|
+
list in the place where library files should be added to the command call. For gcc, this is
|
|
1308
|
+
often the very end. Other tools may vary.
|
|
1309
|
+
|
|
1310
|
+
|
|
1273
1311
|
**flags**: configure per-file compilation and linking flags
|
|
1274
1312
|
|
|
1275
1313
|
Ceedling tools (see later [:tools] section) are used to configure
|
|
@@ -1552,14 +1590,14 @@ A Ceedling tool has a handful of configurable elements:
|
|
|
1552
1590
|
form a name from the tool's YAML entry name)
|
|
1553
1591
|
|
|
1554
1592
|
4. [:stderr_redirect] - Control of capturing $stderr messages
|
|
1555
|
-
{:none, :auto, :win, :unix, :tcsh}.
|
|
1593
|
+
{:none, :auto, :win, :unix, :tcsh}.
|
|
1556
1594
|
Defaults to :none if unspecified; create a custom entry by
|
|
1557
1595
|
specifying a simple string instead of any of the available
|
|
1558
1596
|
symbols.
|
|
1559
1597
|
|
|
1560
1598
|
5. [:background_exec] - Control execution as background process
|
|
1561
|
-
{:none, :auto, :win, :unix}.
|
|
1562
|
-
to :none if unspecified.
|
|
1599
|
+
{:none, :auto, :win, :unix}.
|
|
1600
|
+
Defaults to :none if unspecified.
|
|
1563
1601
|
|
|
1564
1602
|
|
|
1565
1603
|
Tool Element Runtime Substitution
|
|
@@ -1637,9 +1675,9 @@ Example [:tools] YAML blurbs
|
|
|
1637
1675
|
:executable: compiler #exists in system search path
|
|
1638
1676
|
:name: 'acme test compiler'
|
|
1639
1677
|
:arguments:
|
|
1640
|
-
- -I"
|
|
1641
|
-
- -I"
|
|
1642
|
-
- -D$:
|
|
1678
|
+
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE #expands to -I search paths
|
|
1679
|
+
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR #expands to -I search paths
|
|
1680
|
+
- -D$: COLLECTION_DEFINES_TEST_AND_VENDOR #expands to all -D defined symbols
|
|
1643
1681
|
- --network-license #simple command line argument
|
|
1644
1682
|
- -optimize-level 4 #simple command line argument
|
|
1645
1683
|
- "#{`args.exe -m acme.prj`}" #in-line ruby sub to shell out & build string of arguments
|
|
@@ -1673,7 +1711,8 @@ Resulting command line constructions from preceding example [:tools] YAML blurbs
|
|
|
1673
1711
|
|
|
1674
1712
|
[notes: (1.) "arg-foo arg-bar arg-baz" is a fabricated example
|
|
1675
1713
|
string collected from $stdout as a result of shell execution
|
|
1676
|
-
of args.exe
|
|
1714
|
+
of args.exe
|
|
1715
|
+
(2.) the -c and -o arguments are
|
|
1677
1716
|
fabricated examples simulating a single compilation step for
|
|
1678
1717
|
a test; ${1} & ${2} are single files]
|
|
1679
1718
|
|
|
@@ -1698,9 +1737,8 @@ Notes:
|
|
|
1698
1737
|
builds
|
|
1699
1738
|
|
|
1700
1739
|
* "COLLECTION_" indicates that Ceedling did some work to assemble
|
|
1701
|
-
the list. For instance, expanding path globs,
|
|
1702
|
-
|
|
1703
|
-
etc.
|
|
1740
|
+
the list. For instance, expanding path globs, combining multiple
|
|
1741
|
+
path globs into a convenient summation, etc.
|
|
1704
1742
|
|
|
1705
1743
|
* At present, $stderr redirection is primarily used to capture
|
|
1706
1744
|
errors from test fixtures so that they can be displayed at the
|
|
@@ -1776,11 +1814,11 @@ Notes:
|
|
|
1776
1814
|
only useful for advanced features not yet documented.
|
|
1777
1815
|
|
|
1778
1816
|
* Wherever multiple path lists are combined for use Ceedling prioritizes
|
|
1779
|
-
path groups as follows:
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
the same name.
|
|
1817
|
+
path groups as follows: test paths, support paths, source paths, include
|
|
1818
|
+
paths.
|
|
1819
|
+
This can be useful, for instance, in certain testing scenarios
|
|
1820
|
+
where we desire Ceedling or the compiler to find a stand-in header file
|
|
1821
|
+
before the actual source header file of the same name.
|
|
1784
1822
|
|
|
1785
1823
|
|
|
1786
1824
|
**plugins**: Ceedling extensions
|
data/docs/CeedlingPacket.odt
CHANGED
|
Binary file
|
data/docs/CeedlingPacket.pdf
CHANGED
|
Binary file
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# ThrowTheSwitch.org Coding Standard
|
|
2
|
+
|
|
3
|
+
Hi. Welcome to the coding standard for ThrowTheSwitch.org. For the most part,
|
|
4
|
+
we try to follow these standards to unify our contributors' code into a cohesive
|
|
5
|
+
unit (puns intended). You might find places where these standards aren't
|
|
6
|
+
followed. We're not perfect. Please be polite where you notice these discrepancies
|
|
7
|
+
and we'll try to be polite when we notice yours.
|
|
8
|
+
|
|
9
|
+
;)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## Why Have A Coding Standard?
|
|
13
|
+
|
|
14
|
+
Being consistent makes code easier to understand. We've made an attempt to keep
|
|
15
|
+
our standard simple because we also believe that we can only expect someone to
|
|
16
|
+
follow something that is understandable. Please do your best.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Our Philosophy
|
|
20
|
+
|
|
21
|
+
Before we get into details on syntax, let's take a moment to talk about our
|
|
22
|
+
vision for these tools. We're C developers and embedded software developers.
|
|
23
|
+
These tools are great to test any C code, but catering to embedded software has
|
|
24
|
+
made us more tolerant of compiler quirks. There are a LOT of quirky compilers
|
|
25
|
+
out there. By quirky I mean "doesn't follow standards because they feel like
|
|
26
|
+
they have a license to do as they wish."
|
|
27
|
+
|
|
28
|
+
Our philosophy is "support every compiler we can". Most often, this means that
|
|
29
|
+
we aim for writing C code that is standards compliant (often C89... that seems
|
|
30
|
+
to be a sweet spot that is almost always compatible). But it also means these
|
|
31
|
+
tools are tolerant of things that aren't common. Some that aren't even
|
|
32
|
+
compliant. There are configuration options to override the size of standard
|
|
33
|
+
types. There are configuration options to force Unity to not use certain
|
|
34
|
+
standard library functions. A lot of Unity is configurable and we have worked
|
|
35
|
+
hard to make it not TOO ugly in the process.
|
|
36
|
+
|
|
37
|
+
Similarly, our tools that parse C do their best. They aren't full C parsers
|
|
38
|
+
(yet) and, even if they were, they would still have to accept non-standard
|
|
39
|
+
additions like gcc extensions or specifying `@0x1000` to force a variable to
|
|
40
|
+
compile to a particular location. It's just what we do, because we like
|
|
41
|
+
everything to Just Work™.
|
|
42
|
+
|
|
43
|
+
Speaking of having things Just Work™, that's our second philosophy. By that, we
|
|
44
|
+
mean that we do our best to have EVERY configuration option have a logical
|
|
45
|
+
default. We believe that if you're working with a simple compiler and target,
|
|
46
|
+
you shouldn't need to configure very much... we try to make the tools guess as
|
|
47
|
+
much as they can, but give the user the power to override it when it's wrong.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## Naming Things
|
|
51
|
+
|
|
52
|
+
Let's talk about naming things. Programming is all about naming things. We name
|
|
53
|
+
files, functions, variables, and so much more. While we're not always going to
|
|
54
|
+
find the best name for something, we actually put quite a bit of effort into
|
|
55
|
+
finding *What Something WANTS to be Called*™.
|
|
56
|
+
|
|
57
|
+
When naming things, we more or less follow this hierarchy, the first being the
|
|
58
|
+
most important to us (but we do all four whenever possible):
|
|
59
|
+
1. Readable
|
|
60
|
+
2. Descriptive
|
|
61
|
+
3. Consistent
|
|
62
|
+
4. Memorable
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
#### Readable
|
|
66
|
+
|
|
67
|
+
We want to read our code. This means we like names and flow that are more
|
|
68
|
+
naturally read. We try to avoid double negatives. We try to avoid cryptic
|
|
69
|
+
abbreviations (sticking to ones we feel are common).
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
#### Descriptive
|
|
73
|
+
|
|
74
|
+
We like descriptive names for things, especially functions and variables.
|
|
75
|
+
Finding the right name for something is an important endeavor. You might notice
|
|
76
|
+
from poking around our code that this often results in names that are a little
|
|
77
|
+
longer than the average. Guilty. We're okay with a tiny bit more typing if it
|
|
78
|
+
means our code is easier to understand.
|
|
79
|
+
|
|
80
|
+
There are two exceptions to this rule that we also stick to as religiously as
|
|
81
|
+
possible:
|
|
82
|
+
|
|
83
|
+
First, while we realize hungarian notation (and similar systems for encoding
|
|
84
|
+
type information into variable names) is providing a more descriptive name, we
|
|
85
|
+
feel that (for the average developer) it takes away from readability and
|
|
86
|
+
therefore is to be avoided.
|
|
87
|
+
|
|
88
|
+
Second, loop counters and other local throw-away variables often have a purpose
|
|
89
|
+
which is obvious. There's no need, therefore, to get carried away with complex
|
|
90
|
+
naming. We find i, j, and k are better loop counters than loopCounterVar or
|
|
91
|
+
whatnot. We only break this rule when we see that more description could improve
|
|
92
|
+
understanding of an algorithm.
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
#### Consistent
|
|
96
|
+
|
|
97
|
+
We like consistency, but we're not really obsessed with it. We try to name our
|
|
98
|
+
configuration macros in a consistent fashion... you'll notice a repeated use of
|
|
99
|
+
UNITY_EXCLUDE_BLAH or UNITY_USES_BLAH macros. This helps users avoid having to
|
|
100
|
+
remember each macro's details.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
#### Memorable
|
|
104
|
+
|
|
105
|
+
Where ever it doesn't violate the above principles, we try to apply memorable
|
|
106
|
+
names. Sometimes this means using something that is simply descriptive, but
|
|
107
|
+
often we strive for descriptive AND unique... we like quirky names that stand
|
|
108
|
+
out in our memory and are easier to search for. Take a look through the file
|
|
109
|
+
names in Ceedling and you'll get a good idea of what we are talking about here.
|
|
110
|
+
Why use preprocess when you can use preprocessinator? Or what better describes a
|
|
111
|
+
module in charge of invoking tasks during releases than release_invoker? Don't
|
|
112
|
+
get carried away. The names are still descriptive and fulfill the above
|
|
113
|
+
requirements, but they don't feel stale.
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
## C and C++ Details
|
|
117
|
+
|
|
118
|
+
We don't really want to add to the style battles out there. Tabs or spaces?
|
|
119
|
+
How many spaces? Where do the braces go? These are age-old questions that will
|
|
120
|
+
never be answered... or at least not answered in a way that will make everyone
|
|
121
|
+
happy.
|
|
122
|
+
|
|
123
|
+
We've decided on our own style preferences. If you'd like to contribute to these
|
|
124
|
+
projects (and we hope that you do), then we ask if you do your best to follow
|
|
125
|
+
the same. It will only hurt a little. We promise.
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
#### Whitespace
|
|
129
|
+
|
|
130
|
+
Our C-style is to use spaces and to use 4 of them per indent level. It's a nice
|
|
131
|
+
power-of-2 number that looks decent on a wide screen. We have no more reason
|
|
132
|
+
than that. We break that rule when we have lines that wrap (macros or function
|
|
133
|
+
arguments or whatnot). When that happens, we like to indent further to line
|
|
134
|
+
things up in nice tidy columns.
|
|
135
|
+
|
|
136
|
+
```C
|
|
137
|
+
if (stuff_happened)
|
|
138
|
+
{
|
|
139
|
+
do_something();
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
#### Case
|
|
145
|
+
|
|
146
|
+
- Files - all lower case with underscores.
|
|
147
|
+
- Variables - all lower case with underscores
|
|
148
|
+
- Macros - all caps with underscores.
|
|
149
|
+
- Typedefs - all caps with underscores. (also ends with _T).
|
|
150
|
+
- Functions - camel cased. Usually named ModuleName_FuncName
|
|
151
|
+
- Constants and Globals - camel cased.
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
#### Braces
|
|
155
|
+
|
|
156
|
+
The left brace is on the next line after the declaration. The right brace is
|
|
157
|
+
directly below that. Everything in between in indented one level. If you're
|
|
158
|
+
catching an error and you have a one-line, go ahead and to it on the same line.
|
|
159
|
+
|
|
160
|
+
```C
|
|
161
|
+
while (blah)
|
|
162
|
+
{
|
|
163
|
+
//Like so. Even if only one line, we use braces.
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
#### Comments
|
|
169
|
+
|
|
170
|
+
Do you know what we hate? Old-school C block comments. BUT, we're using them
|
|
171
|
+
anyway. As we mentioned, our goal is to support every compiler we can,
|
|
172
|
+
especially embedded compilers. There are STILL C compilers out there that only
|
|
173
|
+
support old-school block comments. So that is what we're using. We apologize. We
|
|
174
|
+
think they are ugly too.
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
## Ruby Details
|
|
178
|
+
|
|
179
|
+
Is there really such thing as a Ruby coding standard? Ruby is such a free form
|
|
180
|
+
language, it seems almost sacrilegious to suggest that people should comply to
|
|
181
|
+
one method! We'll keep it really brief!
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
#### Whitespace
|
|
185
|
+
|
|
186
|
+
Our Ruby style is to use spaces and to use 2 of them per indent level. It's a
|
|
187
|
+
nice power-of-2 number that really grooves with Ruby's compact style. We have no
|
|
188
|
+
more reason than that. We break that rule when we have lines that wrap. When
|
|
189
|
+
that happens, we like to indent further to line things up in nice tidy columns.
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
#### Case
|
|
193
|
+
|
|
194
|
+
- Files - all lower case with underscores.
|
|
195
|
+
- Variables - all lower case with underscores
|
|
196
|
+
- Classes, Modules, etc - Camel cased.
|
|
197
|
+
- Functions - all lower case with underscores
|
|
198
|
+
- Constants - all upper case with underscores
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
## Documentation
|
|
202
|
+
|
|
203
|
+
Egad. Really? We use markdown and we like pdf files because they can be made to
|
|
204
|
+
look nice while still being portable. Good enough?
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
*Find The Latest of This And More at [ThrowTheSwitch.org](https://throwtheswitch.org)*
|