Aaron
Aaron

Reputation: 6704

What are `files`, `executables`, `test_files`, and `require_paths` in gemspec file?

I am not clear on what certain specifications in the .gemspec file are doing. Specifically,

spec.files         = `git ls-files -z`.split("\x0")
spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]

Can someone explain how these relate to the functionality of a Ruby Gem and why they are necessary?

Upvotes: 14

Views: 4214

Answers (1)

Jakob S
Jakob S

Reputation: 20125

executables:

Executables included in the gem. For example, the rake gem has rake as an executable. These files must be executable Ruby files.

files:

Files included in the gem. These are the files that will be included in your gem when it is built.

require_paths:

Contains an Array of directories and files which should be added to the $LOAD_PATH on gem activation. By default it is ["lib"].

test_files

Test files included in the gem.

Upvotes: 14

Related Questions