开源项目 order_query
使用教程
1. 项目的目录结构及介绍
order_query
项目的目录结构如下:
order_query/
├── lib/
│ ├── order_query.rb
│ └── order_query/
│ ├── point.rb
│ ├── space.rb
│ └── version.rb
├── spec/
│ ├── order_query_spec.rb
│ └── support/
│ └── database.rb
├── .gitignore
├── .rspec
├── Gemfile
├── LICENSE.txt
├── order_query.gemspec
├── README.md
└── Rakefile
目录结构介绍
lib/
:包含项目的主要代码文件。order_query.rb
:主文件,定义了OrderQuery
模块。order_query/
:子目录,包含OrderQuery
模块的各个组件。point.rb
:定义了OrderQuery::Point
类。space.rb
:定义了OrderQuery::Space
类。version.rb
:定义了项目的版本号。
spec/
:包含项目的测试文件。order_query_spec.rb
:主测试文件。support/
:支持文件,如数据库配置。
.gitignore
:Git 忽略文件列表。.rspec
:RSpec 配置文件。Gemfile
:定义了项目的依赖。LICENSE.txt
:项目的许可证。order_query.gemspec
:Gem 规范文件。README.md
:项目说明文档。Rakefile
:Rake 任务文件。
2. 项目的启动文件介绍
项目的启动文件是 lib/order_query.rb
,它定义了 OrderQuery
模块,并加载了其他相关文件。
require "order_query/version"
require "order_query/space"
require "order_query/point"
module OrderQuery
# 模块内容
end
启动文件介绍
require "order_query/version"
:加载版本文件。require "order_query/space"
:加载Space
类文件。require "order_query/point"
:加载Point
类文件。module OrderQuery
:定义了OrderQuery
模块,包含项目的核心功能。
3. 项目的配置文件介绍
项目的配置文件主要是 Gemfile
和 order_query.gemspec
。
Gemfile
Gemfile
定义了项目的依赖,内容如下:
source 'https://rubygems.org'
gem 'activerecord', '>= 4.2'
gem 'railties', '>= 4.2'
group :development, :test do
gem 'rspec', '~> 3.0'
gem 'sqlite3'
end
order_query.gemspec
order_query.gemspec
定义了 Gem 的规范,内容如下:
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'order_query/version'
Gem::Specification.new do |spec|
spec.name = "order_query"
spec.version = OrderQuery::VERSION
spec.authors = ["Gleb Mazovetskiy"]
spec.email = ["glex.spb@gmail.com"]
spec.summary = %q{Gem for ordering ActiveRecord queries.}
spec.description = %q{Gem for ordering ActiveRecord queries with complex ordering logic.}
spec.homepage = "https://github.com/glebm/order_query"
spec.license = "MIT"
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }