Jeweler 开源项目教程
1. 项目的目录结构及介绍
Jeweler 项目的目录结构如下:
jeweler/
├── Gemfile
├── Gemfile.lock
├── LICENSE.txt
├── README.md
├── Rakefile
├── jeweler.gemspec
├── lib/
│ ├── jeweler/
│ │ ├── commands/
│ │ ├── gemspec.rb
│ │ ├── tasks.rb
│ │ ├── version.rb
│ │ └── version_helper.rb
│ ├── jeweler.rb
│ └── jeweler/
│ └── tasks/
├── spec/
│ ├── jeweler_spec.rb
│ └── spec_helper.rb
└── tasks/
└── jeweler.rb
目录结构介绍
Gemfile
和Gemfile.lock
:用于管理项目的依赖。LICENSE.txt
:项目的许可证文件。README.md
:项目的说明文档。Rakefile
:用于定义 Rake 任务。jeweler.gemspec
:用于定义 gem 的规范。lib/
:包含项目的主要代码。jeweler.rb
:项目的主文件。jeweler/
:包含项目的各个模块。commands/
:包含命令行相关的代码。gemspec.rb
:用于生成 gemspec 文件。tasks.rb
:定义 Rake 任务。version.rb
:定义版本信息。version_helper.rb
:版本辅助工具。
spec/
:包含项目的测试代码。jeweler_spec.rb
:项目的测试文件。spec_helper.rb
:测试辅助文件。
tasks/
:包含 Rake 任务的定义。
2. 项目的启动文件介绍
项目的启动文件是 lib/jeweler.rb
,它负责加载项目的各个模块并初始化项目。
require 'jeweler/version'
require 'jeweler/gemspec'
require 'jeweler/tasks'
require 'jeweler/version_helper'
3. 项目的配置文件介绍
项目的配置文件是 jeweler.gemspec
,它定义了 gem 的规范,包括名称、版本、作者、依赖等信息。
Gem::Specification.new do |s|
s.name = "jeweler"
s.version = Jeweler::VERSION
s.authors = ["Josh Nichols"]
s.email = ["technicalpickles@github.com"]
s.homepage = "http://github.com/technicalpickles/jeweler"
s.summary = "Simple and opinionated helper for creating Rubygem projects on GitHub"
s.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
s.files = `git ls-files`.split("\n")
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
s.require_paths = ["lib"]
s.add_dependency "rake"
s.add_dependency "git"
s.add_dependency "nokogiri"
s.add_dependency "yard"
s.add_dependency "rspec", "~> 2.0"
end
这个文件定义了项目的名称、版本、作者、主页、摘要、描述以及依赖项。