poise-application-javascript 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.kitchen.travis.yml +9 -0
- data/.kitchen.yml +9 -0
- data/.travis.yml +20 -0
- data/.yardopts +7 -0
- data/Berksfile +35 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +37 -0
- data/LICENSE +201 -0
- data/README.md +132 -0
- data/Rakefile +17 -0
- data/SUPPORTERS.md +81 -0
- data/lib/poise_application_javascript.rb +23 -0
- data/lib/poise_application_javascript/app_mixin.rb +67 -0
- data/lib/poise_application_javascript/cheftie.rb +17 -0
- data/lib/poise_application_javascript/error.rb +25 -0
- data/lib/poise_application_javascript/resources.rb +22 -0
- data/lib/poise_application_javascript/resources/javascript.rb +64 -0
- data/lib/poise_application_javascript/resources/javascript_execute.rb +88 -0
- data/lib/poise_application_javascript/resources/javascript_service.rb +59 -0
- data/lib/poise_application_javascript/resources/node_package.rb +63 -0
- data/lib/poise_application_javascript/resources/npm_install.rb +45 -0
- data/lib/poise_application_javascript/resources/npm_start.rb +78 -0
- data/lib/poise_application_javascript/service_mixin.rb +57 -0
- data/lib/poise_application_javascript/version.rb +19 -0
- data/poise-application-javascript.gemspec +45 -0
- data/test/cookbooks/application_javascript_test/attributes/default.rb +17 -0
- data/test/cookbooks/application_javascript_test/metadata.rb +20 -0
- data/test/cookbooks/application_javascript_test/recipes/default.rb +32 -0
- data/test/cookbooks/application_javascript_test/recipes/express.rb +22 -0
- data/test/gemfiles/chef-12.gemfile +19 -0
- data/test/gemfiles/master.gemfile +27 -0
- data/test/integration/default/serverspec/default_spec.rb +34 -0
- data/test/integration/default/serverspec/express_spec.rb +47 -0
- data/test/spec/app_mixin_spec.rb +69 -0
- data/test/spec/resources/javascript_execute_spec.rb +46 -0
- data/test/spec/resources/javascript_service_spec.rb +28 -0
- data/test/spec/resources/javascript_spec.rb +44 -0
- data/test/spec/resources/npm_install_spec.rb +28 -0
- data/test/spec/resources/npm_start_spec.rb +38 -0
- data/test/spec/spec_helper.rb +18 -0
- metadata +204 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'poise_javascript/resources/node_package'
|
18
|
+
|
19
|
+
require 'poise_application_javascript/app_mixin'
|
20
|
+
|
21
|
+
|
22
|
+
module PoiseApplicationJavascript
|
23
|
+
module Resources
|
24
|
+
# (see NodePackage::Resource)
|
25
|
+
# @since 1.0.0
|
26
|
+
module NodePackage
|
27
|
+
# An `application_node_package` resource to install NPM packages inside
|
28
|
+
# an Application cookbook deployment.
|
29
|
+
#
|
30
|
+
# @provides application_node_package
|
31
|
+
# @action install
|
32
|
+
# @action upgrade
|
33
|
+
# @action remove
|
34
|
+
# @example
|
35
|
+
# application '/app' do
|
36
|
+
# node_package %w{grunt-cli gulp}
|
37
|
+
# end
|
38
|
+
class Resource < PoiseJavascript::Resources::NodePackage::Resource
|
39
|
+
include PoiseApplicationJavascript::AppMixin
|
40
|
+
provides(:application_node_package)
|
41
|
+
subclass_providers!
|
42
|
+
|
43
|
+
def initialize(*args)
|
44
|
+
super
|
45
|
+
# For older Chef.
|
46
|
+
@resource_name = :application_node_package
|
47
|
+
end
|
48
|
+
|
49
|
+
# #!attribute group
|
50
|
+
# Override the default group to be the app group if unspecified.
|
51
|
+
# @return [String, Integer]
|
52
|
+
attribute(:group, kind_of: [String, Integer, NilClass], default: lazy { parent && parent.group })
|
53
|
+
|
54
|
+
# #!attribute user
|
55
|
+
# Override the default user to be the app owner if unspecified.
|
56
|
+
# @return [String, Integer]
|
57
|
+
attribute(:user, kind_of: [String, Integer, NilClass], default: lazy { parent && parent.owner })
|
58
|
+
|
59
|
+
# @todo This should handle relative paths against parent.path.
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'poise_javascript/resources/npm_install'
|
18
|
+
|
19
|
+
require 'poise_application_javascript/app_mixin'
|
20
|
+
|
21
|
+
|
22
|
+
module PoiseApplicationJavascript
|
23
|
+
module Resources
|
24
|
+
# (see NpmInstall::Resource)
|
25
|
+
# @since 1.0.0
|
26
|
+
module NpmInstall
|
27
|
+
# An `application_npm_install` resource to install package
|
28
|
+
# dependencies inside an Application cookbook deployment.
|
29
|
+
#
|
30
|
+
# @provides application_npm_install
|
31
|
+
# @action install
|
32
|
+
# @example
|
33
|
+
# application '/app' do
|
34
|
+
# npm_install
|
35
|
+
# end
|
36
|
+
class Resource < PoiseJavascript::Resources::NpmInstall::Resource
|
37
|
+
include PoiseApplicationJavascript::AppMixin
|
38
|
+
provides(:application_npm_install)
|
39
|
+
subclass_providers!
|
40
|
+
|
41
|
+
# @todo This should handle relative paths against parent.path.
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'shellwords'
|
18
|
+
|
19
|
+
require 'chef/provider'
|
20
|
+
require 'chef/resource'
|
21
|
+
require 'poise'
|
22
|
+
|
23
|
+
require 'poise_application_javascript/service_mixin'
|
24
|
+
|
25
|
+
|
26
|
+
module PoiseApplicationJavascript
|
27
|
+
module Resources
|
28
|
+
# (see NpmStart::Resource)
|
29
|
+
# @since 1.0.0
|
30
|
+
module NpmStart
|
31
|
+
# An `application_npm_start` resource to create a service for a Javascript
|
32
|
+
# application using `npm start`.
|
33
|
+
#
|
34
|
+
# @provides application_npm_start
|
35
|
+
# @action enable
|
36
|
+
# @action disable
|
37
|
+
# @action start
|
38
|
+
# @action stop
|
39
|
+
# @action restart
|
40
|
+
# @action reload
|
41
|
+
# @example
|
42
|
+
# application '/app' do
|
43
|
+
# npm_start
|
44
|
+
# end
|
45
|
+
class Resource < Chef::Resource
|
46
|
+
include PoiseApplicationJavascript::ServiceMixin
|
47
|
+
provides(:application_npm_start)
|
48
|
+
|
49
|
+
# @!attribute command
|
50
|
+
# NPM sub-command to run. Defaults to `start`.
|
51
|
+
# @return [String, Array<String>]
|
52
|
+
attribute(:command, kind_of: [String, Array], default: 'start')
|
53
|
+
end
|
54
|
+
|
55
|
+
# The default provider for `application_npm_start`.
|
56
|
+
#
|
57
|
+
# @see Resource
|
58
|
+
# @provides application_npm_start
|
59
|
+
class Provider < Chef::Provider
|
60
|
+
include PoiseApplicationJavascript::ServiceMixin
|
61
|
+
provides(:application_npm_start)
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
# (see PoiseApplication::ServiceMixin#service_options)
|
66
|
+
def service_options(resource)
|
67
|
+
super
|
68
|
+
npm_cmd = [new_resource.npm_binary] + Array(new_resource.command)
|
69
|
+
resource.javascript_command(Shellwords.join(npm_cmd))
|
70
|
+
# Make sure node is on $PATH because grrr.
|
71
|
+
new_path = [::File.dirname(new_resource.javascript), (new_resource.app_state_environment_javascript['PATH'] || ENV['PATH']).to_s].join(::File::PATH_SEPARATOR)
|
72
|
+
resource.environment['PATH'] = new_path
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'poise/utils'
|
18
|
+
require 'poise_application/service_mixin'
|
19
|
+
require 'poise_languages/utils'
|
20
|
+
|
21
|
+
require 'poise_application_javascript/app_mixin'
|
22
|
+
|
23
|
+
|
24
|
+
module PoiseApplicationJavascript
|
25
|
+
# A helper mixin for Javascript service resources and providers.
|
26
|
+
#
|
27
|
+
# @since 1.0.0
|
28
|
+
module ServiceMixin
|
29
|
+
include Poise::Utils::ResourceProviderMixin
|
30
|
+
|
31
|
+
# A helper mixin for Javascript service resources.
|
32
|
+
module Resource
|
33
|
+
include PoiseApplication::ServiceMixin::Resource
|
34
|
+
include PoiseApplicationJavascript::AppMixin::Resource
|
35
|
+
end
|
36
|
+
|
37
|
+
# A helper mixin for Javascript service providers.
|
38
|
+
module Provider
|
39
|
+
include PoiseApplication::ServiceMixin::Provider
|
40
|
+
include PoiseApplicationJavascript::AppMixin::Provider
|
41
|
+
|
42
|
+
# Set up the service for running Javascript stuff.
|
43
|
+
def service_options(resource)
|
44
|
+
super
|
45
|
+
# Closure scoping for #javascript_command below.
|
46
|
+
self_ = self
|
47
|
+
# Create a new singleton method that fills in `node` for you.
|
48
|
+
resource.define_singleton_method(:javascript_command) do |val|
|
49
|
+
resource.command("#{self_.new_resource.javascript} #{PoiseLanguages::Utils.absolute_command(val, path: self_.new_resource.app_state_environment_javascript['PATH'])}")
|
50
|
+
end
|
51
|
+
# Include env vars as needed.
|
52
|
+
resource.environment.update(new_resource.parent_javascript.javascript_environment) if new_resource.parent_javascript
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
module PoiseApplicationJavascript
|
18
|
+
VERSION = '1.0.0'
|
19
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
lib = File.expand_path('../lib', __FILE__)
|
18
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
19
|
+
require 'poise_application_javascript/version'
|
20
|
+
|
21
|
+
Gem::Specification.new do |spec|
|
22
|
+
spec.name = 'poise-application-javascript'
|
23
|
+
spec.version = PoiseApplicationJavascript::VERSION
|
24
|
+
spec.authors = ['Noah Kantrowitz']
|
25
|
+
spec.email = %w{noah@coderanger.net}
|
26
|
+
spec.description = "A Chef cookbook for deploying server-side JavaScript application code."
|
27
|
+
spec.summary = spec.description
|
28
|
+
spec.homepage = 'https://github.com/poise/application_javascript'
|
29
|
+
spec.license = 'Apache 2.0'
|
30
|
+
spec.metadata['halite_name'] = 'application_javascript'
|
31
|
+
|
32
|
+
spec.files = `git ls-files`.split($/)
|
33
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
34
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
35
|
+
spec.require_paths = %w{lib}
|
36
|
+
|
37
|
+
spec.add_dependency 'halite', '~> 1.0'
|
38
|
+
spec.add_dependency 'poise', '~> 2.0'
|
39
|
+
spec.add_dependency 'poise-application', '~> 5.0'
|
40
|
+
spec.add_dependency 'poise-javascript', '~> 1.0'
|
41
|
+
spec.add_dependency 'poise-service', '~> 1.0'
|
42
|
+
|
43
|
+
spec.add_development_dependency 'poise-boiler', '~> 1.0'
|
44
|
+
spec.add_development_dependency 'poise-application-git', '~> 1.0'
|
45
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
override['poise-service']['provider'] = 'dummy'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
name 'application_javascript_test'
|
18
|
+
depends 'application_git'
|
19
|
+
depends 'application_javascript'
|
20
|
+
depends 'build-essential'
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
include_recipe 'poise-javascript'
|
18
|
+
|
19
|
+
# For netstat in serverspec.
|
20
|
+
package 'net-tools'
|
21
|
+
|
22
|
+
application '/opt/node1' do
|
23
|
+
file '/opt/node1/main.js' do
|
24
|
+
content <<-EOH
|
25
|
+
require('http').createServer(function(request, response) {
|
26
|
+
response.end('Hello world!\\n');
|
27
|
+
}).listen(8000);
|
28
|
+
EOH
|
29
|
+
end
|
30
|
+
javascript_service 'main.js'
|
31
|
+
end
|
32
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
application '/opt/test_express' do
|
18
|
+
git 'https://github.com/poise/test_express.git'
|
19
|
+
javascript '0.12'
|
20
|
+
npm_install
|
21
|
+
npm_start
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 12.0'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', github: 'chef/chef'
|
20
|
+
gem 'halite', github: 'poise/halite'
|
21
|
+
gem 'poise', github: 'poise/poise'
|
22
|
+
gem 'poise-application', github: 'poise/application'
|
23
|
+
gem 'poise-application-git', github: 'poise/application_git'
|
24
|
+
gem 'poise-boiler', github: 'poise/poise-boiler'
|
25
|
+
gem 'poise-javascript', github: 'poise/poise-javascript'
|
26
|
+
gem 'poise-languages', github: 'poise/poise-languages'
|
27
|
+
gem 'poise-service', github: 'poise/poise-service'
|