lucy_dockerunner 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53e94959b2b2e657d75c97d7e4c3d7657d712df97c12177d83e3410402691705
4
- data.tar.gz: d18ce98ae20af0851862335e5b09864c5a3ac215319154273ed8044b309274a1
3
+ metadata.gz: ed51fadc53b795aa23350c7ce49b87d25234cee22ed9a65d310815077f5b8972
4
+ data.tar.gz: ca61bacb4fc54f6432ddb5bca8167343881410ac2ae4eb7198c824dd91c5d20d
5
5
  SHA512:
6
- metadata.gz: a2d9027e40592cec52e4b9701ffcf26f654b2d75661f19b6d5a25ccfa3353840e51a16cae3c050130222db8df87bfc49d29102e6bd1cc44b2ea6c9b21375e6c3
7
- data.tar.gz: f7d6fee82bb28d4060a93cc0889678b1f415a96e14fb0ee136d53ab621c790e1ef4df799ebd36268cc312483fd41e9f7aaf25d4ce8fda15cf9c5844733c2ad6f
6
+ metadata.gz: 8a4f5083d80a651b373d23cac7edead9f248defe9a2590c8653ed3f9bfc63094ed8dc8ba6d12f6bf1c107bd816442398bcf18b88164fe96657377cbdf03a9e6e
7
+ data.tar.gz: c9be619deded43389003507a4c2893cb602be2fd35511c2c6873c00ca36a6d9f20c4d24ec05b630f1104d3544b653f3805d3a7d36b0f54c96469cc5b922fedd3
data/.rubocop.yml CHANGED
@@ -1,5 +1,7 @@
1
1
  AllCops:
2
2
  TargetRubyVersion: 2.6
3
+ SuggestExtensions: false
4
+ NewCops: enable
3
5
 
4
6
  Style/StringLiterals:
5
7
  Enabled: true
@@ -10,4 +12,9 @@ Style/StringLiteralsInInterpolation:
10
12
  EnforcedStyle: double_quotes
11
13
 
12
14
  Layout/LineLength:
