vx-worker 0.2.1 → 0.3.0.pre0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/Gemfile +5 -0
- data/Vagrantfile +80 -0
- data/dist/build.sh +77 -0
- data/dist/debian/changelog.mk +6 -0
- data/dist/debian/ci_env +7 -0
- data/dist/debian/compat +1 -0
- data/dist/debian/control.mk +12 -0
- data/dist/debian/postrm +35 -0
- data/dist/debian/preinst +27 -0
- data/dist/debian/rules +22 -0
- data/dist/debian/script +6 -0
- data/dist/debian/source/format +1 -0
- data/dist/debian/upstart +18 -0
- data/lib/vx/worker/middlewares/update_job_status.rb +5 -5
- data/lib/vx/worker/version.rb +1 -1
- data/spec/support/shared_examples/update_job_status_message_spec.rb +4 -4
- data/vx-worker.gemspec +2 -4
- metadata +20 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a191dee94cb01a6620420e3739eab93dae138e1
|
4
|
+
data.tar.gz: 32849707818830f282a6af4c0f9e83d7cc9d7f91
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a66ad52567249f726d3f685906e81b0bbc67bda4adeeab76fe0780f5ed05cf6a739f6c5854e46cbaa1f204d85d104e39d6ee777cb1677e35996f0c18632fcab
|
7
|
+
data.tar.gz: acd583b29ea3b59afd002c42ce87fc3e37f56f8fdfb6528d42e5bb1745aefa69488d2f78d85006512c98ddca51b11edcf627d3941290c01d9a705e95bab6ff9a
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Vagrantfile
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
# -*- mode: ruby -*-
|
2
|
+
# vi: set ft=ruby :
|
3
|
+
|
4
|
+
class CloudUbuntuVagrant < VagrantVbguest::Installers::Ubuntu
|
5
|
+
def install(opts=nil, &block)
|
6
|
+
communicate.sudo('sed -i "/^# deb.*multiverse/ s/^# //" /etc/apt/sources.list ', opts, &block)
|
7
|
+
communicate.sudo('apt-get update', opts, &block)
|
8
|
+
communicate.sudo('apt-get -y -q purge virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11', opts, &block)
|
9
|
+
@vb_uninstalled = true
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def running?(opts=nil, &block)
|
14
|
+
return false if @vb_uninstalled
|
15
|
+
super
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
|
20
|
+
VAGRANTFILE_API_VERSION = "2"
|
21
|
+
|
22
|
+
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
23
|
+
config.vm.box = 'precise64'
|
24
|
+
config.vm.box_url = 'http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box'
|
25
|
+
|
26
|
+
script =<<SCRIPT
|
27
|
+
set -e
|
28
|
+
|
29
|
+
cat > /etc/apt/sources.list << EOF
|
30
|
+
deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse
|
31
|
+
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse
|
32
|
+
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse
|
33
|
+
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse
|
34
|
+
EOF
|
35
|
+
|
36
|
+
mkdir -p /etc/apt/sources.list.d
|
37
|
+
|
38
|
+
if [ ! -f /etc/apt/sources.list.d/vexor.list ] ; then
|
39
|
+
echo 'deb http://download.opensuse.org/repositories/home:/dmexe:/vexor:/testing/xUbuntu_12.04/ ./' > /etc/apt/sources.list.d/vexor.list
|
40
|
+
curl -s http://download.opensuse.org/repositories/home:/dmexe:/vexor:/testing/xUbuntu_12.04/Release.key | apt-key add -
|
41
|
+
fi
|
42
|
+
|
43
|
+
if [ ! -f /etc/apt/sources.list.d/osc.list ] ; then
|
44
|
+
echo 'deb http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_12.04/ ./' > /etc/apt/sources.list.d/osc.list
|
45
|
+
curl -s http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_12.04/Release.key | apt-key add -
|
46
|
+
fi
|
47
|
+
|
48
|
+
apt-get -qqy update > /dev/null
|
49
|
+
apt-get -qy install osc build vx-embeded-ruby vx-embeded-bundler git-core devscripts debhelper > /dev/null
|
50
|
+
apt-get -qy autoremove > /dev/null
|
51
|
+
|
52
|
+
function sd () {
|
53
|
+
sudo su -c "$1" vagrant
|
54
|
+
}
|
55
|
+
|
56
|
+
if [ ! -d home:dmexe:vexor:testing ] ; then
|
57
|
+
pushd /home/vagrant
|
58
|
+
sd "osc co home:dmexe:vexor:testing"
|
59
|
+
popd
|
60
|
+
fi
|
61
|
+
|
62
|
+
pushd /vagrant/.tmp/
|
63
|
+
sudo su -c "sh build.sh" vagrant
|
64
|
+
popd
|
65
|
+
|
66
|
+
pushd /home/vagrant/home:dmexe:vexor:testing/vx-worker
|
67
|
+
sd "rm -rf vx-worker_*"
|
68
|
+
sd "cp /vagrant/.tmp/vx-worker_* ."
|
69
|
+
status=$(sudo su -c "osc st" vagrant)
|
70
|
+
if [ ! -z "${status}" ] ; then
|
71
|
+
echo "changes detected: ${status}"
|
72
|
+
sd "osc addremove"
|
73
|
+
sd "osc ci -m 'bump'"
|
74
|
+
fi
|
75
|
+
popd
|
76
|
+
|
77
|
+
SCRIPT
|
78
|
+
|
79
|
+
config.vm.provision :shell, :inline => script
|
80
|
+
end
|
data/dist/build.sh
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
|
5
|
+
PACKAGE_NAME="vx-worker"
|
6
|
+
|
7
|
+
GIT_LAST_LOG=$(git log -n1 --format=oneline)
|
8
|
+
GIT_BUILD_NUMBER=$(git rev-list HEAD | wc -l | sed -e 's/ *//g' | xargs -n1 printf %04d)
|
9
|
+
GIT_LAST_TAG=$(git describe --abbrev=0 --tags)
|
10
|
+
GIT_VERSION=$(echo $GIT_LAST_TAG | sed -e "s/^v//g")
|
11
|
+
GIT_DATE=$(git log -n1 --format="%aD")
|
12
|
+
|
13
|
+
RELEASE_VERSION=$(echo $GIT_VERSION | ruby -e "puts Gem::Version.new(STDIN.read).release.to_s")
|
14
|
+
RELEASE_SHORT_VERSION=$(echo $GIT_VERSION | ruby -e "puts Gem::Version.new(STDIN.read).release.to_s.split('.')[0..1].join('.')")
|
15
|
+
|
16
|
+
VERSION="${RELEASE_VERSION}.rev${GIT_BUILD_NUMBER}"
|
17
|
+
PACKAGE_NAME_AND_VERSION="${PACKAGE_NAME}_${VERSION}"
|
18
|
+
WORKDIR=".tmp/${PACKAGE_NAME_AND_VERSION}"
|
19
|
+
|
20
|
+
function notice() {
|
21
|
+
echo " ---> $1"
|
22
|
+
}
|
23
|
+
|
24
|
+
function git_export () {
|
25
|
+
rm -rf .tmp
|
26
|
+
mkdir -p $WORKDIR
|
27
|
+
notice "export code to $WORKDIR"
|
28
|
+
git archive master | tar -x -C $WORKDIR
|
29
|
+
}
|
30
|
+
|
31
|
+
function package_gems () {
|
32
|
+
notice "packaging gems"
|
33
|
+
(cd $WORKDIR && bundle package > /dev/null)
|
34
|
+
}
|
35
|
+
|
36
|
+
function generate_debian () {
|
37
|
+
notice "generating debian scripts"
|
38
|
+
|
39
|
+
dst=${WORKDIR}/debian
|
40
|
+
src=dist/debian
|
41
|
+
|
42
|
+
pushd .tmp > /dev/null
|
43
|
+
tar -czf "${PACKAGE_NAME_AND_VERSION}.orig.tar.gz" ${PACKAGE_NAME_AND_VERSION}
|
44
|
+
popd > /dev/null
|
45
|
+
|
46
|
+
cp -r $src $dst
|
47
|
+
|
48
|
+
cat $dst/control.mk | sed -e "s/%PACKAGE_NAME%/${PACKAGE_NAME}/g" > $dst/control
|
49
|
+
cat $dst/changelog.mk | sed -e "s/%VERSION%/${VERSION}/g" | sed -e "s/%DATE%/${GIT_DATE}/g" > $dst/changelog
|
50
|
+
}
|
51
|
+
|
52
|
+
function run_vagrant () {
|
53
|
+
notice "run build in vagrant"
|
54
|
+
|
55
|
+
cat > .tmp/build.sh <<EOF
|
56
|
+
set -e
|
57
|
+
set -x
|
58
|
+
|
59
|
+
(cd ${PACKAGE_NAME_AND_VERSION} && debuild -i -us -uc -S)
|
60
|
+
|
61
|
+
mv ${PACKAGE_NAME_AND_VERSION} work
|
62
|
+
EOF
|
63
|
+
vagrant up
|
64
|
+
vagrant provision
|
65
|
+
}
|
66
|
+
|
67
|
+
|
68
|
+
function build () {
|
69
|
+
notice "Building ${PACKAGE_NAME_AND_VERSION}"
|
70
|
+
|
71
|
+
git_export
|
72
|
+
package_gems
|
73
|
+
generate_debian
|
74
|
+
run_vagrant
|
75
|
+
}
|
76
|
+
|
77
|
+
build
|
data/dist/debian/ci_env
ADDED
data/dist/debian/compat
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
5
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Source: vx-worker
|
2
|
+
Section: ruby
|
3
|
+
Priority: optional
|
4
|
+
Maintainer: Dmitry Galinsky <dima.exe@gmail.com>
|
5
|
+
Build-Depends: debhelper (>= 9.0), vx-embeded-ruby, vx-embeded-bundler, git-core
|
6
|
+
Standards-Version: 3.9.3
|
7
|
+
Homepage: http://www.ruby-lang.org/
|
8
|
+
|
9
|
+
Package: %PACKAGE_NAME%
|
10
|
+
Architecture: any
|
11
|
+
Depends: ${shlibs:Depends}, ${misc:Depends}, vx-embeded-ruby, vx-embeded-bundler, adduser
|
12
|
+
Description: Vexor worker.
|
data/dist/debian/postrm
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
|
5
|
+
# summary of how this script can be called:
|
6
|
+
# * <postrm> `remove'
|
7
|
+
# * <postrm> `purge'
|
8
|
+
# * <old-postrm> `upgrade' <new-version>
|
9
|
+
# * <new-postrm> `failed-upgrade' <old-version>
|
10
|
+
# * <new-postrm> `abort-install'
|
11
|
+
# * <new-postrm> `abort-install' <old-version>
|
12
|
+
# * <new-postrm> `abort-upgrade' <old-version>
|
13
|
+
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
|
14
|
+
# for details, see http://www.debian.org/doc/debian-policy/ or
|
15
|
+
# the debian-policy package
|
16
|
+
|
17
|
+
case "$1" in
|
18
|
+
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
19
|
+
if test "x$1" == "xpurge"
|
20
|
+
then
|
21
|
+
userdel -r vx-worker || true
|
22
|
+
rm -rf /var/lib/vexor/worker
|
23
|
+
rm -f /var/log/upstart/vx-worker.log
|
24
|
+
fi
|
25
|
+
;;
|
26
|
+
|
27
|
+
*)
|
28
|
+
echo "postrm called with unknown argument \`$1'" >&2
|
29
|
+
exit 0
|
30
|
+
esac
|
31
|
+
|
32
|
+
#DEBHELPER#
|
33
|
+
|
34
|
+
exit 0
|
35
|
+
|
data/dist/debian/preinst
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
|
5
|
+
# summary of how this script can be called:
|
6
|
+
# * <new-preinst> `install'
|
7
|
+
# * <new-preinst> `install' <old-version>
|
8
|
+
# * <new-preinst> `upgrade' <old-version>
|
9
|
+
# * <old-preinst> `abort-upgrade' <new-version>
|
10
|
+
#
|
11
|
+
# for details, see http://www.debian.org/doc/debian-policy/ or
|
12
|
+
# the debian-policy package
|
13
|
+
|
14
|
+
if [ "$1" == "install" ] || [ "$1" == "upgrade" ]; then
|
15
|
+
|
16
|
+
if ! id vx-worker 1> /dev/null 2>&1; then
|
17
|
+
groupadd -f -r vx-worker
|
18
|
+
useradd -d /var/lib/vexor/worker -g vx-worker -G docker -c "Vexor worker daemon" -s /usr/sbin/nologin -r vx-worker
|
19
|
+
fi
|
20
|
+
|
21
|
+
install -m 750 -o vx-worker -g vx-worker -d /var/lib/vexor/worker
|
22
|
+
fi
|
23
|
+
|
24
|
+
#DEBHELPER#
|
25
|
+
|
26
|
+
exit 0
|
27
|
+
|
data/dist/debian/rules
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/make -f
|
2
|
+
# Sample debian/rules that uses debhelper.
|
3
|
+
# GNU copyright 1997 to 1999 by Joey Hess.
|
4
|
+
|
5
|
+
BUNDLE = /opt/vexor/bin/bundle
|
6
|
+
DIST = $(shell pwd)/debian/vx-worker/opt/vexor/worker
|
7
|
+
|
8
|
+
%:
|
9
|
+
dh $@
|
10
|
+
|
11
|
+
override_dh_auto_install:
|
12
|
+
$(BUNDLE) install --without development --local --standalone
|
13
|
+
mkdir -p $(DIST)
|
14
|
+
cp -r bin $(DIST)
|
15
|
+
cp -r docker $(DIST)
|
16
|
+
cp -r lib $(DIST)
|
17
|
+
cp -r bundle $(DIST)
|
18
|
+
rm -rf $(DIST)/debian
|
19
|
+
mkdir -p debian/vx-worker/etc/vexor
|
20
|
+
install -m 0644 debian/ci_env debian/vx-worker/etc/vexor/ci
|
21
|
+
mkdir -p debian/vx-worker/opt/vexor/bin
|
22
|
+
install -m 0755 debian/script debian/vx-worker/opt/vexor/bin/worker
|
data/dist/debian/script
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0
|
data/dist/debian/upstart
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
description "start and stop the vexor worker"
|
2
|
+
version "1.0"
|
3
|
+
|
4
|
+
start on filesystem or runlevel [2345]
|
5
|
+
stop on runlevel [!2345]
|
6
|
+
|
7
|
+
respawn
|
8
|
+
|
9
|
+
console log
|
10
|
+
|
11
|
+
script
|
12
|
+
home=/var/lib/vexor/worker
|
13
|
+
user=vx-worker
|
14
|
+
command=/opt/vexor/bin/worker
|
15
|
+
|
16
|
+
chdir $home
|
17
|
+
su -s /bin/sh -c "exec $command" $user
|
18
|
+
end script
|
@@ -51,11 +51,11 @@ module Vx
|
|
51
51
|
def create_message(job, status)
|
52
52
|
tm = Time.now
|
53
53
|
Message::JobStatus.new(
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
project_id: job.message.project_id,
|
55
|
+
build_id: job.message.id,
|
56
|
+
job_id: job.message.job_id,
|
57
|
+
status: status,
|
58
|
+
tm: tm.to_i,
|
59
59
|
)
|
60
60
|
end
|
61
61
|
|
data/lib/vx/worker/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
shared_examples "UpdateJobStatus message" do
|
2
|
-
its(:
|
3
|
-
its(:
|
4
|
-
its(:
|
5
|
-
its(:tm)
|
2
|
+
its(:project_id) { should eq job.message.project_id }
|
3
|
+
its(:build_id) { should eq job.message.id }
|
4
|
+
its(:job_id) { should eq job.message.job_id }
|
5
|
+
its(:tm) { should be }
|
6
6
|
end
|
data/vx-worker.gemspec
CHANGED
@@ -19,13 +19,11 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_runtime_dependency 'vx-common', "= 0.2.1"
|
22
|
-
spec.add_runtime_dependency 'vx-message', "= 0.
|
23
|
-
spec.add_runtime_dependency 'vx-container_connector', "= 0.2.
|
22
|
+
spec.add_runtime_dependency 'vx-message', "= 0.4.1"
|
23
|
+
spec.add_runtime_dependency 'vx-container_connector', "= 0.2.3"
|
24
24
|
spec.add_runtime_dependency 'vx-common-amqp', '~> 0.2.6'
|
25
25
|
spec.add_runtime_dependency 'hashr', '= 0.0.22'
|
26
26
|
|
27
27
|
spec.add_development_dependency "bundler", "~> 1.3"
|
28
28
|
spec.add_development_dependency "rake"
|
29
|
-
spec.add_development_dependency "rspec"
|
30
|
-
spec.add_development_dependency "rr"
|
31
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vx-worker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0.pre0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Galinsky
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: vx-common
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.4.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.4.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: vx-container_connector
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.2.
|
47
|
+
version: 0.2.3
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.2.
|
54
|
+
version: 0.2.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: vx-common-amqp
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,34 +108,6 @@ dependencies:
|
|
108
108
|
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rspec
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - '>='
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rr
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - '>='
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - '>='
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
111
|
description: ' ci worker '
|
140
112
|
email:
|
141
113
|
- dima.exe@gmail.com
|
@@ -150,7 +122,19 @@ files:
|
|
150
122
|
- Gemfile
|
151
123
|
- LICENSE.txt
|
152
124
|
- Rakefile
|
125
|
+
- Vagrantfile
|
153
126
|
- bin/vx-worker
|
127
|
+
- dist/build.sh
|
128
|
+
- dist/debian/changelog.mk
|
129
|
+
- dist/debian/ci_env
|
130
|
+
- dist/debian/compat
|
131
|
+
- dist/debian/control.mk
|
132
|
+
- dist/debian/postrm
|
133
|
+
- dist/debian/preinst
|
134
|
+
- dist/debian/rules
|
135
|
+
- dist/debian/script
|
136
|
+
- dist/debian/source/format
|
137
|
+
- dist/debian/upstart
|
154
138
|
- docker/.gitignore
|
155
139
|
- docker/Dockerfile
|
156
140
|
- docker/build.sh
|
@@ -226,9 +210,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
226
210
|
version: '0'
|
227
211
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
228
212
|
requirements:
|
229
|
-
- - '
|
213
|
+
- - '>'
|
230
214
|
- !ruby/object:Gem::Version
|
231
|
-
version:
|
215
|
+
version: 1.3.1
|
232
216
|
requirements: []
|
233
217
|
rubyforge_project:
|
234
218
|
rubygems_version: 2.0.14
|