Initial Chef repository

This commit is contained in:
Greg Karékinian
2015-07-21 19:45:23 +02:00
parent 7e5401fc71
commit ee4079fa85
1151 changed files with 185163 additions and 0 deletions

9
cookbooks/redis/.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
*.tgz
*.tar.gz
vendor/bundle
.bundle
.DS_Store
build/*
tmp/
*.lock
.kitchen/*

View File

@@ -0,0 +1,20 @@
driver:
require_chef_omnibus: <%= ENV.fetch("CHEF_VERSION", "latest") %>
ssh_key: <%= File.expand_path("./test/support/keys/vagrant") %>
name: vagrant
provisioner:
name: chef_solo
platforms:
- name: debian-6.0.8
- name: debian-7.2.0
- name: ubuntu-12.04
- name: ubuntu-14.04
suites:
- name: default
run_list:
- recipe[redis::server]
- recipe[redis::client]
# - recipe[minitest-handler]

View File

@@ -0,0 +1,18 @@
LineLength:
Max: 80
Exclude:
- "**/attributes/*.rb"
- "**/metadata.rb"
StringLiterals:
EnforcedStyle: double_quotes
PercentLiteralDelimiters:
PreferredDelimiters:
"%w": "[]" # Arrays use brackets
SingleSpaceBeforeFirstArg:
Enabled: false # too strict about metadata and certain formatting
inherit_from: test/support/rubocop/enabled.yml
inherit_from: test/support/rubocop/disabled.yml

View File

@@ -0,0 +1 @@
chef-redis

View File

@@ -0,0 +1 @@
2.1.5

View File

@@ -0,0 +1,19 @@
language: ruby
bundler_args: --jobs 3 --without integration
rvm:
- 1.9.3
- 2.0.0
- 2.1.5
before_script:
- "gem install bundler-audit --no-rdoc --no-ri && bundle-audit update"
script:
- bundle-audit
- bundle exec rake rubocop
- bundle exec rake foodcritic
- bundle exec rake chefspec
- bundle exec rake kitchen:all
- bundle exec license_finder --quiet
env:
matrix:
- CHEF_VERSION: "10.30"
- CHEF_VERSION: "11.16"

View File

@@ -0,0 +1,7 @@
source "http://api.berkshelf.com"
metadata
group :integration do
cookbook "minitest-handler"
end

20
cookbooks/redis/Gemfile Normal file
View File

@@ -0,0 +1,20 @@
source "https://rubygems.org"
chef_version = ENV.fetch("CHEF_VERSION", "11.16")
gem "chef", "~> #{chef_version}"
gem "chefspec", "~> 4.1.1" if chef_version =~ /^11/
gem "berkshelf", "~> 3.2.1"
gem "foodcritic", "~> 4.0.0"
gem "license_finder", "~> 1.2.0"
gem "rake"
gem "rubocop", "~> 0.27.1"
gem "serverspec", "~> 2.3.1"
group :integration do
gem "busser-serverspec", "~> 0.5.3"
gem "guard-rspec", "~> 4.3.1"
gem "kitchen-vagrant", "~> 0.15.0"
gem "test-kitchen", "~> 1.2.1"
end

View File

@@ -0,0 +1,5 @@
guard :rspec, cmd: "rspec --color", all_on_start: false do
watch(/^spec\/(.+)_spec\.rb$/)
watch(/^recipes\/(.+)\.rb$/) { |m| "spec/#{m[1]}_spec.rb" }
watch("spec/spec_helper.rb") { "spec" }
end

View File

@@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright © 2012-2014 Phil Cohen <github@phlippers.net>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

155
cookbooks/redis/README.md Normal file
View File

