开源项目 Harvested 使用教程
1. 项目的目录结构及介绍
Harvested 项目的目录结构如下:
harvested/
├── bin/
├── lib/
├── spec/
├── .gitignore
├── .rspec
├── .travis.yml
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── README.md
├── Rakefile
└── harvested.gemspec
目录介绍:
bin/
: 包含可执行文件。lib/
: 包含项目的核心代码。spec/
: 包含测试文件。.gitignore
: 指定 Git 忽略的文件和目录。.rspec
: 包含 RSpec 的配置选项。.travis.yml
: 用于 Travis CI 的配置文件。Gemfile
: 指定项目依赖的 Gem 包。Gemfile.lock
: 锁定 Gem 包的版本。LICENSE
: 项目的许可证。README.md
: 项目的说明文档。Rakefile
: 包含 Rake 任务。harvested.gemspec
: 项目的 gemspec 文件。
2. 项目的启动文件介绍
Harvested 项目的启动文件位于 lib/harvested.rb
。这个文件是项目的入口点,负责加载项目的核心功能和依赖项。
require 'rubygems'
require 'bundler/setup'
require 'json'
require 'faraday'
require 'faraday_middleware'
require 'active_support/core_ext/hash'
require 'harvested/version'
require 'harvested/errors'
require 'harvested/base'
require 'harvested/user'
require 'harvested/client'
require 'harvested/project'
require 'harvested/task'
require 'harvested/time_entry'
require 'harvested/expense'
require 'harvested/invoice'
require 'harvested/contact'
require 'harvested/estimate'
require 'harvested/base_account'
require 'harvested/account'
require 'harvested/http'
require 'harvested/authentication'
require 'harvested/api'
require 'harvested/api_extensions'
require 'harvested/api_extensions/user'
require 'harvested/api_extensions/client'
require 'harvested/api_extensions/project'
require 'harvested/api_extensions/task'
require 'harvested/api_extensions/time_entry'
require 'harvested/api_extensions/expense'
require 'harvested/api_extensions/invoice'
require 'harvested/api_extensions/contact'
require 'harvested/api_extensions/estimate'
require 'harvested/api_extensions/base_account'
require 'harvested/api_extensions/account'
require 'harvested/api_extensions/http'
require 'harvested/api_extensions/authentication'
3. 项目的配置文件介绍
Harvested 项目的配置文件主要是 Gemfile
和 harvested.gemspec
。
Gemfile
Gemfile
指定了项目依赖的 Gem 包,例如:
source 'https://rubygems.org'
gem 'faraday'
gem 'faraday_middleware'
gem 'activesupport'
gem 'json'
harvested.gemspec
harvested.gemspec
文件包含了项目的详细信息和依赖项,例如:
Gem::Specification.new do |spec|
spec.name = "harvested"
spec.version = Harvested::VERSION
spec.authors = ["Zach Moazeni"]
spec.email = ["zach.moazeni@gmail.com"]
spec.description = %q{A Ruby Wrapper for the Harvest API}
spec.summary = %q{A Ruby Wrapper for the Harvest API}
spec.homepage = "https://github.com/zmoazeni/harvested"
spec.license = "MIT"
spec.files = `git ls-files`.split($/)
spec.executables = spec.files.