13
- Max: 120
15
+ Max: 180
16
+
17
+ Metrics/BlockLength:
18
+ Exclude:
19
+ - 'spec/**/*'
20
+ - 'lib/tasks/**/*'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lucy_dockerunner (0.1.4)
4
+ lucy_dockerunner (0.1.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # LucyDockerunner
2
2
 
3
- Lucy Dockerunner is a Ruby gem that provides a simple wrapper around the Docker Compose CLI to make it easier to run Docker Compose commands from Ruby.
3
+ Lucy Dockerunner is a Ruby gem that provides a simple wrapper around the Docker Compose CLI to make it easier to run Docker Compose commands from Ruby On Rails projects.
4
4
 
5
5
  [![Gem Version](https://badge.fury.io/rb/lucy_dockerunner.svg)](https://badge.fury.io/rb/lucy_dockerunner)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -8,6 +8,8 @@ Lucy Dockerunner is a Ruby gem that provides a simple wrapper around the Docker
8
8
 
9
9
  Ruby version: >= 2.6.0
10
10
 
11
+ This gem version: 0.1.4
12
+
11
13
  ## Installation
12
14
 
13
15
  You can install the gem by executing:
@@ -18,6 +20,15 @@ Or add it to your Gemfile:
18
20
 
19
21
  gem 'lucy_dockerunner'
20
22
 
23
+ ## Usage
24
+
25
+ ### Add the following code to your Rakefile to load the tasks
26
+ ````ruby
27
+ require 'lucy_dockerunner'
28
+
29
+ LucyDockerunner.load_tasks
30
+ ````
31
+
21
32
  ###### Docker actions
22
33
  * `rake compose:install` - build docker compose and migrate the database
23
34
  * `rake compose:build` - build docker compose services
@@ -78,7 +89,7 @@ http://localhost
78
89
 
79
90
 
80
91
  ## References
81
- The code code inside the 'lib/rake/hooks.rb' file is based on the code of the [rake-hooks](https://github.com/guillermo/rake-hooks) from Guillermo Iguaran, Joel Moss as described in the [Ruby Toolbox](https://www.ruby-toolbox.com/projects/rake-hooks) page.
92
+ The code code inside the 'lib/rake/lucyd_hooks.rb' file is based on the code of the [rake-hooks](https://github.com/guillermo/rake-hooks) from Guillermo Iguaran, Joel Moss as described in the [Ruby Toolbox](https://www.ruby-toolbox.com/projects/rake-hooks) page.
82
93
  ## Contributing
83
94
 
84
95
  Bug reports and pull requests are welcome on GitHub at https://github.com/JesusGautamah/lucy_dockerunner. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/JesusGautamah/lucy_dockerunner/blob/master/CODE_OF_CONDUCT.md).
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LucyDockerunner
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.6"
5
5
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # from https://github.com/guillermo/rake-hooks, authors Guillermo Iguaran, Joel Moss
4
+ module Rake
5
+ # module Rake::Hooks
6
+ module LucydHooks
7
+ def bef(*task_names, &new_task)
8
+ task_names.each do |task_name|
9
+ old_task = Rake.application.instance_variable_get("@tasks").delete(task_name.to_s)
10
+ next unless old_task
11
+
12
+ desc old_task.full_comment if old_task.respond_to?(:full_comment)
13
+ task task_name => old_task.prerequisites do
14
+ new_task.call
15
+ old_task.invoke
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ Rake::DSL.include Rake::LucydHooks if defined?(Rake::DSL)
22
+ include Rake::LucydHooks unless self.class.included_modules.include?(Rake::LucydHooks)
23
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "rake"
4
4
  require_relative "task_helpers/compose_taskhelper"
5
- require_relative "../rake/hooks"
5
+ require_relative "../rake/lucyd_hooks"
6
6
 
7
7
  def tasks_names
8
8
  @tasks_names = %w[install build up down restart clean_all clean_volumes clean_orphans clean_images clean_networks
@@ -187,8 +187,10 @@ end
187
187
 
188
188
  tasks_names.each do |task|
189
189
  before_action = "#{namesp}:#{task}"
190
- before before_action do
191
- dockerfile_checker ? abort("Dockerfile not found.\nYou must have a Dockerfile file.") : nil
192
- compose_checker ? (abort "Compose file not found.\nFor development, you must have a #{dev_compose_file} file.") : nil
190
+ bef before_action do
191
+ docker_abort_error = "Dockerfile not found.\nYou must have a Dockerfile file."
192
+ compose_abort_error = "Compose file not found.\nFor development, you must have a #{dev_compose_file} file."
193
+ dockerfile_checker ? abort(docker_abort_error) : puts("Dockerfile found.")
194
+ compose_checker ? abort(compose_abort_error) : puts("Compose file found.")
193
195
  end
194
196
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rake"
4
+ require_relative "task_helpers/compose_taskhelper"
5
+ require_relative "../rake/lucyd_hooks"
6
+
7
+ def task_helper
8
+ @task_helper ||= TaskHelpers::ComposeTaskhelper.new
9
+ end
10
+
11
+ def compose_command
12
+ @compose_command ||= task_helper.compose_command
13
+ end
14
+
15
+ namespace :compose_assets do
16
+ task :precompile do
17
+ puts "Precompiling Assets..."
18
+ system "sudo #{compose_command} run web rake assets:precompile"
19
+ puts "Precompiling Assets... Done!"
20
+ end
21
+
22
+ task :clean do
23
+ puts "Cleaning Assets..."
24
+ system "sudo #{compose_command} run web rake assets:clean"
25
+ puts "Cleaning Assets... Done!"
26
+ end
27
+
28
+ task :clobber do
29
+ puts "Clobbering Assets..."
30
+ system "sudo #{compose_command} run web rake assets:clobber"
31
+ puts "Clobbering Assets... Done!"
32
+ end
33
+ end
@@ -8,7 +8,7 @@ def task_helper
8
8
  end
9
9
 
10
10
  def compose_command
11
- @compose_comand ||= task_helper.compose_command
11
+ @compose_command ||= task_helper.compose_command
12
12
  end
13
13
 
14
14
  namespace :compose_db do
@@ -8,7 +8,7 @@ def task_helper
8
8
  end
9
9
 
10
10
  def compose_command
11
- @compose_comand ||= task_helper.compose_command
11
+ @compose_command ||= task_helper.compose_command
12
12
  end
13
13
 
14
14
  namespace :compose_logs do
@@ -38,7 +38,8 @@ namespace :compose_prod do
38
38
  end
39
39
 
40
40
  task :install do
41
- puts "Installing Blockchain and Database Containers \nWARNING: This will delete all your data, and you are running this in production"
41
+ puts "Installing Blockchain and Database Containers \n
42
+ WARNING: This will delete all your data, and you are running this in production"
42
43
  # ask in terminal if you want to continue
43
44
  choice = ask("Are you sure you want to continue? (y/n)")
44
45
  if choice == "y"
@@ -241,8 +242,10 @@ end
241
242
 
242
243
  tasks_names.each do |task|
243
244
  before_action = "#{namesp}:#{task}"
244
- before before_action do
245
- dockerfile_checker ? abort("Dockerfile not found.\nYou must have a Dockerfile file.") : nil
246
- compose_checker ? (abort "Compose file not found.\nFor development, you must have a #{compose_file} file.") : nil
245
+ bef before_action do
246
+ docker_abort_error = "Dockerfile not found.\nYou must have a Dockerfile file."
247
+ compose_abort_error = "Compose file not found.\nYou must have a docker-compose.prod.yml file."
248
+ dockerfile_checker ? abort(docker_abort_error) : puts("Dockerfile found")
249
+ compose_checker ? abort(compose_abort_error) : puts("Compose Production file found")
247
250
  end
248
251
  end
@@ -8,7 +8,7 @@ def task_helper
8
8
  end
9
9
 
10
10
  def compose_command
11
- @compose_comand ||= task_helper.compose_command
11
+ @compose_command ||= task_helper.compose_command
12
12
  end
13
13
 
14
14
  namespace :compose_test do
@@ -4,9 +4,10 @@ require "English"
4
4
  require_relative "taskhelper"
5
5
 
6
6
  module TaskHelpers
7
+ # ComposeTaskhelper
7
8
  class ComposeTaskhelper < TaskHelpers::Taskhelper
8
9
  def compose_command
9
- @compose_comand ||= compose_command_finder
10
+ @compose_command ||= compose_command_finder
10
11
  end
11
12
 
12
13
  private
@@ -17,9 +18,9 @@ module TaskHelpers
17
18
  system "#{command} --version > /dev/null 2>&1"
18
19
  return command if $CHILD_STATUS.success?
19
20
 
20
- command = false unless $CHILD_STATUS.success?
21
+ command = false
22
+ raise ComposeError if command == false
21
23
  end
22
- raise ComposeError unless command == false
23
24
  end
24
25
  end
25
26
  end
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TaskHelpers
4
+ # Taskhelper
4
5
  class Taskhelper
6
+ # Compose Error
5
7
  class ComposeError < StandardError
6
8
  def initialize(message = "Docker Compose is not installed")
7
9
  super
@@ -10,15 +12,16 @@ module TaskHelpers
10
12
 
11
13
  private
12
14
 
13
- def dev_error(e)
15
+ def dev_error(error)
14
16
  return unless env_acceptable?
15
17
 
16
- puts "#{e.class}: #{e.message}"
17
- puts e.backtrace
18
+ puts "#{error.class}: #{error.message}"
19
+ puts error.backtrace
18
20
  end
19
21
 
20
22
  def env_acceptable?
21
- Rails.env.development? || Rails.env.test?
23
+ # Rails.env.development? || Rails.env.test?
24
+ true
22
25
  end
23
26
  end
24
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucy_dockerunner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - JesusGautamah
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-13 00:00:00.000000000 Z
11
+ date: 2023-02-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |-
14
14
  This gem is a tool to run docker containers with rake commands, good for CI/CD and Rails projects.
@@ -32,9 +32,10 @@ files:
32
32
  - Rakefile
33
33
  - lib/lucy_dockerunner.rb
34
34
  - lib/lucy_dockerunner/version.rb
35
- - lib/rake/hooks.rb
35
+ - lib/rake/lucyd_hooks.rb
36
36
  - lib/tasks/.keep
37
37
  - lib/tasks/compose.rake
38
+ - lib/tasks/compose_assets.rake
38
39
  - lib/tasks/compose_db.rake
39
40
  - lib/tasks/compose_logs.rake
40
41
  - lib/tasks/compose_prod.rake
@@ -50,6 +51,7 @@ metadata:
50
51
  homepage_uri: https://github.com/JesusGautamah/lucy_dockerunner
51
52
  source_code_uri: https://github.com/JesusGautamah/lucy_dockerunner
52
53
  changelog_uri: https://github.com/JesusGautamah/lucy_dockerunner/blob/master/CHANGELOG.md
54
+ rubygems_mfa_required: 'true'
53
55
  post_install_message:
54
56
  rdoc_options: []
55
57
  require_paths:
@@ -65,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
67
  - !ruby/object:Gem::Version
66
68
  version: '0'
67
69
  requirements: []
68
- rubygems_version: 3.3.26
70
+ rubygems_version: 3.4.1
69
71
  signing_key:
70
72
  specification_version: 4
71
73
  summary: This gem is a tool to run docker containers with rake commands, good for
data/lib/rake/hooks.rb DELETED
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Rake::Hooks from https://github.com/guillermo/rake-hooks, authors Guillermo Iguaran, Joel Moss
4
- module Rake
5
- module Hooks
6
- def before(*task_names, &new_task)
7
- task_names.each do |task_name|
8
- old_task = Rake.application.instance_variable_get("@tasks").delete(task_name.to_s)
9
- next unless old_task
10
-
11
- desc old_task.full_comment if old_task.respond_to?(:full_comment)
12
- task task_name => old_task.prerequisites do
13
- new_task.call
14
- old_task.invoke
15
- end
16
- end
17
- end
18
-
19
- def after(*task_names, &new_task)
20
- options = task_names.last.is_a?(Hash) ? task_names.pop : {}
21
- ignore_exceptions = options.delete(:ignore_exceptions) || false
22
-
23
- task_names.each do |task_name|
24
- old_task = Rake.application.instance_variable_get("@tasks").delete(task_name.to_s)
25
- next unless old_task
26
-
27
- desc old_task.full_comment if old_task.respond_to?(:full_comment)
28
- task task_name => old_task.prerequisites do
29
- begin
30
- old_task.invoke
31
- rescue StandardError
32
- raise unless ignore_exceptions
33
- end
34
-
35
- new_task.call
36
- end
37
- end
38
- end
39
- end
40
- end
41
-
42
- Rake::DSL.include Rake::Hooks if defined?(Rake::DSL)
43
- include Rake::Hooks unless self.class.included_modules.include?(Rake::Hooks)