@@ -0,0 +1,155 @@
# chef-redis [![Build Status](https://travis-ci.org/phlipper/chef-redis.svg?branch=master)](https://travis-ci.org/phlipper/chef-redis)
## Description
This cookbook installs [Redis](http://redis.io) from Chris Lea's [ppa archive](https://launchpad.net/~chris-lea/+archive/redis-server).
Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
## Requirements
### Supported Platforms
The following platforms are supported by this cookbook, meaning that the recipes run on these platforms without error:
* Ubuntu 12.04+
* Debian 6+
### Cookbooks
* [apt](http://community.opscode.com/cookbooks/apt)
* [minitest-handler](http://community.opscode.com/cookbooks/minitest-handler) _(suggested, not required)_
## Recipes
* `redis` - The default recipe. Setup apt with ppa details.
* `redis::server` - Install the Redis server.
* `redis::client` - Install the Redis client.
# Usage
This cookbook installs the Redis components if not present, and pulls updates if they are installed on the system.
## Attributes
```ruby
case node["platform"]
when "debian"
default["redis"]["apt_distribution"] = node["lsb"]["codename"]
default["redis"]["apt_repository"] = "dotdeb"
default["redis"]["apt_uri"] = "http://packages.dotdeb.org"
default["redis"]["apt_components"] = ["all"]
default["redis"]["apt_key"] = "http://www.dotdeb.org/dotdeb.gpg"
when "ubuntu"
default["redis"]["apt_distribution"] = node["lsb"]["codename"]
default["redis"]["apt_repository"] = "chris-lea-redis-server"
default["redis"]["apt_uri"] = "http://ppa.launchpad.net/chris-lea/redis-server/ubuntu"
default["redis"]["apt_components"] = ["main"]
default["redis"]["apt_keyserver"] = "keyserver.ubuntu.com"
default["redis"]["apt_key"] = "C7917B12"
end
default["redis"]["pidfile"] = "/var/run/redis/redis-server.pid"
default["redis"]["daemonize"] = "yes"
default["redis"]["port"] = 6379
default["redis"]["bind"] = "127.0.0.1"
default["redis"]["unixsocket"] = "/var/run/redis/redis.sock"
default["redis"]["unixsocketperm"] = 755
default["redis"]["timeout"] = 300
default["redis"]["loglevel"] = "notice"
default["redis"]["logfile"] = "/var/log/redis/redis-server.log"
default["redis"]["syslog_enabled"] = "no"
default["redis"]["syslog_ident"] = "redis"
default["redis"]["syslog_facility"] = "local0"
default["redis"]["databases"] = 16
default["redis"]["snapshots"] = {
900 => 1,
300 => 10,
60 => 10000
}
default["redis"]["stop_writes_on_bgsave_error"] = "yes"
default["redis"]["rdbcompression"] = "yes"
default["redis"]["rdbchecksum"] = "yes"
default["redis"]["dbfilename"] = "dump.rdb"
default["redis"]["dir"] = "/var/lib/redis"
default["redis"]["slaveof"] = ""
default["redis"]["masterauth"] = ""
default["redis"]["slave_serve_stale_data"] = "yes"
default["redis"]["slave_read_only"] = "yes"
default["redis"]["repl_ping_slave_period"] = 10
default["redis"]["repl_timeout"] = 60
default["redis"]["slave_priority"] = 100
default["redis"]["requirepass"] = ""
default["redis"]["rename_commands"] = []
default["redis"]["maxclients"] = 128
default["redis"]["maxmemory"] = "64mb"
default["redis"]["maxmemory_policy"] = "volatile-lru"
default["redis"]["maxmemory_samples"] = 3
default["redis"]["appendonly"] = "no"
default["redis"]["appendfilename"] = "appendonly.aof"
default["redis"]["appendfsync"] = "everysec"
default["redis"]["no_appendfsync_on_rewrite"] = "no"
default["redis"]["auto_aof_rewrite_percentage"] = 100
default["redis"]["auto_aof_rewrite_min_size"] = "64mb"
default["redis"]["lua_time_limit"] = 5000
default["redis"]["slowlog_log_slower_than"] = 10000
default["redis"]["slowlog_max_len"] = 1024
default["redis"]["hash_max_ziplist_entries"] = 512
default["redis"]["hash_max_ziplist_value"] = 64
default["redis"]["list_max_ziplist_entries"] = 512
default["redis"]["list_max_ziplist_value"] = 64
default["redis"]["set_max_intset_entries"] = 512
default["redis"]["zset_max_ziplist_entries"] = 128
default["redis"]["zset_max_ziplist_value"] = 64
default["redis"]["activerehashing"] = "yes"
default["redis"]["client_output_buffer_limit"] = {
"normal" => "0 0 0",
"slave" => "256mb 64mb 60",
"pubsub" => "32mb 8mb 60"
}
default["redis"]["include_config_files"] = []
default["redis"]["ulimit"] = ""
default["redis"]["auto_upgrade"] = false
```
## Basic Settings
* `node["redis"]["ulimit"]` - Sets the maximum number of file descriptors for the Redis process. If this is unset or empty, the limit is the system default. The default may not be high enough to handle a large number of concurrent connections. See [Redis Clients Handling](http://redis.io/topics/clients).
## Contributors
Many thanks go to the following [contributors](https://github.com/phlipper/chef-redis/graphs/contributors) who have helped to make this cookbook even better:
* **[@smoil](https://github.com/smoil)**
* `redis.conf` updates for Redis 2.6
* **[@svend](https://github.com/svend)**
* add attribute to set ulimit
* **[@maciej](https://github.com/maciej)**
* ensure `node["redis"]["dir"]` exists
* **[@dwradcliffe](https://github.com/dwradcliffe)**
* allow bind to all interfaces
* **[@duggan](https://github.com/duggan)**
* allow customizable apt sources
## Contributing
This cookbook could have way more personality... Help make it so!
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request
## License
**chef-redis**
* Freely distributable and licensed under the [MIT license](http://phlipper.mit-license.org/2012-2014/license.html).
* Copyright (c) 2012-2014 Phil Cohen (github@phlippers.net) [![endorse](http://api.coderwall.com/phlipper/endorsecount.png)](http://coderwall.com/phlipper) [![Gittip](http://img.shields.io/gittip/phlipper.png)](https://www.gittip.com/phlipper/)
* http://phlippers.net/

31
cookbooks/redis/Rakefile Normal file
View File

@@ -0,0 +1,31 @@
task default: "test"
desc "Run all tests except `kitchen`"
task test: [:rubocop, :foodcritic, :chefspec]
desc "Run all tests"
task all_tests: [:rubocop, :foodcritic, :chefspec, "kitchen:all"]
# rubocop style checker
require "rubocop/rake_task"
RuboCop::RakeTask.new
# foodcritic chef lint
require "foodcritic"
FoodCritic::Rake::LintTask.new do |t|
t.options = { fail_tags: ["any"] }
end
# chefspec unit tests
require "rspec/core/rake_task"
RSpec::Core::RakeTask.new(:chefspec) do |t|
t.rspec_opts = "--color --format progress"
end
# test-kitchen integration tests
begin
require "kitchen/rake_tasks"
Kitchen::RakeTasks.new
rescue LoadError
task("kitchen:all") { puts "Unable to run `test-kitchen`" }
end

View File

@@ -0,0 +1,77 @@
case node["platform"]
when "debian"
default["redis"]["apt_distribution"] = node["lsb"]["codename"]
default["redis"]["apt_repository"] = "dotdeb"
default["redis"]["apt_uri"] = "http://packages.dotdeb.org"
default["redis"]["apt_components"] = ["all"]
default["redis"]["apt_key"] = "http://www.dotdeb.org/dotdeb.gpg"
when "ubuntu"
default["redis"]["apt_distribution"] = node["lsb"]["codename"]
default["redis"]["apt_repository"] = "chris-lea-redis-server"
default["redis"]["apt_uri"] = "http://ppa.launchpad.net/chris-lea/redis-server/ubuntu"
default["redis"]["apt_components"] = ["main"]
default["redis"]["apt_keyserver"] = "keyserver.ubuntu.com"
default["redis"]["apt_key"] = "C7917B12"
end
default["redis"]["pidfile"] = "/var/run/redis/redis-server.pid"
default["redis"]["daemonize"] = "yes"
default["redis"]["port"] = 6379
default["redis"]["bind"] = "127.0.0.1"
default["redis"]["unixsocket"] = "/var/run/redis/redis.sock"
default["redis"]["unixsocketperm"] = 755
default["redis"]["timeout"] = 300
default["redis"]["loglevel"] = "notice"
default["redis"]["logfile"] = "/var/log/redis/redis-server.log"
default["redis"]["syslog_enabled"] = "no"
default["redis"]["syslog_ident"] = "redis"
default["redis"]["syslog_facility"] = "local0"
default["redis"]["databases"] = 16
default["redis"]["snapshots"] = {
900 => 1,
300 => 10,
60 => 10_000
}
default["redis"]["stop_writes_on_bgsave_error"] = "yes"
default["redis"]["rdbcompression"] = "yes"
default["redis"]["rdbchecksum"] = "yes"
default["redis"]["dbfilename"] = "dump.rdb"
default["redis"]["dir"] = "/var/lib/redis"
default["redis"]["slaveof"] = ""
default["redis"]["masterauth"] = ""
default["redis"]["slave_serve_stale_data"] = "yes"
default["redis"]["slave_read_only"] = "yes"
default["redis"]["repl_ping_slave_period"] = 10
default["redis"]["repl_timeout"] = 60
default["redis"]["slave_priority"] = 100
default["redis"]["requirepass"] = ""
default["redis"]["rename_commands"] = []
default["redis"]["maxclients"] = 128
default["redis"]["maxmemory"] = "64mb"
default["redis"]["maxmemory_policy"] = "volatile-lru"
default["redis"]["maxmemory_samples"] = 3
default["redis"]["appendonly"] = "no"
default["redis"]["appendfilename"] = "appendonly.aof"
default["redis"]["appendfsync"] = "everysec"
default["redis"]["no_appendfsync_on_rewrite"] = "no"
default["redis"]["auto_aof_rewrite_percentage"] = 100
default["redis"]["auto_aof_rewrite_min_size"] = "64mb"
default["redis"]["lua_time_limit"] = 5000
default["redis"]["slowlog_log_slower_than"] = 10_000
default["redis"]["slowlog_max_len"] = 1024
default["redis"]["hash_max_ziplist_entries"] = 512
default["redis"]["hash_max_ziplist_value"] = 64
default["redis"]["list_max_ziplist_entries"] = 512
default["redis"]["list_max_ziplist_value"] = 64
default["redis"]["set_max_intset_entries"] = 512
default["redis"]["zset_max_ziplist_entries"] = 128
default["redis"]["zset_max_ziplist_value"] = 64
default["redis"]["activerehashing"] = "yes"
default["redis"]["client_output_buffer_limit"] = {
"normal" => "0 0 0",
"slave" => "256mb 64mb 60",
"pubsub" => "32mb 8mb 60"
}
default["redis"]["include_config_files"] = []
default["redis"]["ulimit"] = ""
default["redis"]["auto_upgrade"] = false

View File

@@ -0,0 +1,11 @@
---
whitelist:
- Apache 2.0
- Apache v2
- BSD
- BSD-3
- ISC
- MIT
- Ruby
dependencies_file_dir: doc/license_finder
project_name: chef-redis

View File

@@ -0,0 +1,105 @@
addressable, 2.3.6, Apache 2.0
ast, 2.0.0, MIT
astrolabe, 1.3.0, MIT
berkshelf, 3.2.1, Apache 2.0
berkshelf-api-client, 1.2.0, Apache 2.0
buff-config, 1.0.1, Apache 2.0
buff-extensions, 1.0.0, Apache 2.0
buff-ignore, 1.1.1, Apache 2.0
buff-ruby_engine, 0.1.0, Apache 2.0
buff-shell_out, 0.2.0, Apache 2.0
bundler, 1.7.6, MIT
busser, 0.6.0, Apache 2.0
busser-serverspec, 0.5.3, Apache 2.0
celluloid, 0.16.0, MIT
celluloid-io, 0.16.1, MIT
chef, 11.16.4, Apache 2.0
chef-zero, 2.2.1, Apache 2.0
chefspec, 4.1.1, MIT
cleanroom, 1.0.0, Apache 2.0
coderay, 1.1.0, MIT
dep-selector-libgecode, 1.0.2, MIT, Apache 2.0
dep_selector, 1.0.3, Apache v2
diff-lcs, 1.2.5, MIT, Perl Artistic v2, GNU GPL v2
erubis, 2.7.0, MIT
faraday, 0.9.0, MIT
fauxhai, 2.2.0, MIT
ffi, 1.9.6, BSD
ffi-yajl, 1.3.0, Apache 2.0
foodcritic, 4.0.0, MIT
formatador, 0.2.5, MIT
gherkin, 2.12.2, MIT
guard, 2.8.2, MIT
guard-rspec, 4.3.1, MIT
hashie, 2.1.2, MIT
highline, 1.6.21, ruby
hitimes, 1.2.2, ISC
httparty, 0.13.3, MIT
ipaddress, 0.8.0, MIT
json, 1.8.1, ruby
kitchen-vagrant, 0.15.0, Apache 2.0
libyajl2, 1.2.0, Apache 2.0
license_finder, 1.2, MIT
listen, 2.8.0, MIT
lumberjack, 1.0.9, MIT
method_source, 0.8.2, MIT
mime-types, 1.25.1, MIT, Artistic 2.0, GPL-2
mini_portile, 0.6.1, MIT
minitar, 0.5.4, ruby
mixlib-authentication, 1.3.0, Apache 2.0
mixlib-cli, 1.5.0, Apache 2.0
mixlib-config, 2.1.0, Apache 2.0
mixlib-log, 1.6.0, Apache 2.0
mixlib-shellout, 1.6.0, Apache 2.0
multi_json, 1.10.1, MIT
multi_xml, 0.5.5, MIT
multipart-post, 2.0.0, MIT
net-http-persistent, 2.9.4, MIT
net-scp, 1.2.1, MIT
net-ssh, 2.9.1, MIT
net-ssh-gateway, 1.2.0, MIT
net-ssh-multi, 1.2.0, MIT
nio4r, 1.0.1, MIT
nokogiri, 1.6.4.1, MIT
octokit, 3.5.2, MIT
ohai, 7.4.0, Apache 2.0
parser, 2.2.0.pre.8, MIT
plist, 3.1.0, MIT
polyglot, 0.3.5, MIT
powerpack, 0.0.9, MIT
pry, 0.10.1, MIT
rack, 1.5.2, MIT
rainbow, 2.0.0, MIT
rake, 10.3.2, MIT
rb-fsevent, 0.9.4, MIT
rb-inotify, 0.9.5, MIT
rest-client, 1.6.7, MIT
retryable, 1.3.6, MIT
ridley, 4.1.0, Apache 2.0
rspec, 3.1.0, MIT
rspec-core, 3.1.7, MIT
rspec-expectations, 3.1.2, MIT
rspec-its, 1.1.0, MIT
rspec-mocks, 3.1.3, MIT
rspec-support, 3.1.2, MIT
rubocop, 0.27.1, MIT
ruby-progressbar, 1.7.0, MIT
rufus-lru, 1.0.5, MIT
safe_yaml, 1.0.4, MIT
sawyer, 0.5.5, MIT
semverse, 1.2.1, Apache 2.0
sequel, 4.16.0, MIT
serverspec, 2.3.1, MIT
slop, 3.6.0, MIT
solve, 1.2.1, Apache 2.0
specinfra, 2.5.0, MIT
sqlite3, 1.3.10, New BSD
systemu, 2.6.4, ruby
test-kitchen, 1.2.1, Apache 2.0
thor, 0.19.1, MIT
timers, 4.0.1, MIT
treetop, 1.5.3, MIT
varia_model, 0.4.0, Apache 2.0
wmi-lite, 1.0.0, Apache 2.0
xml-simple, 1.1.4, ruby
yajl-ruby, 1.2.1, MIT
1 addressable 2.3.6 Apache 2.0
2 ast 2.0.0 MIT
3 astrolabe 1.3.0 MIT
4 berkshelf 3.2.1 Apache 2.0
5 berkshelf-api-client 1.2.0 Apache 2.0
6 buff-config 1.0.1 Apache 2.0
7 buff-extensions 1.0.0 Apache 2.0
8 buff-ignore 1.1.1 Apache 2.0
9 buff-ruby_engine 0.1.0 Apache 2.0
10 buff-shell_out 0.2.0 Apache 2.0
11 bundler 1.7.6 MIT
12 busser 0.6.0 Apache 2.0
13 busser-serverspec 0.5.3 Apache 2.0
14 celluloid 0.16.0 MIT
15 celluloid-io 0.16.1 MIT
16 chef 11.16.4 Apache 2.0
17 chef-zero 2.2.1 Apache 2.0
18 chefspec 4.1.1 MIT
19 cleanroom 1.0.0 Apache 2.0
20 coderay 1.1.0 MIT
21 dep-selector-libgecode 1.0.2 MIT Apache 2.0
22 dep_selector 1.0.3 Apache v2
23 diff-lcs 1.2.5 MIT Perl Artistic v2 GNU GPL v2
24 erubis 2.7.0 MIT
25 faraday 0.9.0 MIT
26 fauxhai 2.2.0 MIT
27 ffi 1.9.6 BSD
28 ffi-yajl 1.3.0 Apache 2.0
29 foodcritic 4.0.0 MIT
30 formatador 0.2.5 MIT
31 gherkin 2.12.2 MIT
32 guard 2.8.2 MIT
33 guard-rspec 4.3.1 MIT
34 hashie 2.1.2 MIT
35 highline 1.6.21 ruby
36 hitimes 1.2.2 ISC
37 httparty 0.13.3 MIT
38 ipaddress 0.8.0 MIT
39 json 1.8.1 ruby
40 kitchen-vagrant 0.15.0 Apache 2.0
41 libyajl2 1.2.0 Apache 2.0
42 license_finder 1.2 MIT
43 listen 2.8.0 MIT
44 lumberjack 1.0.9 MIT
45 method_source 0.8.2 MIT
46 mime-types 1.25.1 MIT Artistic 2.0 GPL-2
47 mini_portile 0.6.1 MIT
48 minitar 0.5.4 ruby
49 mixlib-authentication 1.3.0 Apache 2.0
50 mixlib-cli 1.5.0 Apache 2.0
51 mixlib-config 2.1.0 Apache 2.0
52 mixlib-log 1.6.0 Apache 2.0
53 mixlib-shellout 1.6.0 Apache 2.0
54 multi_json 1.10.1 MIT
55 multi_xml 0.5.5 MIT
56 multipart-post 2.0.0 MIT
57 net-http-persistent 2.9.4 MIT
58 net-scp 1.2.1 MIT
59 net-ssh 2.9.1 MIT
60 net-ssh-gateway 1.2.0 MIT
61 net-ssh-multi 1.2.0 MIT
62 nio4r 1.0.1 MIT
63 nokogiri 1.6.4.1 MIT
64 octokit 3.5.2 MIT
65 ohai 7.4.0 Apache 2.0
66 parser 2.2.0.pre.8 MIT
67 plist 3.1.0 MIT
68 polyglot 0.3.5 MIT
69 powerpack 0.0.9 MIT
70 pry 0.10.1 MIT
71 rack 1.5.2 MIT
72 rainbow 2.0.0 MIT
73 rake 10.3.2 MIT
74 rb-fsevent 0.9.4 MIT
75 rb-inotify 0.9.5 MIT
76 rest-client 1.6.7 MIT
77 retryable 1.3.6 MIT
78 ridley 4.1.0 Apache 2.0
79 rspec 3.1.0 MIT
80 rspec-core 3.1.7 MIT
81 rspec-expectations 3.1.2 MIT
82 rspec-its 1.1.0 MIT
83 rspec-mocks 3.1.3 MIT
84 rspec-support 3.1.2 MIT
85 rubocop 0.27.1 MIT
86 ruby-progressbar 1.7.0 MIT
87 rufus-lru 1.0.5 MIT
88 safe_yaml 1.0.4 MIT
89 sawyer 0.5.5 MIT
90 semverse 1.2.1 Apache 2.0
91 sequel 4.16.0 MIT
92 serverspec 2.3.1 MIT
93 slop 3.6.0 MIT
94 solve 1.2.1 Apache 2.0
95 specinfra 2.5.0 MIT
96 sqlite3 1.3.10 New BSD
97 systemu 2.6.4 ruby
98 test-kitchen 1.2.1 Apache 2.0
99 thor 0.19.1 MIT
100 timers 4.0.1 MIT
101 treetop 1.5.3 MIT
102 varia_model 0.4.0 Apache 2.0
103 wmi-lite 1.0.0 Apache 2.0
104 xml-simple 1.1.4 ruby
105 yajl-ruby 1.2.1 MIT

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,991 @@
# chef-redis
As of November 22, 2014 9:37pm. 105 total
## Summary
* 65 MIT
* 28 Apache 2.0
* 5 ruby
* 1 Apache 2.0, MIT
* 1 BSD
* 1 Apache v2
* 1 ISC
* 1 Artistic 2.0, GPL-2, MIT
* 1 GNU GPL v2, MIT, Perl Artistic v2
* 1 New BSD
## Items
<a name="addressable"></a>
### <a href="http://addressable.rubyforge.org/">addressable</a> v2.3.6
#### URI Implementation
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Addressable is a replacement for the URI implementation that is part of
Ruby's standard library. It more closely conforms to the relevant RFCs and
adds support for IRIs and URI templates.
<a name="ast"></a>
### <a href="https://whitequark.github.io/ast/">ast</a> v2.0.0
#### A library for working with Abstract Syntax Trees.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A library for working with Abstract Syntax Trees.
<a name="astrolabe"></a>
### <a href="https://github.com/yujinakayama/astrolabe">astrolabe</a> v1.3.0
#### An object-oriented AST extension for Parser
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
An object-oriented AST extension for Parser
<a name="berkshelf"></a>
### <a href="http://berkshelf.com">berkshelf</a> v3.2.1 (default)
#### Manages a Cookbook's, or an Application's, Cookbook dependencies
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Manages a Cookbook's, or an Application's, Cookbook dependencies
<a name="berkshelf-api-client"></a>
### <a href="http://berkshelf.com">berkshelf-api-client</a> v1.2.0
#### API Client for communicating with a Berkshelf API server
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
API Client for communicating with a Berkshelf API server
<a name="buff-config"></a>
### <a href="https://github.com/RiotGames/buff-config">buff-config</a> v1.0.1
#### A simple configuration class
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A simple configuration class
<a name="buff-extensions"></a>
### <a href="https://github.com/RiotGames/buff-extensions">buff-extensions</a> v1.0.0
#### Extensions to Core Ruby classes
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Extensions to Core Ruby classes
<a name="buff-ignore"></a>
### <a href="https://github.com/sethvargo/buff-ignore">buff-ignore</a> v1.1.1
#### A Ruby library for parsing lists of files and applying pattern matching exclusion (such as .gitignore)
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Parse ignore files with Ruby
<a name="buff-ruby_engine"></a>
### <a href="https://github.com/RiotGames/buff-ruby_engine">buff-ruby_engine</a> v0.1.0
#### Buff up your code with a mixin for querying the platform running Ruby
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A mixin for querying the platform running Ruby
<a name="buff-shell_out"></a>
### <a href="https://github.com/RiotGames/buff-shell_out">buff-shell_out</a> v0.2.0
#### Buff up your code with a mixin for issuing shell commands and collecting the output
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A mixin for issuing shell commands and collecting the output
<a name="bundler"></a>
### bundler v1.7.6
####
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
<a name="busser"></a>
### <a href="https://github.com/fnichol/busser">busser</a> v0.6.0
#### Kitchen Busser - Runs tests for projects in test-kitchen
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Kitchen Busser - Runs tests for projects in test-kitchen
<a name="busser-serverspec"></a>
### <a href="https://github.com/test-kitchen/busser-serverspec">busser-serverspec</a> v0.5.3 (integration)
#### A Busser runner plugin for Serverspec
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A Busser runner plugin for Serverspec
<a name="celluloid"></a>
### <a href="https://github.com/celluloid/celluloid">celluloid</a> v0.16.0
#### Actor-based concurrent object framework for Ruby
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Celluloid enables people to build concurrent programs out of concurrent objects just as easily as they build sequential programs out of sequential objects
<a name="celluloid-io"></a>
### <a href="http://github.com/celluloid/celluloid-io">celluloid-io</a> v0.16.1
#### Celluloid::IO allows you to monitor multiple IO objects within a Celluloid actor
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Evented IO for Celluloid actors
<a name="chef"></a>
### <a href="http://wiki.opscode.com/display/chef">chef</a> v11.16.4 (default)
#### A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
<a name="chef-zero"></a>
### <a href="http://www.opscode.com">chef-zero</a> v2.2.1
#### Self-contained, easy-setup, fast-start in-memory Chef server for testing and solo setup purposes
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Self-contained, easy-setup, fast-start in-memory Chef server for testing and solo setup purposes
<a name="chefspec"></a>
### <a href="http://code.sethvargo.com/chefspec">chefspec</a> v4.1.1 (default)
#### Write RSpec examples and generate coverage reports for Chef recipes!
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
ChefSpec is a unit testing and resource coverage (code coverage) framework for testing Chef cookbooks ChefSpec makes it easy to write examples and get fast feedback on cookbook changes without the need for virtual machines or cloud servers.
<a name="cleanroom"></a>
### <a href="https://github.com/sethvargo/cleanroom">cleanroom</a> v1.0.0
#### (More) safely evaluate Ruby DSLs with cleanroom
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Ruby is an excellent programming language for creating and managing custom DSLs, but how can you securely evaluate a DSL while explicitly controlling the methods exposed to the user? Our good friends instance_eval and instance_exec are great, but they expose all methods - public, protected, and private - to the user. Even worse, they expose the ability to accidentally or intentionally alter the behavior of the system! The cleanroom pattern is a safer, more convenient, Ruby-like approach for limiting the information exposed by a DSL while giving users the ability to write awesome code!
<a name="coderay"></a>
### <a href="http://coderay.rubychan.de">coderay</a> v1.1.0
#### Fast syntax highlighting for selected languages.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Fast and easy syntax highlighting for selected languages, written in Ruby. Comes with RedCloth integration and LOC counter.
<a name="dep-selector-libgecode"></a>
### dep-selector-libgecode v1.0.2
#### Installs a vendored copy of Gecode suitable for use with dep-selector
<a href="http://opensource.org/licenses/mit-license">MIT</a>, <a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Installs a vendored copy of Gecode suitable for use with dep-selector
<a name="dep_selector"></a>
### <a href="http://github.com/opscode/dep-selector">dep_selector</a> v1.0.3
#### Given packages, versions, and a dependency graph, find a valid assignment of package versions
Apache v2 whitelisted
Given packages, versions, and a dependency graph, find a valid assignment of package versions
<a name="diff-lcs"></a>
### <a href="http://diff-lcs.rubyforge.org/">diff-lcs</a> v1.2.5
#### Diff::LCS computes the difference between two Enumerable sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm
<a href="http://opensource.org/licenses/mit-license">MIT</a>, Perl Artistic v2, GNU GPL v2 whitelisted
Diff::LCS computes the difference between two Enumerable sequences using the
McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
to create a simple HTML diff output format and a standard diff-like tool.
This is release 1.2.4, fixing a bug introduced after diff-lcs 1.1.3 that did
not properly prune common sequences at the beginning of a comparison set.
Thanks to Paul Kunysch for fixing this issue.
Coincident with the release of diff-lcs 1.2.3, we reported an issue with
Rubinius in 1.9 mode
({rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268]).
We are happy to report that this issue has been resolved.
<a name="erubis"></a>
### <a href="http://www.kuwata-lab.com/erubis/">erubis</a> v2.7.0
#### a fast and extensible eRuby implementation which supports multi-language
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Erubis is an implementation of eRuby and has the following features:
* Very fast, almost three times faster than ERB and about 10% faster than eruby.
* Multi-language support (Ruby/PHP/C/Java/Scheme/Perl/Javascript)
* Auto escaping support
* Auto trimming spaces around '<% %>'
* Embedded pattern changeable (default '<% %>')
* Enable to handle Processing Instructions (PI) as embedded pattern (ex. '<?rb ... ?>')
* Context object available and easy to combine eRuby template with YAML datafile
* Print statement available
* Easy to extend and customize in subclass
* Ruby on Rails support
<a name="faraday"></a>
### <a href="https://github.com/lostisland/faraday">faraday</a> v0.9.0
#### HTTP/REST API client library.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
<a name="fauxhai"></a>
### <a href="https://github.com/customink/fauxhai">fauxhai</a> v2.2.0
#### Fauxhai provides an easy way to mock out your ohai data for testing with chefspec!
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Easily mock out ohai data
<a name="ffi"></a>
### <a href="http://wiki.github.com/ffi/ffi">ffi</a> v1.9.6
#### Ruby FFI
<a href="http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29">BSD</a> whitelisted
Ruby FFI library
<a name="ffi-yajl"></a>
### <a href="http://github.com/opscode/ffi-yajl">ffi-yajl</a> v1.3.0
#### Ruby FFI wrapper around YAJL 2.x
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Ruby FFI wrapper around YAJL 2.x
<a name="foodcritic"></a>
### <a href="http://foodcritic.io">foodcritic</a> v4.0.0 (default)
#### foodcritic-4.0.0
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Lint tool for Opscode Chef cookbooks.
<a name="formatador"></a>
### <a href="http://github.com/geemus/formatador">formatador</a> v0.2.5
#### Ruby STDOUT text formatting
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
STDOUT text formatting
<a name="gherkin"></a>
### <a href="http://github.com/cucumber/gherkin">gherkin</a> v2.12.2
#### gherkin-2.12.2
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
<a name="guard"></a>
### <a href="http://guardgem.org">guard</a> v2.8.2
#### Guard keeps an eye on your file modifications
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Guard is a command line tool to easily handle events on file system modifications.
<a name="guard-rspec"></a>
### <a href="https://rubygems.org/gems/guard-rspec">guard-rspec</a> v4.3.1 (integration)
#### Guard gem for RSpec
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Guard::RSpec automatically run your specs (much like autotest).
<a name="hashie"></a>
### <a href="https://github.com/intridea/hashie">hashie</a> v2.1.2
#### Your friendly neighborhood hash library.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Hashie is a collection of classes and mixins that make hashes more powerful.
<a name="highline"></a>
### <a href="http://highline.rubyforge.org">highline</a> v1.6.21
#### HighLine is a high-level command-line IO library.
<a href="http://www.ruby-lang.org/en/LICENSE.txt">ruby</a> whitelisted
A high-level IO library that provides validation, type conversion, and more for
command-line interfaces. HighLine also includes a complete menu system that can
crank out anything from simple list selection to complete shells with just
minutes of work.
<a name="hitimes"></a>
### <a href="http://github.com/copiousfreetime/hitimes">hitimes</a> v1.2.2
#### Hitimes is a fast, high resolution timer library for recording performance metrics. It uses the appropriate low method calls for each system to get the highest granularity time increments possible.
<a href="http://en.wikipedia.org/wiki/ISC_license">ISC</a> whitelisted
Hitimes is a fast, high resolution timer library for recording performance metrics. It uses the appropriate low method calls for each system to get the highest granularity time increments possible. It currently supports any of the following systems: * any system with the POSIX call `clock_gettime()` * Mac OS X * Windows * JRuby Using Hitimes can be faster than using a series of `Time.new` calls, and it will have a much higher granularity. It is definitely faster than using `Process.times`.
<a name="httparty"></a>
### <a href="http://jnunemaker.github.com/httparty">httparty</a> v0.13.3
#### Makes http fun! Also, makes consuming restful web services dead easy.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Makes http fun! Also, makes consuming restful web services dead easy.
<a name="ipaddress"></a>
### <a href="http://github.com/bluemonk/ipaddress">ipaddress</a> v0.8.0
#### IPv4/IPv6 addresses manipulation library
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
IPAddress is a Ruby library designed to make manipulation
of IPv4 and IPv6 addresses both powerful and simple. It mantains
a layer of compatibility with Ruby's own IPAddr, while
addressing many of its issues.
<a name="json"></a>
### json v1.8.1
#### This json is bundled with Ruby
<a href="http://www.ruby-lang.org/en/LICENSE.txt">ruby</a> whitelisted
<a name="kitchen-vagrant"></a>
### <a href="https://github.com/test-kitchen/kitchen-vagrant/">kitchen-vagrant</a> v0.15.0 (integration)
#### Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.
<a name="libyajl2"></a>
### <a href="https://github.com/opscode/libyajl2-gem">libyajl2</a> v1.2.0
#### Installs a vendored copy of libyajl2 for distributions which lack it
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Installs a vendored copy of libyajl2 for distributions which lack it
<a name="license_finder"></a>
### <a href="https://github.com/pivotal/LicenseFinder">license_finder</a> v1.2 (default)
#### Audit the OSS licenses of your application's dependencies.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
LicenseFinder works with your package managers to find
dependencies, detect the licenses of the packages in them, compare
those licenses against a user-defined whitelist, and give you an
actionable exception report.
<a name="listen"></a>
### <a href="https://github.com/guard/listen">listen</a> v2.8.0
#### Listen to file modifications
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
The Listen gem listens to file modifications and notifies you about the changes. Works everywhere!
<a name="lumberjack"></a>
### <a href="http://github.com/bdurand/lumberjack">lumberjack</a> v1.0.9
#### A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger. Provides support for automatically rolling log files even with multiple processes writing the same log file.
<a name="method_source"></a>
### <a href="http://banisterfiend.wordpress.com">method_source</a> v0.8.2
#### retrieve the sourcecode for a method
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
retrieve the sourcecode for a method
<a name="mime-types"></a>
### <a href="http://mime-types.rubyforge.org/">mime-types</a> v1.25.1
#### This library allows for the identification of a file's likely MIME content type
<a href="http://opensource.org/licenses/mit-license">MIT</a>, Artistic 2.0, GPL-2 whitelisted
This library allows for the identification of a file's likely MIME content
type. This is release 1.25.1, fixing an issue with priority comparison for
mime-types 1.x. The current release is 2.0, which only supports Ruby 1.9 or
later.
Release 1.25.1 contains all features of 1.25, including the experimental
caching and lazy loading functionality. The caching and lazy loading features
were initially implemented by Greg Brockman (gdb). As these features are
experimental, they are disabled by default and must be enabled through the use
of environment variables. The cache is invalidated on a per-version basis; the
cache for version 1.25 will not be reused for any later version.
To use lazy loading, set the environment variable +RUBY_MIME_TYPES_LAZY_LOAD+
to any value other than 'false'. When using lazy loading, the initial startup
of MIME::Types is around 1225× faster than normal startup (on my system,
normal startup is about 90 ms; lazy startup is about 4 ms). This isn't
generally useful, however, as the MIME::Types database has not been loaded.
Lazy startup and load is just *slightly* faster—around 1 ms. The real advantage
comes from using the cache.
To enable the cache, set the environment variable +RUBY_MIME_TYPES_CACHE+ to a
filename where MIME::Types will have read-write access. The first time a new
version of MIME::Types is run using this file, it will be created, taking a
little longer than normal. Subsequent loads using the same cache file will be
approximately 3½× faster (25 ms) than normal loads. This can be combined with
+RUBY_MIME_TYPES_LAZY_LOAD+, but this is *not* recommended in a multithreaded
or multiprocess environment where all threads or processes will be using the
same cache file.
As the caching interface is still experimental, the only values cached are the
default MIME::Types database, not any custom MIME::Types added by users.
MIME types are used in MIME-compliant communications, as in e-mail or HTTP
traffic, to indicate the type of content which is transmitted. MIME::Types
provides the ability for detailed information about MIME entities (provided as
a set of MIME::Type objects) to be determined and used programmatically. There
are many types defined by RFCs and vendors, so the list is long but not
complete; don't hesitate to ask to add additional information. This library
follows the IANA collection of MIME types (see below for reference).
MIME::Types for Ruby was originally based on MIME::Types for Perl by Mark
Overmeer, copyright 2001 - 2009.
MIME::Types is built to conform to the MIME types of RFCs 2045 and 2231. It
tracks the {IANA registry}[http://www.iana.org/assignments/media-types/]
({ftp}[ftp://ftp.iana.org/assignments/media-types]) with some unofficial types
added from the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp]
and added by the users of MIME::Types.
<a name="mini_portile"></a>
### <a href="http://github.com/luislavena/mini_portile">mini_portile</a> v0.6.1
#### Simplistic port-like solution for developers
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Simplistic port-like solution for developers. It provides a standard and simplified way to compile against dependency libraries without messing up your system.
<a name="minitar"></a>
### <a href="http://www.github.com/atoulme/minitar">minitar</a> v0.5.4
#### Provides POSIX tarchive management from Ruby programs.
<a href="http://www.ruby-lang.org/en/LICENSE.txt">ruby</a> whitelisted
Archive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1) archive files. The implementation is based heavily on Mauricio Ferna'ndez's implementation in rpa-base, but has been reorganised to promote reuse in other projects. Antoine Toulme forked the original project on rubyforge to place it on github, under http://www.github.com/atoulme/minitar
<a name="mixlib-authentication"></a>
### <a href="http://www.opscode.com">mixlib-authentication</a> v1.3.0
#### Mixes in simple per-request authentication
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Mixes in simple per-request authentication
<a name="mixlib-cli"></a>
### <a href="http://www.opscode.com">mixlib-cli</a> v1.5.0
#### A simple mixin for CLI interfaces, including option parsing
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A simple mixin for CLI interfaces, including option parsing
<a name="mixlib-config"></a>
### <a href="http://www.opscode.com">mixlib-config</a> v2.1.0
#### A class based configuration library
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A class based configuration library
<a name="mixlib-log"></a>
### <a href="http://www.opscode.com">mixlib-log</a> v1.6.0
#### A gem that provides a simple mixin for log functionality
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
<a name="mixlib-shellout"></a>
### <a href="http://wiki.opscode.com/">mixlib-shellout</a> v1.6.0
#### Run external commands on Unix or Windows
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Run external commands on Unix or Windows
<a name="multi_json"></a>
### <a href="http://github.com/intridea/multi_json">multi_json</a> v1.10.1
#### A common interface to multiple JSON libraries.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A common interface to multiple JSON libraries, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, NSJSONSerialization, gson.rb, JrJackson, and OkJson.
<a name="multi_xml"></a>
### <a href="https://github.com/sferik/multi_xml">multi_xml</a> v0.5.5
#### A generic swappable back-end for XML parsing
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Provides swappable XML backends utilizing LibXML, Nokogiri, Ox, or REXML.
<a name="multipart-post"></a>
### <a href="https://github.com/nicksieger/multipart-post">multipart-post</a> v2.0.0
#### A multipart form post accessory for Net::HTTP.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Use with Net::HTTP to do multipart form posts. IO values that have #content_type, #original_filename, and #local_path will be posted as a binary file.
<a name="net-http-persistent"></a>
### <a href="http://docs.seattlerb.org/net-http-persistent">net-http-persistent</a> v2.9.4
#### Manages persistent connections using Net::HTTP plus a speed fix for Ruby 1.8
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Manages persistent connections using Net::HTTP plus a speed fix for Ruby 1.8.
It's thread-safe too!
Using persistent HTTP connections can dramatically increase the speed of HTTP.
Creating a new HTTP connection for every request involves an extra TCP
round-trip and causes TCP congestion avoidance negotiation to start over.
Net::HTTP supports persistent connections with some API methods but does not
handle reconnection gracefully. Net::HTTP::Persistent supports reconnection
and retry according to RFC 2616.
<a name="net-scp"></a>
### <a href="https://github.com/net-ssh/net-scp">net-scp</a> v1.2.1
#### A pure Ruby implementation of the SCP client protocol
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A pure Ruby implementation of the SCP client protocol
<a name="net-ssh"></a>
### <a href="https://github.com/net-ssh/net-ssh">net-ssh</a> v2.9.1
#### Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It allows you to write programs that invoke and interact with processes on remote servers, via SSH2.
<a name="net-ssh-gateway"></a>
### <a href="https://github.com/net-ssh/net-scp">net-ssh-gateway</a> v1.2.0
#### A simple library to assist in establishing tunneled Net::SSH connections
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A simple library to assist in establishing tunneled Net::SSH connections
<a name="net-ssh-multi"></a>
### <a href="https://github.com/net-ssh/net-scp">net-ssh-multi</a> v1.2.0
#### Control multiple Net::SSH connections via a single interface.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Control multiple Net::SSH connections via a single interface.
<a name="nio4r"></a>
### <a href="https://github.com/celluloid/nio4r">nio4r</a> v1.0.1
#### NIO provides a high performance selector API for monitoring IO objects
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
New IO for Ruby
<a name="nokogiri"></a>
### <a href="http://nokogiri.org">nokogiri</a> v1.6.4.1
#### Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's
many features is the ability to search documents via XPath or CSS3 selectors.
XML is like violence - if it doesnt solve your problems, you are not using
enough of it.
<a name="octokit"></a>
### <a href="https://github.com/octokit/octokit.rb">octokit</a> v3.5.2
#### Ruby toolkit for working with the GitHub API
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Simple wrapper for the GitHub API
<a name="ohai"></a>
### <a href="http://wiki.opscode.com/display/chef/Ohai">ohai</a> v7.4.0
#### Ohai profiles your system and emits JSON
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Ohai profiles your system and emits JSON
<a name="parser"></a>
### <a href="http://github.com/whitequark/parser">parser</a> v2.2.0.pre.8
#### A Ruby parser written in pure Ruby.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A Ruby parser written in pure Ruby.
<a name="plist"></a>
### <a href="http://plist.rubyforge.org">plist</a> v3.1.0
#### All-purpose Property List manipulation library.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Plist is a library to manipulate Property List files, also known as plists. It can parse plist files into native Ruby data structures as well as generating new plist files from your Ruby objects.
<a name="polyglot"></a>
### <a href="http://github.com/cjheath/polyglot">polyglot</a> v0.3.5
#### Augment 'require' to load non-Ruby file types
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
The Polyglot library allows a Ruby module to register a loader
for the file type associated with a filename extension, and it
augments 'require' to find and load matching files.
<a name="powerpack"></a>
### <a href="https://github.com/bbatsov/powerpack">powerpack</a> v0.0.9
#### A few useful extensions to core Ruby classes.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A few useful extensions to core Ruby classes.
<a name="pry"></a>
### <a href="http://pryrepl.org">pry</a> v0.10.1
#### An IRB alternative and runtime developer console
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
An IRB alternative and runtime developer console
<a name="rack"></a>
### <a href="http://rack.github.com/">rack</a> v1.5.2
#### a modular Ruby webserver interface
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Rack provides a minimal, modular and adaptable interface for developing
web applications in Ruby. By wrapping HTTP requests and responses in
the simplest way possible, it unifies and distills the API for web
servers, web frameworks, and software in between (the so-called
middleware) into a single method call.
Also see http://rack.github.com/.
<a name="rainbow"></a>
### <a href="https://github.com/sickill/rainbow">rainbow</a> v2.0.0
#### Colorize printed text on ANSI terminals
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Colorize printed text on ANSI terminals
<a name="rake"></a>
### <a href="https://github.com/jimweirich/rake">rake</a> v10.3.2 (default)
#### Rake is a Make-like program implemented in Ruby
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
specified in standard Ruby syntax.
Rake has the following features:
* Rakefiles (rake's version of Makefiles) are completely defined in
standard Ruby syntax. No XML files to edit. No quirky Makefile
syntax to worry about (is that a tab or a space?)
* Users can specify tasks with prerequisites.
* Rake supports rule patterns to synthesize implicit tasks.
* Flexible FileLists that act like arrays but know about manipulating
file names and paths.
* A library of prepackaged tasks to make building rakefiles easier. For example,
tasks for building tarballs and publishing to FTP or SSH sites. (Formerly
tasks for building RDoc and Gems were included in rake but they're now
available in RDoc and RubyGems respectively.)
* Supports parallel execution of tasks.
<a name="rb-fsevent"></a>
### <a href="http://rubygems.org/gems/rb-fsevent">rb-fsevent</a> v0.9.4
#### Very simple & usable FSEvents API
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
FSEvents API with Signals catching (without RubyCocoa)
<a name="rb-inotify"></a>
### <a href="http://github.com/nex3/rb-inotify">rb-inotify</a> v0.9.5
#### A Ruby wrapper for Linux's inotify, using FFI
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A Ruby wrapper for Linux's inotify, using FFI
<a name="rest-client"></a>
### <a href="http://github.com/archiloque/rest-client">rest-client</a> v1.6.7
#### Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete.
<a name="retryable"></a>
### <a href="http://github.com/nfedyashev/retryable">retryable</a> v1.3.6
#### Kernel#retryable, allow for retrying of code blocks.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Kernel#retryable, allow for retrying of code blocks.
<a name="ridley"></a>
### <a href="https://github.com/RiotGames/ridley">ridley</a> v4.1.0
#### A reliable Chef API client with a clean syntax
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A reliable Chef API client with a clean syntax
<a name="rspec"></a>
### <a href="http://github.com/rspec">rspec</a> v3.1.0
#### rspec-3.1.0
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
BDD for Ruby
<a name="rspec-core"></a>
### <a href="http://github.com/rspec/rspec-core">rspec-core</a> v3.1.7
#### rspec-core-3.1.7
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
BDD for Ruby. RSpec runner and example groups.
<a name="rspec-expectations"></a>
### <a href="http://github.com/rspec/rspec-expectations">rspec-expectations</a> v3.1.2
#### rspec-expectations-3.1.2
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
rspec-expectations provides a simple, readable API to express expected outcomes of a code example.
<a name="rspec-its"></a>
### <a href="https://github.com/rspec/rspec-its">rspec-its</a> v1.1.0
#### Provides "its" method formally part of rspec-core
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
RSpec extension gem for attribute matching
<a name="rspec-mocks"></a>
### <a href="http://github.com/rspec/rspec-mocks">rspec-mocks</a> v3.1.3
#### rspec-mocks-3.1.3
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
RSpec's 'test double' framework, with support for stubbing and mocking
<a name="rspec-support"></a>
### <a href="https://github.com/rspec/rspec-support">rspec-support</a> v3.1.2
#### rspec-support-3.1.2
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Support utilities for RSpec gems
<a name="rubocop"></a>
### <a href="http://github.com/bbatsov/rubocop">rubocop</a> v0.27.1 (default)
#### Automatic Ruby code style checking tool.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Automatic Ruby code style checking tool.
Aims to enforce the community-driven Ruby Style Guide.
<a name="ruby-progressbar"></a>
### <a href="https://github.com/jfelchner/ruby-progressbar">ruby-progressbar</a> v1.7.0
#### Ruby/ProgressBar is a flexible text progress bar library for Ruby.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Ruby/ProgressBar is an extremely flexible text progress bar library for Ruby.
The output can be customized with a flexible formatting system including:
percentage, bars of various formats, elapsed time and estimated time remaining.
<a name="rufus-lru"></a>
### <a href="http://github.com/jmettraux/rufus-lru">rufus-lru</a> v1.0.5
#### A Hash with a max size, controlled by a LRU mechanism
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
LruHash class, a Hash with a max size, controlled by a LRU mechanism
<a name="safe_yaml"></a>
### <a href="https://github.com/dtao/safe_yaml">safe_yaml</a> v1.0.4
#### SameYAML provides an alternative implementation of YAML.load suitable for accepting user input in Ruby applications.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Parse YAML safely
<a name="sawyer"></a>
### <a href="https://github.com/lostisland/sawyer">sawyer</a> v0.5.5
#### Secret User Agent of HTTP
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
<a name="semverse"></a>
### <a href="https://github.com/berkshelf/semverse">semverse</a> v1.2.1
#### An elegant library for representing and comparing SemVer versions and constraints
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
An elegant library for representing and comparing SemVer versions and constraints
<a name="sequel"></a>
### <a href="http://sequel.jeremyevans.net">sequel</a> v4.16.0
#### The Database Toolkit for Ruby
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
The Database Toolkit for Ruby
<a name="serverspec"></a>
### <a href="http://serverspec.org/">serverspec</a> v2.3.1 (default)
#### RSpec tests for your servers configured by Puppet, Chef or anything else
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
RSpec tests for your servers configured by Puppet, Chef or anything else
<a name="slop"></a>
### <a href="http://github.com/leejarvis/slop">slop</a> v3.6.0
#### Simple Lightweight Option Parsing
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
A simple DSL for gathering options and parsing the command line
<a name="solve"></a>
### <a href="https://github.com/berkshelf/solve">solve</a> v1.2.1
#### A Ruby version constraint solver implementing Semantic Versioning 2.0.0-rc.1
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A Ruby version constraint solver
<a name="specinfra"></a>
### specinfra v2.5.0
#### Common layer for serverspec and itamae
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Common layer for serverspec and itamae
<a name="sqlite3"></a>
### <a href="https://github.com/sparklemotion/sqlite3-ruby">sqlite3</a> v1.3.10
#### This module allows Ruby programs to interface with the SQLite3 database engine (http://www.sqlite.org)
<a href="http://opensource.org/licenses/BSD-3-Clause">New BSD</a> whitelisted
This module allows Ruby programs to interface with the SQLite3
database engine (http://www.sqlite.org). You must have the
SQLite engine installed in order to build this module.
Note that this module is only compatible with SQLite 3.6.16 or newer.
<a name="systemu"></a>
### <a href="https://github.com/ahoward/systemu">systemu</a> v2.6.4
#### systemu
<a href="http://www.ruby-lang.org/en/LICENSE.txt">ruby</a> whitelisted
universal capture of stdout and stderr and handling of child process pid for windows, *nix, etc.
<a name="test-kitchen"></a>
### <a href="http://kitchen.ci">test-kitchen</a> v1.2.1 (integration)
#### Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms.
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms.
<a name="thor"></a>
### <a href="http://whatisthor.com/">thor</a> v0.19.1
#### Thor is a toolkit for building powerful command-line interfaces.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Thor is a toolkit for building powerful command-line interfaces.
<a name="timers"></a>
### <a href="https://github.com/celluloid/timers">timers</a> v4.0.1
#### Schedule procs to run after a certain time, or at periodic intervals, using any API that accepts a timeout
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
Pure Ruby one-shot and periodic timers
<a name="treetop"></a>
### <a href="https://github.com/cjheath/treetop">treetop</a> v1.5.3
#### A Ruby-based text parsing and interpretation DSL
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted
<a name="varia_model"></a>
### <a href="https://github.com/RiotGames/varia_model">varia_model</a> v0.4.0
#### A mixin to provide objects with magic attribute reading and writing
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A mixin to provide objects with magic attribute reading and writing
<a name="wmi-lite"></a>
### <a href="https://github.com/opscode/wmi-lite">wmi-lite</a> v1.0.0
#### A lightweight utility library for accessing basic WMI (Windows Management Instrumentation) functionality on Windows
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a> whitelisted
A lightweight utility over win32ole for accessing basic WMI (Windows Management Instrumentation) functionality in the Microsoft Windows operating system. It has no runtime dependencies other than Ruby, so it can be used without concerns around dependency issues.
<a name="xml-simple"></a>
### <a href="https://github.com/maik/xml-simple">xml-simple</a> v1.1.4
#### A simple API for XML processing.
<a href="http://www.ruby-lang.org/en/LICENSE.txt">ruby</a> whitelisted
<a name="yajl-ruby"></a>
### <a href="http://github.com/brianmario/yajl-ruby">yajl-ruby</a> v1.2.1
#### Ruby C bindings to the excellent Yajl JSON stream-based parser library.
<a href="http://opensource.org/licenses/mit-license">MIT</a> whitelisted

View File

@@ -0,0 +1,234 @@
addressable,2.3.6,Apache 2.0,URI Implementation,"Addressable is a replacement for the URI implementation that is part of
Ruby's standard library. It more closely conforms to the relevant RFCs and
adds support for IRIs and URI templates."
ast,2.0.0,MIT,A library for working with Abstract Syntax Trees.,A library for working with Abstract Syntax Trees.
astrolabe,1.3.0,MIT,An object-oriented AST extension for Parser,An object-oriented AST extension for Parser
berkshelf,3.2.1,Apache 2.0,"Manages a Cookbook's, or an Application's, Cookbook dependencies","Manages a Cookbook's, or an Application's, Cookbook dependencies"
berkshelf-api-client,1.2.0,Apache 2.0,API Client for communicating with a Berkshelf API server,API Client for communicating with a Berkshelf API server
buff-config,1.0.1,Apache 2.0,A simple configuration class,A simple configuration class
buff-extensions,1.0.0,Apache 2.0,Extensions to Core Ruby classes,Extensions to Core Ruby classes
buff-ignore,1.1.1,Apache 2.0,A Ruby library for parsing lists of files and applying pattern matching exclusion (such as .gitignore),Parse ignore files with Ruby
buff-ruby_engine,0.1.0,Apache 2.0,Buff up your code with a mixin for querying the platform running Ruby,A mixin for querying the platform running Ruby
buff-shell_out,0.2.0,Apache 2.0,Buff up your code with a mixin for issuing shell commands and collecting the output,A mixin for issuing shell commands and collecting the output
bundler,1.7.6,MIT,"",""
busser,0.6.0,Apache 2.0,Kitchen Busser - Runs tests for projects in test-kitchen,Kitchen Busser - Runs tests for projects in test-kitchen
busser-serverspec,0.5.3,Apache 2.0,A Busser runner plugin for Serverspec,A Busser runner plugin for Serverspec
celluloid,0.16.0,MIT,Actor-based concurrent object framework for Ruby,Celluloid enables people to build concurrent programs out of concurrent objects just as easily as they build sequential programs out of sequential objects
celluloid-io,0.16.1,MIT,Celluloid::IO allows you to monitor multiple IO objects within a Celluloid actor,Evented IO for Celluloid actors
chef,11.16.4,Apache 2.0,"A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.","A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure."
chef-zero,2.2.1,Apache 2.0,"Self-contained, easy-setup, fast-start in-memory Chef server for testing and solo setup purposes","Self-contained, easy-setup, fast-start in-memory Chef server for testing and solo setup purposes"
chefspec,4.1.1,MIT,Write RSpec examples and generate coverage reports for Chef recipes!,ChefSpec is a unit testing and resource coverage (code coverage) framework for testing Chef cookbooks ChefSpec makes it easy to write examples and get fast feedback on cookbook changes without the need for virtual machines or cloud servers.
cleanroom,1.0.0,Apache 2.0,(More) safely evaluate Ruby DSLs with cleanroom,"Ruby is an excellent programming language for creating and managing custom DSLs, but how can you securely evaluate a DSL while explicitly controlling the methods exposed to the user? Our good friends instance_eval and instance_exec are great, but they expose all methods - public, protected, and private - to the user. Even worse, they expose the ability to accidentally or intentionally alter the behavior of the system! The cleanroom pattern is a safer, more convenient, Ruby-like approach for limiting the information exposed by a DSL while giving users the ability to write awesome code!"
coderay,1.1.0,MIT,Fast syntax highlighting for selected languages.,"Fast and easy syntax highlighting for selected languages, written in Ruby. Comes with RedCloth integration and LOC counter."
dep-selector-libgecode,1.0.2,"MIT,Apache 2.0",Installs a vendored copy of Gecode suitable for use with dep-selector,Installs a vendored copy of Gecode suitable for use with dep-selector
dep_selector,1.0.3,Apache v2,"Given packages, versions, and a dependency graph, find a valid assignment of package versions","Given packages, versions, and a dependency graph, find a valid assignment of package versions"
diff-lcs,1.2.5,"MIT,Perl Artistic v2,GNU GPL v2",Diff::LCS computes the difference between two Enumerable sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm,"Diff::LCS computes the difference between two Enumerable sequences using the
McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
to create a simple HTML diff output format and a standard diff-like tool.
This is release 1.2.4, fixing a bug introduced after diff-lcs 1.1.3 that did
not properly prune common sequences at the beginning of a comparison set.
Thanks to Paul Kunysch for fixing this issue.
Coincident with the release of diff-lcs 1.2.3, we reported an issue with
Rubinius in 1.9 mode
({rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268]).
We are happy to report that this issue has been resolved."
erubis,2.7.0,MIT,a fast and extensible eRuby implementation which supports multi-language,"Erubis is an implementation of eRuby and has the following features:
* Very fast, almost three times faster than ERB and about 10% faster than eruby.
* Multi-language support (Ruby/PHP/C/Java/Scheme/Perl/Javascript)
* Auto escaping support
* Auto trimming spaces around '<% %>'
* Embedded pattern changeable (default '<% %>')
* Enable to handle Processing Instructions (PI) as embedded pattern (ex. '<?rb ... ?>')
* Context object available and easy to combine eRuby template with YAML datafile
* Print statement available
* Easy to extend and customize in subclass
* Ruby on Rails support"
faraday,0.9.0,MIT,HTTP/REST API client library.,""
fauxhai,2.2.0,MIT,Fauxhai provides an easy way to mock out your ohai data for testing with chefspec!,Easily mock out ohai data
ffi,1.9.6,BSD,Ruby FFI,Ruby FFI library
ffi-yajl,1.3.0,Apache 2.0,Ruby FFI wrapper around YAJL 2.x,Ruby FFI wrapper around YAJL 2.x
foodcritic,4.0.0,MIT,foodcritic-4.0.0,Lint tool for Opscode Chef cookbooks.
formatador,0.2.5,MIT,Ruby STDOUT text formatting,STDOUT text formatting
gherkin,2.12.2,MIT,gherkin-2.12.2,A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
guard,2.8.2,MIT,Guard keeps an eye on your file modifications,Guard is a command line tool to easily handle events on file system modifications.
guard-rspec,4.3.1,MIT,Guard gem for RSpec,Guard::RSpec automatically run your specs (much like autotest).
hashie,2.1.2,MIT,Your friendly neighborhood hash library.,Hashie is a collection of classes and mixins that make hashes more powerful.
highline,1.6.21,ruby,HighLine is a high-level command-line IO library.,"A high-level IO library that provides validation, type conversion, and more for
command-line interfaces. HighLine also includes a complete menu system that can
crank out anything from simple list selection to complete shells with just
minutes of work."
hitimes,1.2.2,ISC,"Hitimes is a fast, high resolution timer library for recording performance metrics. It uses the appropriate low method calls for each system to get the highest granularity time increments possible.","Hitimes is a fast, high resolution timer library for recording performance metrics. It uses the appropriate low method calls for each system to get the highest granularity time increments possible. It currently supports any of the following systems: * any system with the POSIX call `clock_gettime()` * Mac OS X * Windows * JRuby Using Hitimes can be faster than using a series of `Time.new` calls, and it will have a much higher granularity. It is definitely faster than using `Process.times`."
httparty,0.13.3,MIT,"Makes http fun! Also, makes consuming restful web services dead easy.","Makes http fun! Also, makes consuming restful web services dead easy."
ipaddress,0.8.0,MIT,IPv4/IPv6 addresses manipulation library,"IPAddress is a Ruby library designed to make manipulation
of IPv4 and IPv6 addresses both powerful and simple. It mantains
a layer of compatibility with Ruby's own IPAddr, while
addressing many of its issues."
json,1.8.1,ruby,This json is bundled with Ruby,""
kitchen-vagrant,0.15.0,Apache 2.0,Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.,Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.
libyajl2,1.2.0,Apache 2.0,Installs a vendored copy of libyajl2 for distributions which lack it,Installs a vendored copy of libyajl2 for distributions which lack it
license_finder,1.2,MIT,Audit the OSS licenses of your application's dependencies.,"LicenseFinder works with your package managers to find
dependencies, detect the licenses of the packages in them, compare
those licenses against a user-defined whitelist, and give you an
actionable exception report."
listen,2.8.0,MIT,Listen to file modifications,The Listen gem listens to file modifications and notifies you about the changes. Works everywhere!
lumberjack,1.0.9,MIT,"A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger.","A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger. Provides support for automatically rolling log files even with multiple processes writing the same log file."
method_source,0.8.2,MIT,retrieve the sourcecode for a method,retrieve the sourcecode for a method
mime-types,1.25.1,"MIT,Artistic 2.0,GPL-2",This library allows for the identification of a file's likely MIME content type,"This library allows for the identification of a file's likely MIME content
type. This is release 1.25.1, fixing an issue with priority comparison for
mime-types 1.x. The current release is 2.0, which only supports Ruby 1.9 or
later.
Release 1.25.1 contains all features of 1.25, including the experimental
caching and lazy loading functionality. The caching and lazy loading features
were initially implemented by Greg Brockman (gdb). As these features are
experimental, they are disabled by default and must be enabled through the use
of environment variables. The cache is invalidated on a per-version basis; the
cache for version 1.25 will not be reused for any later version.
To use lazy loading, set the environment variable +RUBY_MIME_TYPES_LAZY_LOAD+
to any value other than 'false'. When using lazy loading, the initial startup
of MIME::Types is around 1225× faster than normal startup (on my system,
normal startup is about 90 ms; lazy startup is about 4 ms). This isn't
generally useful, however, as the MIME::Types database has not been loaded.
Lazy startup and load is just *slightly* faster—around 1 ms. The real advantage
comes from using the cache.
To enable the cache, set the environment variable +RUBY_MIME_TYPES_CACHE+ to a
filename where MIME::Types will have read-write access. The first time a new
version of MIME::Types is run using this file, it will be created, taking a
little longer than normal. Subsequent loads using the same cache file will be
approximately 3½× faster (25 ms) than normal loads. This can be combined with
+RUBY_MIME_TYPES_LAZY_LOAD+, but this is *not* recommended in a multithreaded
or multiprocess environment where all threads or processes will be using the
same cache file.
As the caching interface is still experimental, the only values cached are the
default MIME::Types database, not any custom MIME::Types added by users.
MIME types are used in MIME-compliant communications, as in e-mail or HTTP
traffic, to indicate the type of content which is transmitted. MIME::Types
provides the ability for detailed information about MIME entities (provided as
a set of MIME::Type objects) to be determined and used programmatically. There
are many types defined by RFCs and vendors, so the list is long but not
complete; don't hesitate to ask to add additional information. This library
follows the IANA collection of MIME types (see below for reference).
MIME::Types for Ruby was originally based on MIME::Types for Perl by Mark
Overmeer, copyright 2001 - 2009.
MIME::Types is built to conform to the MIME types of RFCs 2045 and 2231. It
tracks the {IANA registry}[http://www.iana.org/assignments/media-types/]
({ftp}[ftp://ftp.iana.org/assignments/media-types]) with some unofficial types
added from the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp]
and added by the users of MIME::Types."
mini_portile,0.6.1,MIT,Simplistic port-like solution for developers,Simplistic port-like solution for developers. It provides a standard and simplified way to compile against dependency libraries without messing up your system.
minitar,0.5.4,ruby,Provides POSIX tarchive management from Ruby programs.,"Archive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1) archive files. The implementation is based heavily on Mauricio Ferna'ndez's implementation in rpa-base, but has been reorganised to promote reuse in other projects. Antoine Toulme forked the original project on rubyforge to place it on github, under http://www.github.com/atoulme/minitar"
mixlib-authentication,1.3.0,Apache 2.0,Mixes in simple per-request authentication,Mixes in simple per-request authentication
mixlib-cli,1.5.0,Apache 2.0,"A simple mixin for CLI interfaces, including option parsing","A simple mixin for CLI interfaces, including option parsing"
mixlib-config,2.1.0,Apache 2.0,A class based configuration library,A class based configuration library
mixlib-log,1.6.0,Apache 2.0,A gem that provides a simple mixin for log functionality,""
mixlib-shellout,1.6.0,Apache 2.0,Run external commands on Unix or Windows,Run external commands on Unix or Windows
multi_json,1.10.1,MIT,A common interface to multiple JSON libraries.,"A common interface to multiple JSON libraries, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, NSJSONSerialization, gson.rb, JrJackson, and OkJson."
multi_xml,0.5.5,MIT,A generic swappable back-end for XML parsing,"Provides swappable XML backends utilizing LibXML, Nokogiri, Ox, or REXML."
multipart-post,2.0.0,MIT,A multipart form post accessory for Net::HTTP.,"Use with Net::HTTP to do multipart form posts. IO values that have #content_type, #original_filename, and #local_path will be posted as a binary file."
net-http-persistent,2.9.4,MIT,Manages persistent connections using Net::HTTP plus a speed fix for Ruby 1.8,"Manages persistent connections using Net::HTTP plus a speed fix for Ruby 1.8.
It's thread-safe too!
Using persistent HTTP connections can dramatically increase the speed of HTTP.
Creating a new HTTP connection for every request involves an extra TCP
round-trip and causes TCP congestion avoidance negotiation to start over.
Net::HTTP supports persistent connections with some API methods but does not
handle reconnection gracefully. Net::HTTP::Persistent supports reconnection
and retry according to RFC 2616."
net-scp,1.2.1,MIT,A pure Ruby implementation of the SCP client protocol,A pure Ruby implementation of the SCP client protocol
net-ssh,2.9.1,MIT,Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.,"Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It allows you to write programs that invoke and interact with processes on remote servers, via SSH2."
net-ssh-gateway,1.2.0,MIT,A simple library to assist in establishing tunneled Net::SSH connections,A simple library to assist in establishing tunneled Net::SSH connections
net-ssh-multi,1.2.0,MIT,Control multiple Net::SSH connections via a single interface.,Control multiple Net::SSH connections via a single interface.
nio4r,1.0.1,MIT,NIO provides a high performance selector API for monitoring IO objects,New IO for Ruby
nokogiri,1.6.4.1,MIT,"Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser","Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's
many features is the ability to search documents via XPath or CSS3 selectors.
XML is like violence - if it doesnt solve your problems, you are not using
enough of it."
octokit,3.5.2,MIT,Ruby toolkit for working with the GitHub API,Simple wrapper for the GitHub API
ohai,7.4.0,Apache 2.0,Ohai profiles your system and emits JSON,Ohai profiles your system and emits JSON
parser,2.2.0.pre.8,MIT,A Ruby parser written in pure Ruby.,A Ruby parser written in pure Ruby.
plist,3.1.0,MIT,All-purpose Property List manipulation library.,"Plist is a library to manipulate Property List files, also known as plists. It can parse plist files into native Ruby data structures as well as generating new plist files from your Ruby objects."
polyglot,0.3.5,MIT,Augment 'require' to load non-Ruby file types,"The Polyglot library allows a Ruby module to register a loader
for the file type associated with a filename extension, and it
augments 'require' to find and load matching files."
powerpack,0.0.9,MIT,A few useful extensions to core Ruby classes.,A few useful extensions to core Ruby classes.
pry,0.10.1,MIT,An IRB alternative and runtime developer console,An IRB alternative and runtime developer console
rack,1.5.2,MIT,a modular Ruby webserver interface,"Rack provides a minimal, modular and adaptable interface for developing
web applications in Ruby. By wrapping HTTP requests and responses in
the simplest way possible, it unifies and distills the API for web
servers, web frameworks, and software in between (the so-called
middleware) into a single method call.
Also see http://rack.github.com/."
rainbow,2.0.0,MIT,Colorize printed text on ANSI terminals,Colorize printed text on ANSI terminals
rake,10.3.2,MIT,Rake is a Make-like program implemented in Ruby,"Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
specified in standard Ruby syntax.
Rake has the following features:
* Rakefiles (rake's version of Makefiles) are completely defined in
standard Ruby syntax. No XML files to edit. No quirky Makefile
syntax to worry about (is that a tab or a space?)
* Users can specify tasks with prerequisites.
* Rake supports rule patterns to synthesize implicit tasks.
* Flexible FileLists that act like arrays but know about manipulating
file names and paths.
* A library of prepackaged tasks to make building rakefiles easier. For example,
tasks for building tarballs and publishing to FTP or SSH sites. (Formerly
tasks for building RDoc and Gems were included in rake but they're now
available in RDoc and RubyGems respectively.)
* Supports parallel execution of tasks."
rb-fsevent,0.9.4,MIT,Very simple & usable FSEvents API,FSEvents API with Signals catching (without RubyCocoa)
rb-inotify,0.9.5,MIT,"A Ruby wrapper for Linux's inotify, using FFI","A Ruby wrapper for Linux's inotify, using FFI"
rest-client,1.6.7,MIT,"Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.","A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete."
retryable,1.3.6,MIT,"Kernel#retryable, allow for retrying of code blocks.","Kernel#retryable, allow for retrying of code blocks."
ridley,4.1.0,Apache 2.0,A reliable Chef API client with a clean syntax,A reliable Chef API client with a clean syntax
rspec,3.1.0,MIT,rspec-3.1.0,BDD for Ruby
rspec-core,3.1.7,MIT,rspec-core-3.1.7,BDD for Ruby. RSpec runner and example groups.
rspec-expectations,3.1.2,MIT,rspec-expectations-3.1.2,"rspec-expectations provides a simple, readable API to express expected outcomes of a code example."
rspec-its,1.1.0,MIT,"Provides ""its"" method formally part of rspec-core",RSpec extension gem for attribute matching
rspec-mocks,3.1.3,MIT,rspec-mocks-3.1.3,"RSpec's 'test double' framework, with support for stubbing and mocking"
rspec-support,3.1.2,MIT,rspec-support-3.1.2,Support utilities for RSpec gems
rubocop,0.27.1,MIT,Automatic Ruby code style checking tool.,"Automatic Ruby code style checking tool.
Aims to enforce the community-driven Ruby Style Guide."
ruby-progressbar,1.7.0,MIT,Ruby/ProgressBar is a flexible text progress bar library for Ruby.,"Ruby/ProgressBar is an extremely flexible text progress bar library for Ruby.
The output can be customized with a flexible formatting system including:
percentage, bars of various formats, elapsed time and estimated time remaining."
rufus-lru,1.0.5,MIT,"A Hash with a max size, controlled by a LRU mechanism","LruHash class, a Hash with a max size, controlled by a LRU mechanism"
safe_yaml,1.0.4,MIT,SameYAML provides an alternative implementation of YAML.load suitable for accepting user input in Ruby applications.,Parse YAML safely
sawyer,0.5.5,MIT,Secret User Agent of HTTP,""
semverse,1.2.1,Apache 2.0,An elegant library for representing and comparing SemVer versions and constraints,An elegant library for representing and comparing SemVer versions and constraints
sequel,4.16.0,MIT,The Database Toolkit for Ruby,The Database Toolkit for Ruby
serverspec,2.3.1,MIT,"RSpec tests for your servers configured by Puppet, Chef or anything else","RSpec tests for your servers configured by Puppet, Chef or anything else"
slop,3.6.0,MIT,Simple Lightweight Option Parsing,A simple DSL for gathering options and parsing the command line
solve,1.2.1,Apache 2.0,A Ruby version constraint solver implementing Semantic Versioning 2.0.0-rc.1,A Ruby version constraint solver
specinfra,2.5.0,MIT,Common layer for serverspec and itamae,Common layer for serverspec and itamae
sqlite3,1.3.10,New BSD,This module allows Ruby programs to interface with the SQLite3 database engine (http://www.sqlite.org),"This module allows Ruby programs to interface with the SQLite3
database engine (http://www.sqlite.org). You must have the
SQLite engine installed in order to build this module.
Note that this module is only compatible with SQLite 3.6.16 or newer."
systemu,2.6.4,ruby,systemu,"universal capture of stdout and stderr and handling of child process pid for windows, *nix, etc."
test-kitchen,1.2.1,Apache 2.0,Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms.,Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms.
thor,0.19.1,MIT,Thor is a toolkit for building powerful command-line interfaces.,Thor is a toolkit for building powerful command-line interfaces.
timers,4.0.1,MIT,"Schedule procs to run after a certain time, or at periodic intervals, using any API that accepts a timeout",Pure Ruby one-shot and periodic timers
treetop,1.5.3,MIT,A Ruby-based text parsing and interpretation DSL,""
varia_model,0.4.0,Apache 2.0,A mixin to provide objects with magic attribute reading and writing,A mixin to provide objects with magic attribute reading and writing
wmi-lite,1.0.0,Apache 2.0,A lightweight utility library for accessing basic WMI (Windows Management Instrumentation) functionality on Windows,"A lightweight utility over win32ole for accessing basic WMI (Windows Management Instrumentation) functionality in the Microsoft Windows operating system. It has no runtime dependencies other than Ruby, so it can be used without concerns around dependency issues."
xml-simple,1.1.4,ruby,A simple API for XML processing.,""
yajl-ruby,1.2.1,MIT,Ruby C bindings to the excellent Yajl JSON stream-based parser library.,""
1 addressable 2.3.6 Apache 2.0 URI Implementation Addressable is a replacement for the URI implementation that is part of Ruby's standard library. It more closely conforms to the relevant RFCs and adds support for IRIs and URI templates.
2 ast 2.0.0 MIT A library for working with Abstract Syntax Trees. A library for working with Abstract Syntax Trees.
3 astrolabe 1.3.0 MIT An object-oriented AST extension for Parser An object-oriented AST extension for Parser
4 berkshelf 3.2.1 Apache 2.0 Manages a Cookbook's, or an Application's, Cookbook dependencies Manages a Cookbook's, or an Application's, Cookbook dependencies
5 berkshelf-api-client 1.2.0 Apache 2.0 API Client for communicating with a Berkshelf API server API Client for communicating with a Berkshelf API server
6 buff-config 1.0.1 Apache 2.0 A simple configuration class A simple configuration class
7 buff-extensions 1.0.0 Apache 2.0 Extensions to Core Ruby classes Extensions to Core Ruby classes
8 buff-ignore 1.1.1 Apache 2.0 A Ruby library for parsing lists of files and applying pattern matching exclusion (such as .gitignore) Parse ignore files with Ruby
9 buff-ruby_engine 0.1.0 Apache 2.0 Buff up your code with a mixin for querying the platform running Ruby A mixin for querying the platform running Ruby
10 buff-shell_out 0.2.0 Apache 2.0 Buff up your code with a mixin for issuing shell commands and collecting the output A mixin for issuing shell commands and collecting the output
11 bundler 1.7.6 MIT
12 busser 0.6.0 Apache 2.0 Kitchen Busser - Runs tests for projects in test-kitchen Kitchen Busser - Runs tests for projects in test-kitchen
13 busser-serverspec 0.5.3 Apache 2.0 A Busser runner plugin for Serverspec A Busser runner plugin for Serverspec
14 celluloid 0.16.0 MIT Actor-based concurrent object framework for Ruby Celluloid enables people to build concurrent programs out of concurrent objects just as easily as they build sequential programs out of sequential objects
15 celluloid-io 0.16.1 MIT Celluloid::IO allows you to monitor multiple IO objects within a Celluloid actor Evented IO for Celluloid actors
16 chef 11.16.4 Apache 2.0 A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure. A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
17 chef-zero 2.2.1 Apache 2.0 Self-contained, easy-setup, fast-start in-memory Chef server for testing and solo setup purposes Self-contained, easy-setup, fast-start in-memory Chef server for testing and solo setup purposes
18 chefspec 4.1.1 MIT Write RSpec examples and generate coverage reports for Chef recipes! ChefSpec is a unit testing and resource coverage (code coverage) framework for testing Chef cookbooks ChefSpec makes it easy to write examples and get fast feedback on cookbook changes without the need for virtual machines or cloud servers.
19 cleanroom 1.0.0 Apache 2.0 (More) safely evaluate Ruby DSLs with cleanroom Ruby is an excellent programming language for creating and managing custom DSLs, but how can you securely evaluate a DSL while explicitly controlling the methods exposed to the user? Our good friends instance_eval and instance_exec are great, but they expose all methods - public, protected, and private - to the user. Even worse, they expose the ability to accidentally or intentionally alter the behavior of the system! The cleanroom pattern is a safer, more convenient, Ruby-like approach for limiting the information exposed by a DSL while giving users the ability to write awesome code!
20 coderay 1.1.0 MIT Fast syntax highlighting for selected languages. Fast and easy syntax highlighting for selected languages, written in Ruby. Comes with RedCloth integration and LOC counter.
21 dep-selector-libgecode 1.0.2 MIT,Apache 2.0 Installs a vendored copy of Gecode suitable for use with dep-selector Installs a vendored copy of Gecode suitable for use with dep-selector
22 dep_selector 1.0.3 Apache v2 Given packages, versions, and a dependency graph, find a valid assignment of package versions Given packages, versions, and a dependency graph, find a valid assignment of package versions
23 diff-lcs 1.2.5 MIT,Perl Artistic v2,GNU GPL v2 Diff::LCS computes the difference between two Enumerable sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm Diff::LCS computes the difference between two Enumerable sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities to create a simple HTML diff output format and a standard diff-like tool. This is release 1.2.4, fixing a bug introduced after diff-lcs 1.1.3 that did not properly prune common sequences at the beginning of a comparison set. Thanks to Paul Kunysch for fixing this issue. Coincident with the release of diff-lcs 1.2.3, we reported an issue with Rubinius in 1.9 mode ({rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268]). We are happy to report that this issue has been resolved.
24 erubis 2.7.0 MIT a fast and extensible eRuby implementation which supports multi-language Erubis is an implementation of eRuby and has the following features: * Very fast, almost three times faster than ERB and about 10% faster than eruby. * Multi-language support (Ruby/PHP/C/Java/Scheme/Perl/Javascript) * Auto escaping support * Auto trimming spaces around '<% %>' * Embedded pattern changeable (default '<% %>') * Enable to handle Processing Instructions (PI) as embedded pattern (ex. '<?rb ... ?>') * Context object available and easy to combine eRuby template with YAML datafile * Print statement available * Easy to extend and customize in subclass * Ruby on Rails support
25 faraday 0.9.0 MIT HTTP/REST API client library.
26 fauxhai 2.2.0 MIT Fauxhai provides an easy way to mock out your ohai data for testing with chefspec! Easily mock out ohai data
27 ffi 1.9.6 BSD Ruby FFI Ruby FFI library
28 ffi-yajl 1.3.0 Apache 2.0 Ruby FFI wrapper around YAJL 2.x Ruby FFI wrapper around YAJL 2.x
29 foodcritic 4.0.0 MIT foodcritic-4.0.0 Lint tool for Opscode Chef cookbooks.
30 formatador 0.2.5 MIT Ruby STDOUT text formatting STDOUT text formatting
31 gherkin 2.12.2 MIT gherkin-2.12.2 A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
32 guard 2.8.2 MIT Guard keeps an eye on your file modifications Guard is a command line tool to easily handle events on file system modifications.
33 guard-rspec 4.3.1 MIT Guard gem for RSpec Guard::RSpec automatically run your specs (much like autotest).
34 hashie 2.1.2 MIT Your friendly neighborhood hash library. Hashie is a collection of classes and mixins that make hashes more powerful.
35 highline 1.6.21 ruby HighLine is a high-level command-line IO library. A high-level IO library that provides validation, type conversion, and more for command-line interfaces. HighLine also includes a complete menu system that can crank out anything from simple list selection to complete shells with just minutes of work.
36 hitimes 1.2.2 ISC Hitimes is a fast, high resolution timer library for recording performance metrics. It uses the appropriate low method calls for each system to get the highest granularity time increments possible. Hitimes is a fast, high resolution timer library for recording performance metrics. It uses the appropriate low method calls for each system to get the highest granularity time increments possible. It currently supports any of the following systems: * any system with the POSIX call `clock_gettime()` * Mac OS X * Windows * JRuby Using Hitimes can be faster than using a series of `Time.new` calls, and it will have a much higher granularity. It is definitely faster than using `Process.times`.
37 httparty 0.13.3 MIT Makes http fun! Also, makes consuming restful web services dead easy. Makes http fun! Also, makes consuming restful web services dead easy.
38 ipaddress 0.8.0 MIT IPv4/IPv6 addresses manipulation library IPAddress is a Ruby library designed to make manipulation of IPv4 and IPv6 addresses both powerful and simple. It mantains a layer of compatibility with Ruby's own IPAddr, while addressing many of its issues.
39 json 1.8.1 ruby This json is bundled with Ruby
40 kitchen-vagrant 0.15.0 Apache 2.0 Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen. Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.
41 libyajl2 1.2.0 Apache 2.0 Installs a vendored copy of libyajl2 for distributions which lack it Installs a vendored copy of libyajl2 for distributions which lack it
42 license_finder 1.2 MIT Audit the OSS licenses of your application's dependencies. LicenseFinder works with your package managers to find dependencies, detect the licenses of the packages in them, compare those licenses against a user-defined whitelist, and give you an actionable exception report.
43 listen 2.8.0 MIT Listen to file modifications The Listen gem listens to file modifications and notifies you about the changes. Works everywhere!
44 lumberjack 1.0.9 MIT A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger. A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger. Provides support for automatically rolling log files even with multiple processes writing the same log file.
45 method_source 0.8.2 MIT retrieve the sourcecode for a method retrieve the sourcecode for a method
46 mime-types 1.25.1 MIT,Artistic 2.0,GPL-2 This library allows for the identification of a file's likely MIME content type This library allows for the identification of a file's likely MIME content type. This is release 1.25.1, fixing an issue with priority comparison for mime-types 1.x. The current release is 2.0, which only supports Ruby 1.9 or later. Release 1.25.1 contains all features of 1.25, including the experimental caching and lazy loading functionality. The caching and lazy loading features were initially implemented by Greg Brockman (gdb). As these features are experimental, they are disabled by default and must be enabled through the use of environment variables. The cache is invalidated on a per-version basis; the cache for version 1.25 will not be reused for any later version. To use lazy loading, set the environment variable +RUBY_MIME_TYPES_LAZY_LOAD+ to any value other than 'false'. When using lazy loading, the initial startup of MIME::Types is around 12–25× faster than normal startup (on my system, normal startup is about 90 ms; lazy startup is about 4 ms). This isn't generally useful, however, as the MIME::Types database has not been loaded. Lazy startup and load is just *slightly* faster—around 1 ms. The real advantage comes from using the cache. To enable the cache, set the environment variable +RUBY_MIME_TYPES_CACHE+ to a filename where MIME::Types will have read-write access. The first time a new version of MIME::Types is run using this file, it will be created, taking a little longer than normal. Subsequent loads using the same cache file will be approximately 3½× faster (25 ms) than normal loads. This can be combined with +RUBY_MIME_TYPES_LAZY_LOAD+, but this is *not* recommended in a multithreaded or multiprocess environment where all threads or processes will be using the same cache file. As the caching interface is still experimental, the only values cached are the default MIME::Types database, not any custom MIME::Types added by users. MIME types are used in MIME-compliant communications, as in e-mail or HTTP traffic, to indicate the type of content which is transmitted. MIME::Types provides the ability for detailed information about MIME entities (provided as a set of MIME::Type objects) to be determined and used programmatically. There are many types defined by RFCs and vendors, so the list is long but not complete; don't hesitate to ask to add additional information. This library follows the IANA collection of MIME types (see below for reference). MIME::Types for Ruby was originally based on MIME::Types for Perl by Mark Overmeer, copyright 2001 - 2009. MIME::Types is built to conform to the MIME types of RFCs 2045 and 2231. It tracks the {IANA registry}[http://www.iana.org/assignments/media-types/] ({ftp}[ftp://ftp.iana.org/assignments/media-types]) with some unofficial types added from the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp] and added by the users of MIME::Types.
47 mini_portile 0.6.1 MIT Simplistic port-like solution for developers Simplistic port-like solution for developers. It provides a standard and simplified way to compile against dependency libraries without messing up your system.
48 minitar 0.5.4 ruby Provides POSIX tarchive management from Ruby programs. Archive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1) archive files. The implementation is based heavily on Mauricio Ferna'ndez's implementation in rpa-base, but has been reorganised to promote reuse in other projects. Antoine Toulme forked the original project on rubyforge to place it on github, under http://www.github.com/atoulme/minitar
49 mixlib-authentication 1.3.0 Apache 2.0 Mixes in simple per-request authentication Mixes in simple per-request authentication
50 mixlib-cli 1.5.0 Apache 2.0 A simple mixin for CLI interfaces, including option parsing A simple mixin for CLI interfaces, including option parsing
51 mixlib-config 2.1.0 Apache 2.0 A class based configuration library A class based configuration library
52 mixlib-log 1.6.0 Apache 2.0 A gem that provides a simple mixin for log functionality
53 mixlib-shellout 1.6.0 Apache 2.0 Run external commands on Unix or Windows Run external commands on Unix or Windows
54 multi_json 1.10.1 MIT A common interface to multiple JSON libraries. A common interface to multiple JSON libraries, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, NSJSONSerialization, gson.rb, JrJackson, and OkJson.
55 multi_xml 0.5.5 MIT A generic swappable back-end for XML parsing Provides swappable XML backends utilizing LibXML, Nokogiri, Ox, or REXML.
56 multipart-post 2.0.0 MIT A multipart form post accessory for Net::HTTP. Use with Net::HTTP to do multipart form posts. IO values that have #content_type, #original_filename, and #local_path will be posted as a binary file.
57 net-http-persistent 2.9.4 MIT Manages persistent connections using Net::HTTP plus a speed fix for Ruby 1.8 Manages persistent connections using Net::HTTP plus a speed fix for Ruby 1.8. It's thread-safe too! Using persistent HTTP connections can dramatically increase the speed of HTTP. Creating a new HTTP connection for every request involves an extra TCP round-trip and causes TCP congestion avoidance negotiation to start over. Net::HTTP supports persistent connections with some API methods but does not handle reconnection gracefully. Net::HTTP::Persistent supports reconnection and retry according to RFC 2616.
58 net-scp 1.2.1 MIT A pure Ruby implementation of the SCP client protocol A pure Ruby implementation of the SCP client protocol
59 net-ssh 2.9.1 MIT Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It allows you to write programs that invoke and interact with processes on remote servers, via SSH2.
60 net-ssh-gateway 1.2.0 MIT A simple library to assist in establishing tunneled Net::SSH connections A simple library to assist in establishing tunneled Net::SSH connections
61 net-ssh-multi 1.2.0 MIT Control multiple Net::SSH connections via a single interface. Control multiple Net::SSH connections via a single interface.
62 nio4r 1.0.1 MIT NIO provides a high performance selector API for monitoring IO objects New IO for Ruby
63 nokogiri 1.6.4.1 MIT Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's many features is the ability to search documents via XPath or CSS3 selectors. XML is like violence - if it doesn’t solve your problems, you are not using enough of it.
64 octokit 3.5.2 MIT Ruby toolkit for working with the GitHub API Simple wrapper for the GitHub API
65 ohai 7.4.0 Apache 2.0 Ohai profiles your system and emits JSON Ohai profiles your system and emits JSON
66 parser 2.2.0.pre.8 MIT A Ruby parser written in pure Ruby. A Ruby parser written in pure Ruby.
67 plist 3.1.0 MIT All-purpose Property List manipulation library. Plist is a library to manipulate Property List files, also known as plists. It can parse plist files into native Ruby data structures as well as generating new plist files from your Ruby objects.
68 polyglot 0.3.5 MIT Augment 'require' to load non-Ruby file types The Polyglot library allows a Ruby module to register a loader for the file type associated with a filename extension, and it augments 'require' to find and load matching files.
69 powerpack 0.0.9 MIT A few useful extensions to core Ruby classes. A few useful extensions to core Ruby classes.
70 pry 0.10.1 MIT An IRB alternative and runtime developer console An IRB alternative and runtime developer console
71 rack 1.5.2 MIT a modular Ruby webserver interface Rack provides a minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between (the so-called middleware) into a single method call. Also see http://rack.github.com/.
72 rainbow 2.0.0 MIT Colorize printed text on ANSI terminals Colorize printed text on ANSI terminals
73 rake 10.3.2 MIT Rake is a Make-like program implemented in Ruby Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax. Rake has the following features: * Rakefiles (rake's version of Makefiles) are completely defined in standard Ruby syntax. No XML files to edit. No quirky Makefile syntax to worry about (is that a tab or a space?) * Users can specify tasks with prerequisites. * Rake supports rule patterns to synthesize implicit tasks. * Flexible FileLists that act like arrays but know about manipulating file names and paths. * A library of prepackaged tasks to make building rakefiles easier. For example, tasks for building tarballs and publishing to FTP or SSH sites. (Formerly tasks for building RDoc and Gems were included in rake but they're now available in RDoc and RubyGems respectively.) * Supports parallel execution of tasks.
74 rb-fsevent 0.9.4 MIT Very simple & usable FSEvents API FSEvents API with Signals catching (without RubyCocoa)
75 rb-inotify 0.9.5 MIT A Ruby wrapper for Linux's inotify, using FFI A Ruby wrapper for Linux's inotify, using FFI
76 rest-client 1.6.7 MIT Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions. A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete.
77 retryable 1.3.6 MIT Kernel#retryable, allow for retrying of code blocks. Kernel#retryable, allow for retrying of code blocks.
78 ridley 4.1.0 Apache 2.0 A reliable Chef API client with a clean syntax A reliable Chef API client with a clean syntax
79 rspec 3.1.0 MIT rspec-3.1.0 BDD for Ruby
80 rspec-core 3.1.7 MIT rspec-core-3.1.7 BDD for Ruby. RSpec runner and example groups.
81 rspec-expectations 3.1.2 MIT rspec-expectations-3.1.2 rspec-expectations provides a simple, readable API to express expected outcomes of a code example.
82 rspec-its 1.1.0 MIT Provides "its" method formally part of rspec-core RSpec extension gem for attribute matching
83 rspec-mocks 3.1.3 MIT rspec-mocks-3.1.3 RSpec's 'test double' framework, with support for stubbing and mocking
84 rspec-support 3.1.2 MIT rspec-support-3.1.2 Support utilities for RSpec gems
85 rubocop 0.27.1 MIT Automatic Ruby code style checking tool. Automatic Ruby code style checking tool. Aims to enforce the community-driven Ruby Style Guide.
86 ruby-progressbar 1.7.0 MIT Ruby/ProgressBar is a flexible text progress bar library for Ruby. Ruby/ProgressBar is an extremely flexible text progress bar library for Ruby. The output can be customized with a flexible formatting system including: percentage, bars of various formats, elapsed time and estimated time remaining.
87 rufus-lru 1.0.5 MIT A Hash with a max size, controlled by a LRU mechanism LruHash class, a Hash with a max size, controlled by a LRU mechanism
88 safe_yaml 1.0.4 MIT SameYAML provides an alternative implementation of YAML.load suitable for accepting user input in Ruby applications. Parse YAML safely
89 sawyer 0.5.5 MIT Secret User Agent of HTTP
90 semverse 1.2.1 Apache 2.0 An elegant library for representing and comparing SemVer versions and constraints An elegant library for representing and comparing SemVer versions and constraints
91 sequel 4.16.0 MIT The Database Toolkit for Ruby The Database Toolkit for Ruby
92 serverspec 2.3.1 MIT RSpec tests for your servers configured by Puppet, Chef or anything else RSpec tests for your servers configured by Puppet, Chef or anything else
93 slop 3.6.0 MIT Simple Lightweight Option Parsing A simple DSL for gathering options and parsing the command line
94 solve 1.2.1 Apache 2.0 A Ruby version constraint solver implementing Semantic Versioning 2.0.0-rc.1 A Ruby version constraint solver
95 specinfra 2.5.0 MIT Common layer for serverspec and itamae Common layer for serverspec and itamae
96 sqlite3 1.3.10 New BSD This module allows Ruby programs to interface with the SQLite3 database engine (http://www.sqlite.org) This module allows Ruby programs to interface with the SQLite3 database engine (http://www.sqlite.org). You must have the SQLite engine installed in order to build this module. Note that this module is only compatible with SQLite 3.6.16 or newer.
97 systemu 2.6.4 ruby systemu universal capture of stdout and stderr and handling of child process pid for windows, *nix, etc.
98 test-kitchen 1.2.1 Apache 2.0 Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms. Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms.
99 thor 0.19.1 MIT Thor is a toolkit for building powerful command-line interfaces. Thor is a toolkit for building powerful command-line interfaces.
100 timers 4.0.1 MIT Schedule procs to run after a certain time, or at periodic intervals, using any API that accepts a timeout Pure Ruby one-shot and periodic timers
101 treetop 1.5.3 MIT A Ruby-based text parsing and interpretation DSL
102 varia_model 0.4.0 Apache 2.0 A mixin to provide objects with magic attribute reading and writing A mixin to provide objects with magic attribute reading and writing
103 wmi-lite 1.0.0 Apache 2.0 A lightweight utility library for accessing basic WMI (Windows Management Instrumentation) functionality on Windows A lightweight utility over win32ole for accessing basic WMI (Windows Management Instrumentation) functionality in the Microsoft Windows operating system. It has no runtime dependencies other than Ruby, so it can be used without concerns around dependency issues.
104 xml-simple 1.1.4 ruby A simple API for XML processing.
105 yajl-ruby 1.2.1 MIT Ruby C bindings to the excellent Yajl JSON stream-based parser library.

View File

@@ -0,0 +1,7 @@
require_relative "test_helper"
describe_recipe "redis::client" do
it "installed the `redis-tools` package" do
package("redis-tools").must_be_installed
end
end

View File

@@ -0,0 +1,19 @@
require_relative "test_helper"
describe_recipe "redis::default" do
let(:apt_path) do
"/etc/apt/sources.list.d"
end
it "set up an apt repository" do
repo = {
"debian" => { name: "dotdeb", content: "dotdeb" },
"ubuntu" => { name: "chris-lea-redis-server", content: "chris-lea" }
}[node["platform"]]
apt_file = "#{apt_path}/#{repo[:name]}.list"
file(apt_file).must_exist
file(apt_file).must_include repo[:content]
end
end

View File

@@ -0,0 +1,48 @@
require_relative "test_helper"
describe_recipe "redis::server" do
it "installed the `redis-server` package" do
package("redis-server").must_be_installed
end
it "enabled the `redis-server` service" do
service("redis-server").must_be_enabled
end
it "started the `redis-server` service" do
service("redis-server").must_be_running
end
describe "data directory" do
let(:dir) do
directory node["redis"]["dir"]
end
it { dir.must_exist }
it { dir.must_have :owner, "redis" }
it { dir.must_have :group, "redis" }
it { dir.must_have :mode, "750" }
end
describe "redis.conf" do
let(:conf) do
file "/etc/redis/redis.conf"
end
it { conf.must_exist }
it { conf.must_have :owner, "root" }
it { conf.must_have :group, "root" }
it { conf.must_have :mode, "644" }
end
describe "`default` file" do
let(:default) do
file "/etc/default/redis-server"
end
it { default.must_exist }
it { default.must_have :owner, "root" }
it { default.must_have :group, "root" }
it { default.must_have :mode, "644" }
end
end

View File

@@ -0,0 +1,5 @@
require "minitest/spec"
include MiniTest::Chef::Assertions
include MiniTest::Chef::Context
include MiniTest::Chef::Resources

View File

@@ -0,0 +1,15 @@
name "redis"
maintainer "Phil Cohen"
maintainer_email "github@phlippers.net"
license "MIT"
description "Installs and configures Redis"
version "0.5.6"
recipe "redis::default", "Sets up ppa apt repository"
recipe "redis::server", "Installs redis server"
recipe "redis::client", "Installs redis client"
supports "debian"
supports "ubuntu"
depends "apt"

View File

@@ -0,0 +1,10 @@
#
# Cookbook Name:: redis
# Recipe:: client
#
include_recipe "redis::default"
package "redis-tools" do
action node["redis"]["auto_upgrade"] ? :upgrade : :install
end

View File

@@ -0,0 +1,11 @@
#
# Cookbook Name:: redis
# Recipe:: default
#
apt_repository node["redis"]["apt_repository"] do
uri node["redis"]["apt_uri"]
distribution node["redis"]["apt_distribution"]
components node["redis"]["apt_components"]
keyserver node["redis"]["apt_keyserver"]
key node["redis"]["apt_key"]
end

View File

@@ -0,0 +1,38 @@
#
# Cookbook Name:: redis
# Recipe:: server
#
include_recipe "redis::default"
package "redis-server" do
action node["redis"]["auto_upgrade"] ? :upgrade : :install
end
directory node["redis"]["dir"] do
owner "redis"
group "redis"
mode "0750"
recursive true
end
service "redis-server" do
supports restart: true
action [:enable, :start]
end
template "/etc/redis/redis.conf" do
source "redis.conf.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[redis-server]"
end
template "/etc/default/redis-server" do
source "default_redis-server.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[redis-server]"
end

View File

@@ -0,0 +1,27 @@
require "spec_helper"
describe "redis::client" do
let(:chef_run) do
ChefSpec::SoloRunner.new.converge(described_recipe)
end
it { expect(chef_run).to include_recipe("redis::default") }
describe "package installation" do
describe "default action" do
it { expect(chef_run).to install_package("redis-tools") }
it { expect(chef_run).to_not upgrade_package("redis-tools") }
end
describe "when `auto_upgrade` is `true`" do
let(:chef_run) do
ChefSpec::SoloRunner.new do |node|
node.set["redis"]["auto_upgrade"] = true
end.converge(described_recipe)
end
it { expect(chef_run).to_not install_package("redis-tools") }
it { expect(chef_run).to upgrade_package("redis-tools") }
end
end
end

View File

@@ -0,0 +1,19 @@
require "spec_helper"
describe "redis::default" do
let(:chef_run) do
ChefSpec::SoloRunner.new.converge(described_recipe)
end
it { expect(chef_run).to add_apt_repository("chris-lea-redis-server") }
# debian family setup
context "using debian platform" do
let(:chef_run) do
env_options = { platform: "debian", version: "6.0.5" }
ChefSpec::SoloRunner.new(env_options).converge(described_recipe)
end
it { expect(chef_run).to add_apt_repository("dotdeb") }
end
end

View File

@@ -0,0 +1,69 @@
require "spec_helper"
describe "redis::server" do
let(:chef_run) do
ChefSpec::SoloRunner.new.converge(described_recipe)
end
it { expect(chef_run).to include_recipe("redis::default") }
describe "package installation" do
describe "default action" do
it { expect(chef_run).to install_package("redis-server") }
it { expect(chef_run).to_not upgrade_package("redis-server") }
end
describe "when `auto_upgrade` is `true`" do
let(:chef_run) do
ChefSpec::SoloRunner.new do |node|
node.set["redis"]["auto_upgrade"] = true
end.converge(described_recipe)
end
it { expect(chef_run).to_not install_package("redis-server") }
it { expect(chef_run).to upgrade_package("redis-server") }
end
end
it "creates the data directory" do
expect(chef_run).to create_directory("/var/lib/redis").with(
owner: "redis",
group: "redis",
mode: "0750",
recursive: true
)
end
it { expect(chef_run).to enable_service("redis-server") }
it { expect(chef_run).to start_service("redis-server") }
it "creates `/etc/redis/redis.conf`" do
path = "/etc/redis/redis.conf"
expect(chef_run).to create_template(path).with(
source: "redis.conf.erb",
owner: "root",
group: "root",
mode: "0644"
)
expect(chef_run.template(path)).to(
notify("service[redis-server]").to(:restart)
)
end
it "creates `/etc/default/redis-server`" do
path = "/etc/default/redis-server"
expect(chef_run).to create_template(path).with(
source: "default_redis-server.erb",
owner: "root",
group: "root",
mode: "0644"
)
expect(chef_run.template(path)).to(
notify("service[redis-server]").to(:restart)
)
end
end

View File

@@ -0,0 +1,20 @@
begin
require "chefspec"
require "chefspec/berkshelf"
rescue LoadError
puts "Unable to run `chefspec`"
exit
end
RSpec.configure do |config|
config.platform = "ubuntu"
config.version = "12.04"
config.log_level = :error
config.raise_errors_for_deprecations!
end
def add_apt_repository(resource_name)
ChefSpec::Matchers::ResourceMatcher.new(:apt_repository, :add, resource_name)
end
at_exit { ChefSpec::Coverage.report! }

View File

@@ -0,0 +1,12 @@
# redis-server configure options
# ULIMIT: Call ulimit -n with this argument prior to invoking Redis itself.
# This may be required for high-concurrency environments. Redis itself cannot
# alter its limits as it is not being run as root. (default: do not call
# ulimit)
#
<% if node["redis"]["ulimit"] && !node["redis"]["ulimit"].empty? %>
ULIMIT=<%= node["redis"]["ulimit"] %>
<% else %>
# ULIMIT=65536
<% end %>

View File

@@ -0,0 +1,556 @@
# Redis configuration file example
# Note on units: when memory size is needed, it is possible to specifiy
# it in the usual form of 1k 5GB 4M and so forth:
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize <%= node["redis"]["daemonize"] %>
# When running daemonized, Redis writes a pid file in /var/run/redis.pid by
# default. You can specify a custom pid file location here.
pidfile <%= node["redis"]["pidfile"] %>
# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port <%= node["redis"]["port"] %>
# If you want you can bind a single interface, if the bind option is not
# specified all the interfaces will listen for incoming connections.
#
<% unless node["redis"]["bind"].empty? %>
bind <%= node["redis"]["bind"] %>
<% end %>
# Specify the path for the unix socket that will be used to listen for
# incoming connections. There is no default, so Redis will not listen
# on a unix socket when not specified.
#
<% unless node["redis"]["unixsocket"].empty? %>
unixsocket <%= node["redis"]["unixsocket"] %>
unixsocketperm <%= node["redis"]["unixsocketperm"] %>
<% end %>
# Close the connection after a client is idle for N seconds (0 to disable)
timeout <%= node["redis"]["timeout"] %>
# Set server verbosity to 'debug'
# it can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel <%= node["redis"]["loglevel"] %>
# Specify the log file name. Also 'stdout' can be used to force
# Redis to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null
logfile <%= node["redis"]["logfile"] %>
# To enable logging to the system logger, just set 'syslog-enabled' to yes,
# and optionally update the other syslog parameters to suit your needs.
syslog-enabled <%= node["redis"]["syslog_enabled"] %>
<% if node["redis"]["syslog_enabled"] == "yes" %>
# Specify the syslog identity.
syslog-ident <%= node["redis"]["syslog_ident"] %>
# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
syslog-facility <%= node["redis"]["syslog_facility"] %>
<% end %>
# Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1
databases <%= node["redis"]["databases"] %>
################################ SNAPSHOTTING #################################
#
# Save the DB on disk:
#
# save <seconds> <changes>
#
# Will save the DB if both the given number of seconds and the given
# number of write operations against the DB occurred.
#
# In the example below the behaviour will be to save:
# after 900 sec (15 min) if at least 1 key changed
# after 300 sec (5 min) if at least 10 keys changed
# after 60 sec if at least 10000 keys changed
#
# Note: you can disable saving at all commenting all the "save" lines.
#
# It is also possible to remove all the previously configured save
# points by adding a save directive with a single empty string argument
# like in the following example:
#
# save ""
<% node["redis"]["snapshots"].each do |interval, keys| %>
save <%= "#{interval} #{keys}" %>
<% end %>
# By default Redis will stop accepting writes if RDB snapshots are enabled
# (at least one save point) and the latest background save failed.
# This will make the user aware (in an hard way) that data is not persisting
# on disk properly, otherwise chances are that no one will notice and some
# distater will happen.
#
# If the background saving process will start working again Redis will
# automatically allow writes again.
#
# However if you have setup your proper monitoring of the Redis server
# and persistence, you may want to disable this feature so that Redis will
# continue to work as usually even if there are problems with disk,
# permissions, and so forth.
stop-writes-on-bgsave-error <%= node["redis"]["stop_writes_on_bgsave_error"] %>
# Compress string objects using LZF when dump .rdb databases?
# For default that's set to 'yes' as it's almost always a win.
# If you want to save some CPU in the saving child set it to 'no' but
# the dataset will likely be bigger if you have compressible values or keys.
rdbcompression <%= node["redis"]["rdbcompression"] %>
# Since verison 5 of RDB a CRC64 checksum is placed at the end of the file.
# This makes the format more resistant to corruption but there is a performance
# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
# for maximum performances.
#
# RDB files created with checksum disabled have a checksum of zero that will
# tell the loading code to skip the check.
rdbchecksum <%= node["redis"]["rdbchecksum"] %>
# The filename where to dump the DB
dbfilename <%= node["redis"]["dbfilename"] %>
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# Also the Append Only File will be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir <%= node["redis"]["dir"] %>
################################# REPLICATION #################################
# Master-Slave replication. Use slaveof to make a Redis instance a copy of
# another Redis server. Note that the configuration is local to the slave
# so for example it is possible to configure the slave to save the DB with a
# different interval, or to listen to another port, and so on.
#
# slaveof <masterip> <masterport>
<% if node["redis"]["slaveof"] && !node["redis"]["slaveof"].empty? %>
slaveof <%= node["redis"]["slaveof"] %>
<% end %>
# If the master is password protected (using the "requirepass" configuration
# directive below) it is possible to tell the slave to authenticate before
# starting the replication synchronization process, otherwise the master will
# refuse the slave request.
#
# masterauth <master-password>
<% if node["redis"]["masterauth"] && !node["redis"]["masterauth"].empty? %>
masterauth <%= node["redis"]["masterauth"] %>
<% end %>
# When a slave lost the connection with the master, or when the replication
# is still in progress, the slave can act in two different ways:
#
# 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will
# still reply to client requests, possibly with out of data data, or the
# data set may just be empty if this is the first synchronization.
#
# 2) if slave-serve-stale data is set to 'no' the slave will reply with
# an error "SYNC with master in progress" to all the kind of commands
# but to INFO and SLAVEOF.
#
slave-serve-stale-data <%= node["redis"]["slave_serve_stale_data"] %>
# You can configure a slave instance to accept writes or not. Writing against
# a slave instance may be useful to store some ephemeral data (because data
# written on a slave will be easily deleted after resync with the master) but
# may also cause problems if clients are writing to it because of a
# misconfiguration.
#
# Since Redis 2.6 by default slaves are read-only.
#
# Note: read only slaves are not designed to be exposed to untrusted clients
# on the internet. It's just a protection layer against misuse of the instance.
# Still a read only slave exports by default all the administrative commands
# such as CONFIG, DEBUG, and so forth. To a limited extend you can improve
# security of read only slaves using 'rename-command' to shadow all the
# administrative / dangerous commands.
slave-read-only <%= node["redis"]["slave_read_only"] %>
# Slaves send PINGs to server in a predefined interval. It's possible to change
# this interval with the repl_ping_slave_period option. The default value is 10
# seconds.
#
repl-ping-slave-period <%= node["redis"]["repl_ping_slave_period"] %>
# The following option sets a timeout for both Bulk transfer I/O timeout and
# master data or ping response timeout. The default value is 60 seconds.
#
# It is important to make sure that this value is greater than the value
# specified for repl-ping-slave-period otherwise a timeout will be detected
# every time there is low traffic between the master and the slave.
#
repl-timeout <%= node["redis"]["repl_timeout"] %>
# The slave priority is an integer number published by Redis in the INFO output.
# It is used by Redis Sentinel in order to select a slave to promote into a
# master if the master is no longer working correctly.
#
# A slave with a low priority number is considered better for promotion, so
# for instance if there are three slaves with priority 10, 100, 25 Sentinel will
# pick the one wtih priority 10, that is the lowest.
#
# However a special priority of 0 marks the slave as not able to perform the
# role of master, so a slave with priority of 0 will never be selected by
# Redis Sentinel for promotion.
#
# By default the priority is 100.
slave-priority <%= node["redis"]["slave_priority"] %>
################################## SECURITY ###################################
# Require clients to issue AUTH <PASSWORD> before processing any other
# commands. This might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
# requirepass foobared
<% if node["redis"]["requirepass"] && !node["redis"]["requirepass"].empty? %>
requirepass <%= node["redis"]["requirepass"] %>
<% end %>
# Command renaming.
#
# It is possilbe to change the name of dangerous commands in a shared
# environment. For instance the CONFIG command may be renamed into something
# of hard to guess so that it will be still available for internal-use
# tools but not available for general clients.
#
# Example:
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
# It is also possilbe to completely kill a command renaming it into
# an empty string:
#
# rename-command CONFIG ""
<% node["redis"]["rename_commands"].each do |command| %>
rename-command <%= command %>
<% end %>
################################### LIMITS ####################################
# Set the max number of connected clients at the same time. By default there
# is no limit, and it's up to the number of file descriptors the Redis process
# is able to open. The special value '0' means no limits.
# Once the limit is reached Redis will close all the new connections sending
# an error 'max number of clients reached'.
#
maxclients <%= node["redis"]["maxclients"] %>
# Don't use more memory than the specified amount of bytes.
# When the memory limit is reached Redis will try to remove keys
# accordingly to the eviction policy selected (see maxmemmory-policy).
#
# If Redis can't remove keys according to the policy, or if the policy is
# set to 'noeviction', Redis will start to reply with errors to commands
# that would use more memory, like SET, LPUSH, and so on, and will continue
# to reply to read-only commands like GET.
#
# This option is usually useful when using Redis as an LRU cache, or to set
# an hard memory limit for an instance (using the 'noeviction' policy).
#
# WARNING: If you have slaves attached to an instance with maxmemory on,
# the size of the output buffers needed to feed the slaves are subtracted
# from the used memory count, so that network problems / resyncs will
# not trigger a loop where keys are evicted, and in turn the output
# buffer of slaves is full with DELs of keys evicted triggering the deletion
# of more keys, and so forth until the database is completely emptied.
#
# In short... if you have slaves attached it is suggested that you set a lower
# limit for maxmemory so that there is some free RAM on the system for slave
# output buffers (but this is not needed if the policy is 'noeviction').
#
maxmemory <%= node["redis"]["maxmemory"] %>
# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached? You can select among five behavior:
#
# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key accordingly to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys->random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations
#
# Note: with all the kind of policies, Redis will return an error on write
# operations, when there are not suitable keys for eviction.
#
# At the date of writing this commands are: set setnx setex append
# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
# getset mset msetnx exec sort
#
# The default is:
#
# maxmemory-policy volatile-lru
maxmemory-policy <%= node["redis"]["maxmemory_policy"] %>
# LRU and minimal TTL algorithms are not precise algorithms but approximated
# algorithms (in order to save memory), so you can select as well the sample
# size to check. For instance for default Redis will check three keys and
# pick the one that was used less recently, you can change the sample size
# using the following configuration directive.
#
# maxmemory-samples 3
maxmemory-samples <%= node["redis"]["maxmemory_samples"] %>
############################## APPEND ONLY MODE ###############################
# By default Redis asynchronously dumps the dataset on disk. If you can live
# with the idea that the latest records will be lost if something like a crash
# happens this is the preferred way to run Redis. If instead you care a lot
# about your data and don't want to that a single record can get lost you should
# enable the append only mode: when this mode is enabled Redis will append
# every write operation received in the file appendonly.aof. This file will
# be read on startup in order to rebuild the full dataset in memory.
#
# Note that you can have both the async dumps and the append only file if you
# like (you have to comment the "save" statements above to disable the dumps).
# Still if append only mode is enabled Redis will load the data from the
# log file at startup ignoring the dump.rdb file.
#
# IMPORTANT: Check the BGREWRITEAOF to check how to rewrite the append
# log file in background when it gets too big.
appendonly <%= node["redis"]["appendonly"] %>
# The name of the append only file (default: "appendonly.aof")
appendfilename <%= node["redis"]["appendfilename"] %>
# The fsync() call tells the Operating System to actually write data on disk
# instead to wait for more data in the output buffer. Some OS will really flush
# data on disk, some other OS will just try to do it ASAP.
#
# Redis supports three different modes:
#
# no: don't fsync, just let the OS flush the data when it wants. Faster.
# always: fsync after every write to the append only log . Slow, Safest.
# everysec: fsync only if one second passed since the last fsync. Compromise.
#
# The default is "everysec" that's usually the right compromise between
# speed and data safety. It's up to you to understand if you can relax this to
# "no" that will will let the operating system flush the output buffer when
# it wants, for better performances (but if you can live with the idea of
# some data loss consider the default persistence mode that's snapshotting),
# or on the contrary, use "always" that's very slow but a bit safer than
# everysec.
#
# If unsure, use "everysec".
# appendfsync always
appendfsync <%= node["redis"]["appendfsync"] %>
# appendfsync no
# When the AOF fsync policy is set to always or everysec, and a background
# saving process (a background save or AOF log background rewriting) is
# performing a lot of I/O against the disk, in some Linux configurations
# Redis may block too long on the fsync() call. Note that there is no fix for
# this currently, as even performing fsync in a different thread will block
# our synchronous write(2) call.
#
# In order to mitigate this problem it's possible to use the following option
# that will prevent fsync() from being called in the main process while a
# BGSAVE or BGREWRITEAOF is in progress.
#
# This means that while another child is saving the durability of Redis is
# the same as "appendfsync none", that in pratical terms means that it is
# possible to lost up to 30 seconds of log in the worst scenario (with the
# default Linux settings).
#
# If you have latency problems turn this to "yes". Otherwise leave it as
# "no" that is the safest pick from the point of view of durability.
no-appendfsync-on-rewrite <%= node["redis"]["no_appendfsync_on_rewrite"] %>
# Automatic rewrite of the append only file.
# Redis is able to automatically rewrite the log file implicitly calling
# BGREWRITEAOF when the AOF log size will growth by the specified percentage.
#
# This is how it works: Redis remembers the size of the AOF file after the
# latest rewrite (or if no rewrite happened since the restart, the size of
# the AOF at startup is used).
#
# This base size is compared to the current size. If the current size is
# bigger than the specified percentage, the rewrite is triggered. Also
# you need to specify a minimal size for the AOF file to be rewritten, this
# is useful to avoid rewriting the AOF file even if the percentage increase
# is reached but it is still pretty small.
#
# Specify a precentage of zero in order to disable the automatic AOF
# rewrite feature.
auto-aof-rewrite-percentage <%= node["redis"]["auto_aof_rewrite_percentage"] %>
auto-aof-rewrite-min-size <%= node["redis"]["auto_aof_rewrite_min_size"] %>
################################ LUA SCRIPTING ###############################
# Max execution time of a Lua script in milliseconds.
#
# If the maximum execution time is reached Redis will log that a script is
# still in execution after the maximum allowed time and will start to
# reply to queries with an error.
#
# When a long running script exceed the maximum execution time only the
# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be
# used to stop a script that did not yet called write commands. The second
# is the only way to shut down the server in the case a write commands was
# already issue by the script but the user don't want to wait for the natural
# termination of the script.
#
# Set it to 0 or a negative value for unlimited execution without warnings.
lua-time-limit <%= node["redis"]["lua_time_limit"] %>
################################## SLOW LOG ###################################
# The Redis Slow Log is a system to log queries that exceeded a specified
# execution time. The execution time does not include the I/O operations
# like talking with the client, sending the reply and so forth,
# but just the time needed to actually execute the command (this is the only
# stage of command execution where the thread is blocked and can not serve
# other requests in the meantime).
#
# You can configure the slow log with two parameters: one tells Redis
# what is the execution time, in microseconds, to exceed in order for the
# command to get logged, and the other parameter is the length of the
# slow log. When a new command is logged the oldest one is removed from the
# queue of logged commands.
# The following time is expressed in microseconds, so 1000000 is equivalent
# to one second. Note that a negative number disables the slow log, while
# a value of zero forces the logging of every command.
slowlog-log-slower-than <%= node["redis"]["slowlog_log_slower_than"] %>
# There is no limit to this length. Just be aware that it will consume memory.
# You can reclaim memory used by the slow log with SLOWLOG RESET.
slowlog-max-len <%= node["redis"]["slowlog_max_len"] %>
############################### ADVANCED CONFIG ###############################
# Hashes are encoded using a memory efficient data structure when they have a
# small number of entries, and the biggest entry does not exceed a given
# threshold. These thresholds can be configured using the following directives.
hash-max-ziplist-entries <%= node["redis"]["hash_max_ziplist_entries"] %>
hash-max-ziplist-value <%= node["redis"]["hash_max_ziplist_value"] %>
# Similarly to hashes, small lists are also encoded in a special way in order
# to save a lot of space. The special representation is only used when
# you are under the following limits:
list-max-ziplist-entries <%= node["redis"]["list_max_ziplist_entries"] %>
list-max-ziplist-value <%= node["redis"]["list_max_ziplist_value"] %>
# Sets have a special encoding in just one case: when a set is composed
# of just strings that happens to be integers in radix 10 in the range
# of 64 bit signed integers.
# The following configuration setting sets the limit in the size of the
# set in order to use this special memory saving encoding.
set-max-intset-entries <%= node["redis"]["set_max_intset_entries"] %>
# Similarly to hashes and lists, sorted sets are also specially encoded in
# order to save a lot of space. This encoding is only used when the length and
# elements of a sorted set are below the following limits:
zset-max-ziplist-entries <%= node["redis"]["zset_max_ziplist_entries"] %>
zset-max-ziplist-value <%= node["redis"]["zset_max_ziplist_value"] %>
# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
# order to help rehashing the main Redis hash table (the one mapping top-level
# keys to values). The hash table implementation redis uses (see dict.c)
# performs a lazy rehashing: the more operation you run into an hash table
# that is rhashing, the more rehashing "steps" are performed, so if the
# server is idle the rehashing is never complete and some more memory is used
# by the hash table.
#
# The default is to use this millisecond 10 times every second in order to
# active rehashing the main dictionaries, freeing memory when possible.
#
# If unsure:
# use "activerehashing no" if you have hard latency requirements and it is
# not a good thing in your environment that Redis can reply form time to time
# to queries with 2 milliseconds delay.
#
# use "activerehashing yes" if you don't have such hard requirements but
# want to free memory asap when possible.
activerehashing <%= node["redis"]["activerehashing"] %>
# The client output buffer limits can be used to force disconnection of clients
# that are not reading data from the server fast enough for some reason (a
# common reason is that a Pub/Sub client can't consume messages as fast as the
# publisher can produce them).
#
# The limit can be set differently for the three different classes of clients:
#
# normal -> normal clients
# slave -> slave clients and MONITOR clients
# pubsub -> clients subcribed to at least one pubsub channel or pattern
#
# The syntax of every client-output-buffer-limit directive is the following:
#
# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
#
# A client is immediately disconnected once the hard limit is reached, or if
# the soft limit is reached and remains reached for the specified number of
# seconds (continuously).
# So for instance if the hard limit is 32 megabytes and the soft limit is
# 16 megabytes / 10 seconds, the client will get disconnected immediately
# if the size of the output buffers reach 32 megabytes, but will also get
# disconnected if the client reaches 16 megabytes and continuously overcomes
# the limit for 10 seconds.
#
# By default normal clients are not limited because they don't receive data
# without asking (in a push way), but just after a request, so only
# asynchronous clients may create a scenario where data is requested faster
# than it can read.
#
# Instead there is a default limit for pubsub and slave clients, since
# subscribers and slaves receive data in a push fashion.
#
# Both the hard or the soft limit can be disabled just setting it to zero.
client-output-buffer-limit normal <%= node["redis"]["client_output_buffer_limit"]["normal"] %>
client-output-buffer-limit slave <%= node["redis"]["client_output_buffer_limit"]["slave"] %>
client-output-buffer-limit pubsub <%= node["redis"]["client_output_buffer_limit"]["pubsub"] %>
################################## INCLUDES ###################################
# Include one or more other config files here. This is useful if you
# have a standard template that goes to all redis server but also need
# to customize a few per-server settings. Include files can include
# other files, so use this wisely.
#
# include /path/to/local.conf
# include /path/to/other.conf
<% node["redis"]["include_config_files"].each do |file| %>
include <%= file %>
<% end %>

View File

@@ -0,0 +1,2 @@
cache_type "BasicFile"
cache_options(path: "#{ENV["HOME"]}/.chef/checksums")

View File

@@ -0,0 +1,41 @@
require "serverspec"
set :backend, :exec
describe "Redis client installation" do
describe package("redis-tools") do
it { should be_installed }
end
end
describe "Redis server installation" do
describe package("redis-server") do
it { should be_installed }
end
describe file("/var/lib/redis") do
it { should be_a_directory }
it { should be_owned_by "redis" }
it { should be_grouped_into "redis" }
it { should be_mode 750 }
end
describe service("redis-server") do
it { should be_enabled }
it { should be_running }
end
describe file("/etc/redis/redis.conf") do
it { should be_a_file }
it { should be_owned_by "root" }
it { should be_grouped_into "root" }
it { should be_mode 644 }
end
describe file("/etc/default/redis-server") do
it { should be_a_file }
it { should be_owned_by "root" }
it { should be_grouped_into "root" }
it { should be_mode 644 }
end
end

View File

@@ -0,0 +1,17 @@
# Insecure Keypair
These keys are the "insecure" public/private keypair we offer to
[base box creators](http://docs.vagrantup.com/v1/docs/base_boxes.html) for use in their base boxes so that
vagrant installations can automatically SSH into the boxes.
If you're working with a team or company or with a custom box and
you want more secure SSH, you should create your own keypair
and configure the private key in the Vagrantfile with
`config.ssh.private_key_path`
# Putty
If you are using Vagrant on windows, the .ppk file contained here, in the keys directory,
has been generated from the private key and should be used to connect Putty to any VMs that
are leveraging the default key pair. See [guide](http://docs.vagrantup.com/v1/docs/getting-started/ssh.html)
in the documentation for more details on using Putty with Vagrant.

View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI
w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP
kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2
hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO
Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW
yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd
ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1
Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf
TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK
iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A
sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf
4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP
cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk
EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN
CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX
3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG
YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj
3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+
dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz
6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC
P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF
llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ
kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH
+vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ
NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=
-----END RSA PRIVATE KEY-----

View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key

View File

@@ -0,0 +1,25 @@
Encoding:
Description: 'Use UTF-8 as the source file encoding.'
Enabled: false
SymbolArray:
Description: 'Use %i or %I for arrays of symbols.'
Enabled: false
##################### Rails ##################################
DefaultScope:
Description: 'Checks if the argument passed to default_scope is a block.'
Enabled: false
HasAndBelongsToMany:
Description: 'Prefer has_many :through to has_and_belongs_to_many.'
Enabled: false
Output:
Description: 'Checks for calls to puts, print, etc.'
Enabled: false
Validation:
Description: 'Use sexy validations.'
Enabled: false

View File

@@ -0,0 +1,652 @@
# These are all the cops that are enabled in the default configuration.
AccessModifierIndentation:
Description: Check indentation of private/protected visibility modifiers.
Enabled: true
AccessorMethodName:
Description: Check the naming of accessor methods for get_/set_.
Enabled: true
Alias:
Description: 'Use alias_method instead of alias.'
Enabled: true
AlignArray:
Description: >-
Align the elements of an array literal if they span more than
one line.
Enabled: true
AlignHash:
Description: >-
Align the elements of a hash literal if they span more than
one line.
Enabled: true
AlignParameters:
Description: >-
Align the parameters of a method call if they span more
than one line.
Enabled: true
AndOr:
Description: 'Use &&/|| instead of and/or.'
Enabled: true
AsciiComments:
Description: 'Use only ascii symbols in comments.'
Enabled: true
AsciiIdentifiers:
Description: 'Use only ascii symbols in identifiers.'
Enabled: true
Attr:
Description: 'Checks for uses of Module#attr.'
Enabled: true
BeginBlock:
Description: 'Avoid the use of BEGIN blocks.'
Enabled: true
BlockComments:
Description: 'Do not use block comments.'
Enabled: true
BlockNesting:
Description: 'Avoid excessive block nesting'
Enabled: true
Blocks:
Description: >-
Avoid using {...} for multi-line blocks (multiline chaining is
always ugly).
Prefer {...} over do...end for single-line blocks.
Enabled: true
BracesAroundHashParameters:
Description: 'Enforce braces style inside hash parameters.'
Enabled: true
CaseEquality:
Description: 'Avoid explicit use of the case equality operator(===).'
Enabled: true
CaseIndentation:
Description: 'Indentation of when in a case/when/[else/]end.'
Enabled: true
CharacterLiteral:
Description: 'Checks for uses of character literals.'
Enabled: true
ClassAndModuleCamelCase:
Description: 'Use CamelCase for classes and modules.'
Enabled: true
ClassLength:
Description: 'Avoid classes longer than 100 lines of code.'
Enabled: true
ClassMethods:
Description: 'Use self when defining module/class methods.'
Enabled: true
ClassVars:
Description: 'Avoid the use of class variables.'
Enabled: true
CollectionMethods:
Description: 'Preferred collection methods.'
Enabled: true
ColonMethodCall:
Description: 'Do not use :: for method call.'
Enabled: true
CommentAnnotation:
Description: >-
Checks formatting of special comments
(TODO, FIXME, OPTIMIZE, HACK, REVIEW).
Enabled: true
ConstantName:
Description: 'Constants should use SCREAMING_SNAKE_CASE.'
Enabled: true
CyclomaticComplexity:
Description: 'Avoid complex methods.'
Enabled: true
DefWithParentheses:
Description: 'Use def with parentheses when there are arguments.'
Enabled: true
Documentation:
Description: 'Document classes and non-namespace modules.'
Enabled: true
DotPosition:
Description: 'Checks the position of the dot in multi-line method calls.'
Enabled: true
EmptyLineBetweenDefs:
Description: 'Use empty lines between defs.'
Enabled: true
EmptyLines:
Description: "Don't use several empty lines in a row."
Enabled: true
EmptyLinesAroundAccessModifier:
Description: "Keep blank lines around access modifiers."
Enabled: true
EmptyLinesAroundBody:
Description: "Keeps track of empty lines around expression bodies."
Enabled: true
EmptyLiteral:
Description: 'Prefer literals to Array.new/Hash.new/String.new.'
Enabled: true
EndBlock:
Description: 'Avoid the use of END blocks.'
Enabled: true
EndOfLine:
Description: 'Use Unix-style line endings.'
Enabled: true
EvenOdd:
Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
Enabled: true
FavorJoin:
Description: 'Use Array#join instead of Array#*.'
Enabled: true
FavorUnlessOverNegatedIf:
Description: >-
Favor unless over if for negative conditions
(or control flow or).
Enabled: true
FavorUntilOverNegatedWhile:
Description: 'Favor until over while for negative conditions.'
Enabled: true
FileName:
Description: 'Use snake_case for source file names.'
Enabled: true
FinalNewline:
Description: 'Checks for a final newline in a source file.'
Enabled: true
FlipFlop:
Description: 'Checks for flip flops'
Enabled: true
For:
Description: 'Checks use of for or each in multiline loops.'
Enabled: true
FormatString:
Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
Enabled: true
GlobalVars:
Description: 'Do not introduce global variables.'
Enabled: true
HashMethods:
Description: 'Checks for use of deprecated Hash methods.'
Enabled: true
HashSyntax:
Description: >-
Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
{ :a => 1, :b => 2 }.
Enabled: true
IfUnlessModifier:
Description: >-
Favor modifier if/unless usage when you have a
single-line body.
Enabled: true
IfWithSemicolon:
Description: 'Never use if x; .... Use the ternary operator instead.'
Enabled: true
IndentationConsistency:
Description: 'Keep indentation straight.'
Enabled: true
IndentationWidth:
Description: 'Use 2 spaces for indentation.'
Enabled: true
IndentArray:
Description: >-
Checks the indentation of the first element in an array
literal.
Enabled: true
IndentHash:
Description: 'Checks the indentation of the first key in a hash literal.'
Enabled: true
Lambda:
Description: 'Use the new lambda literal syntax for single-line blocks.'
Enabled: true
LambdaCall:
Description: 'Use lambda.call(...) instead of lambda.(...).'
Enabled: true
LeadingCommentSpace:
Description: 'Comments should start with a space.'
Enabled: true
LineEndConcatenation:
Description: 'Use \\ instead of + to concatenate two string literals at line end.'
Enabled: true
LineLength:
Description: 'Limit lines to 79 characters.'
Enabled: true
MethodCalledOnDoEndBlock:
Description: 'Avoid chaining a method call on a do...end block.'
Enabled: true
MethodCallParentheses:
Description: 'Do not use parentheses for method calls with no arguments.'
Enabled: true
MethodDefParentheses:
Description: >-
Checks if the method definitions have or don't have
parentheses.
Enabled: true
MethodLength:
Description: 'Avoid methods longer than 10 lines of code.'
Enabled: true
MethodName:
Description: 'Use the configured style when naming methods.'
Enabled: true
ModuleFunction:
Description: 'Checks for usage of `extend self` in modules.'
Enabled: true
MultilineBlockChain:
Description: 'Avoid multi-line chains of blocks.'
Enabled: true
MultilineIfThen:
Description: 'Never use then for multi-line if/unless.'
Enabled: true
MultilineTernaryOperator:
Description: >-
Avoid multi-line ?: (the ternary operator);
use if/unless instead.
Enabled: true
NestedTernaryOperator:
Description: 'Use one expression per branch in a ternary operator.'
Enabled: true
NilComparison:
Description: 'Prefer x.nil? to x == nil.'
Enabled: true
Not:
Description: 'Use ! instead of not.'
Enabled: true
NumericLiterals:
Description: >-
Add underscores to large numeric literals to improve their
readability.
Enabled: true
OneLineConditional:
Description: >-
Favor the ternary operator(?:) over
if/then/else/end constructs.
Enabled: true
OpMethod:
Description: 'When defining binary operators, name the argument other.'
Enabled: true
ParameterLists:
Description: 'Avoid parameter lists longer than three or four parameters.'
Enabled: true
ParenthesesAroundCondition:
Description: >-
Don't use parentheses around the condition of an
if/unless/while.
Enabled: true
PerlBackrefs:
Description: 'Avoid Perl-style regex back references.'
Enabled: true
PredicateName:
Description: 'Check the names of predicate methods.'
Enabled: true
Proc:
Description: 'Use proc instead of Proc.new.'
Enabled: true
RaiseArgs:
Description: 'Checks the arguments passed to raise/fail.'
Enabled: true
RedundantBegin:
Description: "Don't use begin blocks when they are not needed."
Enabled: true
RedundantException:
Description: "Checks for an obsolete RuntimeException argument in raise/fail."
Enabled: true
RedundantReturn:
Description: "Don't use return where it's not required."
Enabled: true
RedundantSelf:
Description: "Don't use self where it's not needed."
Enabled: true
RegexpLiteral:
Description: >-
Use %r for regular expressions matching more than
`MaxSlashes` '/' characters.
Use %r only for regular expressions matching more than
`MaxSlashes` '/' character.
Enabled: true
RescueModifier:
Description: 'Avoid using rescue in its modifier form.'
Enabled: true
Semicolon:
Description: "Don't use semicolons to terminate expressions."
Enabled: true
SignalException:
Description: 'Checks for proper usage of fail and raise.'
Enabled: true
SingleLineBlockParams:
Description: 'Enforces the names of some block params.'
Enabled: true
SingleLineMethods:
Description: 'Avoid single-line methods.'
Enabled: true
SpaceAfterColon:
Description: 'Use spaces after colons.'
Enabled: true
SpaceAfterComma:
Description: 'Use spaces after commas.'
Enabled: true
SpaceAfterControlKeyword:
Description: 'Use spaces after if/elsif/unless/while/until/case/when.'
Enabled: true
SpaceAfterMethodName:
Description: >-
Never put a space between a method name and the opening
parenthesis.
Enabled: true
SpaceAfterNot:
Description: Tracks redundant space after the ! operator.
Enabled: true
SpaceAfterSemicolon:
Description: 'Use spaces after semicolons.'
Enabled: true
SpaceAroundBlockBraces:
Description: >-
Checks that block braces have or don't have surrounding space.
For blocks taking parameters, checks that the left brace has
or doesn't have trailing space.
Enabled: true
SpaceAroundEqualsInParameterDefault:
Description: >-
Use spaces around the = operator when assigning default
values in def params.
Enabled: true
SpaceAroundOperators:
Description: 'Use spaces around operators.'
Enabled: true
SpaceBeforeModifierKeyword:
Description: 'Put a space before the modifier keyword.'
Enabled: true
SpaceInsideBrackets:
Description: 'No spaces after [ or before ].'
Enabled: true
SpaceInsideHashLiteralBraces:
Description: "Use spaces inside hash literal braces - or don't."
Enabled: true
SpaceInsideParens:
Description: 'No spaces after ( or before ).'
Enabled: true
SpecialGlobalVars:
Description: 'Avoid Perl-style global variables.'
Enabled: true
StringLiterals:
Description: 'Checks if uses of quotes match the configured preference.'
Enabled: true
Tab:
Description: 'No hard tabs.'
Enabled: true
TrailingBlankLines:
Description: 'Checks for superfluous trailing blank lines.'
Enabled: true
TrailingComma:
Description: 'Checks for trailing comma in parameter lists and literals.'
Enabled: true
TrailingWhitespace:
Description: 'Avoid trailing whitespace.'
Enabled: true
TrivialAccessors:
Description: 'Prefer attr_* methods to trivial readers/writers.'
Enabled: true
UnlessElse:
Description: >-
Never use unless with else. Rewrite these with the positive
case first.
Enabled: true
VariableInterpolation:
Description: >-
Don't interpolate global, instance and class variables
directly in strings.
Enabled: true
VariableName:
Description: 'Use the configured style when naming variables.'
Enabled: true
WhenThen:
Description: 'Use when x then ... for one-line cases.'
Enabled: true
WhileUntilDo:
Description: 'Checks for redundant do after while or until.'
Enabled: true
WhileUntilModifier:
Description: >-
Favor modifier while/until usage when you have a
single-line body.
Enabled: true
WordArray:
Description: 'Use %w or %W for arrays of words.'
Enabled: true
#################### Lint ################################
### Warnings
AmbiguousOperator:
Description: >-
Checks for ambiguous operators in the first argument of a
method invocation without parentheses.
Enabled: true
AmbiguousRegexpLiteral:
Description: >-
Checks for ambiguous regexp literals in the first argument of
a method invocation without parenthesis.
Enabled: true
AssignmentInCondition:
Description: "Don't use assignment in conditions."
Enabled: true
BlockAlignment:
Description: 'Align block ends correctly.'
Enabled: true
ConditionPosition:
Description: 'Checks for condition placed in a confusing position relative to the keyword.'
Enabled: true
Debugger:
Description: 'Check for debugger calls.'
Enabled: true
DeprecatedClassMethods:
Description: 'Check for deprecated class method calls.'
Enabled: true
ElseLayout:
Description: 'Check for odd code arrangement in an else block.'
Enabled: true
EmptyEnsure:
Description: 'Checks for empty ensure block.'
Enabled: true
EndAlignment:
Description: 'Align ends correctly.'
Enabled: true
EndInMethod:
Description: 'END blocks should not be placed inside method definitions.'
Enabled: true
EnsureReturn:
Description: 'Never use return in an ensure block.'
Enabled: true
Eval:
Description: 'The use of eval represents a serious security risk.'
Enabled: true
HandleExceptions:
Description: "Don't suppress exception."
Enabled: true
InvalidCharacterLiteral:
Description: >-
Checks for invalid character literals with a non-escaped
whitespace character.
Enabled: true
LiteralInCondition:
Description: 'Checks of literals used in conditions.'
Enabled: true
LiteralInInterpolation:
Description: 'Checks for literals used in interpolation.'
Enabled: true
Loop:
Description: >-
Use Kernel#loop with break rather than begin/end/until or
begin/end/while for post-loop tests.
Enabled: true
ParenthesesAsGroupedExpression:
Description: >-
Checks for method calls with a space before the opening
parenthesis.
Enabled: true
RequireParentheses:
Description: >-
Use parentheses in the method call to avoid confusion
about precedence.
Enabled: true
RescueException:
Description: 'Avoid rescuing the Exception class.'
Enabled: true
ShadowingOuterLocalVariable:
Description: >-
Do not use the same name as outer local variable
for block arguments or block local variables.
Enabled: true
StringConversionInInterpolation:
Description: 'Checks for Object#to_s usage in string interpolation.'
Enabled: true
UnreachableCode:
Description: 'Unreachable code.'
Enabled: true
UselessAssignment:
Description: 'Checks for useless assignment to a local variable.'
Enabled: true
UselessComparison:
Description: 'Checks for comparison of something with itself.'
Enabled: true
UselessElseWithoutRescue:
Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
Enabled: true
UselessSetterCall:
Description: 'Checks for useless setter call to a local variable.'
Enabled: true
Void:
Description: 'Possible use of operator/literal/variable in void context.'
Enabled: true