# # This file provides a full specification for maintaining your ruby library using Noe. # It consists of two main sections: template-info and variables. The first one contains # meta-information about the skeleton itself while the second one provides information # about your library. # # Please update the first part with care, as it immediately affects the way Noe will # manage the files of your own project. The second part may be updated more freely. # # Remember that your project may use a shorter version of this file as it will be # automatically completed with default options when invoking 'noe go'. In particular, # the first section (under template-info) is only required to contain the name and # version of the template to use. # # Use 'noe prepare --template=!{template_name} --layout=short' to generate a shorter # version of this file. # # See 'noe help prepare' and 'noe help show-spec' for more information. # template-info: # Don't remove the name and version entries, which are ALWAYS required name: "!{template_name}" version: 1.5.1 # The following entries are information about the template itself and can safely # be removed on your own project. summary: | Template for creating a ruby gem following best ruby practices description: | This is a [Noe](https://github.com/blambeau/noe) template for creating a ruby gem library. Generated project comes with rake tasks to support the lifecycle of the library (testing, releasing, and so on). Following Noe philosophy this template also helps you understanding the ruby ecosystem by providing a fully documented project, rake tasks, and so on. authors: - {name: Bernard Lambeau, email: blambeau@gmail.com} links: source: https://github.com/blambeau/noe/tree/master/templates/ruby documentation: https://github.com/blambeau/noe/blob/master/templates/ruby/README.md # # Below starts the template manifest. # # Each entry is related to a template file and may contain the following keys: # - description: short explanation of the role the file plays in your project # - safe-override: may the file be safely overrided by 'noe go --safe-override'? # - wlang-dialect: what dialect must be used for wlang instantiation. When no # dialect is specified, the dialect under main-wlang-dialect is used. # # You can safely remove the whole manifest or entries for which the default values # are ok for your project. Otherwise, values defined below override the default ones # provided by the template. # # An typical example for keeping an entry here is to set safe-override to false for # specific project files you want to manage manually. # manifest: .gitignore: description: Files to be ignored by git or another version control system safe-override: false __lower__.gemspec: description: Gem specification file safe-override: true wlang-dialect: wlang/ruby CHANGELOG.md: description: Information about library changes safe-override: false Gemfile: description: Information used by Bundler, the Ruby dependency manager safe-override: true wlang-dialect: wlang/ruby lib/__lower__.rb: description: Main file of the ruby library safe-override: false lib/__lower__/version.rb: description: Handler for the version number for the library safe-override: true lib/__lower__/loader.rb: description: Dependency loader for the ruby library safe-override: true LICENCE.md: description: Licensing information safe-override: false Manifest.txt: description: Information about the files that compose the package safe-override: false Rakefile: description: Information for Ruby maker safe-override: true wlang-dialect: wlang/ruby README.md: description: Starter documentation file safe-override: false spec/__lower__spec.rb: description: Main test file of the ruby library safe-override: false spec/spec_helper.rb: description: Helper for ruby spec tests safe-override: false tasks/debug_mail.rake: description: configuration file for 'rake debug_mail' safe-override: true wlang-dialect: wlang/ruby tasks/debug_mail.txt: description: mail template used by 'rake debug_mail' safe-override: true wlang-dialect: wlang/dummy tasks/gem.rake: description: configuration file for 'rake package', 'rake gem' and associated tasks safe-override: true wlang-dialect: wlang/ruby tasks/spec_test.rake: description: configuration file for 'rake spec_test' safe-override: true wlang-dialect: wlang/ruby tasks/unit_test.rake: description: configuration file for 'rake unit_test' safe-override: true wlang-dialect: wlang/ruby tasks/yard.rake: description: configuration file for 'rake yard' safe-override: true wlang-dialect: wlang/ruby # The following entries are template-related variables. Update to match your # own configuration. variables: # A ruby lower case project name. This will become the name of the generated # gem of the main ruby .rb start file and so on. lower: hello_world # A ruby upper case project name. This is used to generate the main namespacing # module of your project and shoul be the CamelCase equivalent of your lower # name. upper: HelloWorld # Version of your library version: 1.0.0 # Project summary (~ 1 line) summary: A simple "Hello World" example # Project description (~ 5 lines). Project description should be more complete # than the summary and will be used to describe your gem on rubygems.org description: |- This hello_world example provides you all you need to build a ruby gem library while applying skeleton-driven coding with Noe (see http://revision-zero.org/noe) # Authors of the project. Each author entry is a Hash and MUST at least have # 'name' and 'email' keys. This is used to add meta information to your .gemspec # file. Example: # # authors: # - name: Bob # email: bob@gmail.com # authors: [] # Web links for the project. You should typically include links to the sources # (github), rubygems.org, documentation and so on. The first link will be used # to fill the .gemspec file. Example: # # links: # - http://github.com/bob/hello_world # - http://rubygems.org/gems/hello_world # links: [] # Gem dependencies. Each entry is a Hash that MUST at least have 'name', 'version' # and 'groups' keys. The later is an array of dependency groups and are used to # generate Gemfile and .gemspec files. For now, only 'development' and 'runtime' # values are supported. # # Example # # Rake is required for development only # - {name: rake, version: "~> 0.8.7", groups: [development]} # # HighLine is required at runtime # - {name: highline, version: ">= 0", groups: [runtime]} # # WLang is required for both development and runtime # - {name: wlang, version: ">= 0", groups: [runtime, development]} # dependencies: # Rake is required for developers, as usual - {name: rake, version: "~> 0.9.2", groups: [development]} # Bundler is required for developers and is used by the Rakefile - {name: bundler, version: "~> 1.0", groups: [development]} # RSpec is required to run 'rake spec'. See tasks/spec.rake - {name: rspec, version: "~> 2.6.0", groups: [development]} # YARD and BlueCloth are required to run 'rake yard'. See tasks/yard.rake - {name: yard, version: "~> 0.7.2", groups: [development]} - {name: bluecloth, version: "~> 2.1.0", groups: [development]} # wlang is required to run 'rake debug_mail'. See tasks/debug_mail.rake - {name: wlang, version: "~> 0.10.2", groups: [development]} # Below are defined a certain number of specific variables for the .gemspec file # of your library. We'll include it here to keep .gemspec under Noe's control for # simple yet flexible cases. If your gem configuration is really specific, you # can always maintain the .gemspec manually by setting # template-info/manifest/__lower__.gemspec/safe-override to false gemspec: # Paths in the gem to add to $LOAD_PATH when the gem is activated (required). require_paths: [ lib ] # The path in the gem for executable scripts bindir: 'bin' # Array containing the names of executables included in the gem, # if any (Dir[...] patterns are supported). executables: [ 'bin/*' ] # Array of test files (Dir[...] patterns are supported). test_files: ['test/**/*', 'spec/**/*'] # Array of options to use when invoking rdoc rdoc_options: [ ] # Array of extra files to give to rdoc (Dir[...] patterns are supported) extra_rdoc_files: [ README.md, CHANGELOG.md, LICENCE.md ] # Array of extensions to build when installing the gem. extensions: [] # External (to RubyGems) requirements that must be met for this gem to work (informal) requirements: # A friendly message you would like to display when the user installs your gem post_install_message: # Below are defined a certain number of specific variables for each rake task. # Have a look at tasks/*.rake for additional details on each one. rake_tasks: gem: # Folder in which the packages are generated package_dir: pkg # Do you need a .tar package? need_tar: false # Do you need a .tar.gz package? need_tar_gz: false # Do you need a .tar.bz2 package? need_tar_bz2: false # Do you need a .zip package? need_zip: false # The shell command executed to build a .tar tar_command: tar # The shell command executed to build a .zip zip_command: zip debug_mail: # Regular expression to detect change sections in # the CHANGELOG file rx_changelog_sections: '/^# /' # Number of change sections to show in the mail nb_changelog_sections: 1 spec_test: # Pattern to find spec tests pattern: spec/**/test_*.rb # By default, if there is a Gemfile, the generated command will include # 'bundle exec'. Set this to true to ignore the presence of a Gemfile, # and not add 'bundle exec' to the command. skip_bundler: false # Name of Gemfile to use gemfile: Gemfile # Whether or not to fail Rake when an error occurs (typically when # examples fail). fail_on_error: true # A message to print to stderr when there are failures. failure_message: # Use verbose output. If this is set to true, the task will print the # executed spec command to stdout. verbose: true # Use rcov for code coverage? rcov: false # Path to rcov. rcov_path: rcov # Command line options to pass to rcov. See 'rcov --help' about this rcov_opts: [] # Command line options to pass to ruby. See 'ruby --help' about this ruby_opts: [] # Path to rspec rspec_path: rspec # Command line options to pass to rspec. See 'rspec --help' about this rspec_opts: [--color, --backtrace] unit_test: # Glob pattern to match test files. (default is 'test/test*.rb') pattern: test/test_*.rb # Array of directories to added to $LOAD_PATH before running the tests. libs: [ lib ] # True if verbose test output desired. verbose: false # Test options passed to the test suite. An explicit TESTOPTS=opts # on the command line will override this. options: # Request that the tests be run with the warning flag set. # E.g. warning=true implies "ruby -w" used to run the tests. warning: false # Style of test loader to use. Options are: # # * :rake -- Rake provided test loading script (default). # * :testrb -- Ruby provided test loading script. # * :direct -- Load tests using command line loader. # loader: :rake # Array of commandline options to pass to ruby when running test loader. ruby_opts: [] # Explicitly define the list of test files to be included in a # test. +list+ is expected to be an array of file names (a # FileList is acceptable). If both +pattern+ and +test_files+ are # used, then the list of test files is the union of the two. test_files: yard: # Array of ruby source files files: ['lib/**/*.rb'] # Array of options passed to yard commandline. See 'yardoc --help' about this options: ['--output-dir', 'doc/api', '-', 'README.md', 'CHANGELOG.md', 'LICENCE.md']