deploy_pin 1.2.3 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7675586dc8be3862feb563927693c5aea136bb26983e261d97e995f111294c99
4
- data.tar.gz: de5d52bec5a3cff487667ae8a8bdb8af75b51f754507c0fb57e2f3db2cc9fd36
3
+ metadata.gz: a760ef5554d4821d4e57eca80bd547a24f5456c7e2bd27768fc2d62db3bad25e
4
+ data.tar.gz: 33e218e88444b4362b29d7f506fcdc455f07c07b4c6760228043b5f403687948
5
5
  SHA512:
6
- metadata.gz: 06bf8fbe7319167b1b9b5f32af3a2116debf608c3d4c8d10835436d475ada3d21f2259d32bb0adb6832c973b3b1c279753a4e4a9abf0748ee11a63265575cc53
7
- data.tar.gz: ea0f4017dd721cddfcfd75b36f81332903bdc615089631569acdfa98e0e263e60559273e32f4bedc2bb1449846e4d7f25d41a390b24d548024336a5f02803e33
6
+ metadata.gz: fbae2f1401711aabf1e88e3e01daeb2b8a1e07a4f3072fb8d54eb9f0f40f0bb74a4eaaed7859cd4119574544a2814393a44dcb7297808db6f89dd7e659d03220
7
+ data.tar.gz: cb8203f11fefb55c2e525fb2b6a2ca82e0d8791b69c64717d3f830bf2c5a3cf91977cb3e3842d780aa6084171795154eb548546a610798a60c53938b35f7173b
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/deploy_pin.svg)](https://badge.fury.io/rb/deploy_pin)
2
2
  ![](https://ruby-gem-downloads-badge.herokuapp.com/deploy_pin)
3
- [![Build Status](https://travis-ci.org/skcc321/deploy_pin.svg?branch=master)](https://travis-ci.org/skcc321/deploy_pin)
3
+ ![example workflow](https://github.com/skcc321/deploy_pin/actions/workflows/verify.yml/badge.svg)
4
4
  [![Maintainability](https://api.codeclimate.com/v1/badges/c0a9ca97c1f9c0478ffc/maintainability)](https://codeclimate.com/github/skcc321/deploy_pin/maintainability)
5
5
  [![Test Coverage](https://api.codeclimate.com/v1/badges/c0a9ca97c1f9c0478ffc/test_coverage)](https://codeclimate.com/github/skcc321/deploy_pin/test_coverage)
6
6
 
data/Rakefile CHANGED
@@ -1,27 +1,7 @@
1
- begin
2
- require 'bundler/setup'
3
- rescue LoadError
4
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
- end
1
+ # frozen_string_literal: true
6
2
 
7
- require 'rdoc/task'
8
-
9
- RDoc::Task.new(:rdoc) do |rdoc|
10
- rdoc.rdoc_dir = 'rdoc'
11
- rdoc.title = 'DeployPin'
12
- rdoc.options << '--line-numbers'
13
- rdoc.rdoc_files.include('README.md')
14
- rdoc.rdoc_files.include('lib/**/*.rb')
15
- end
3
+ require 'bundler/setup'
16
4
 
17
5
  require 'bundler/gem_tasks'
18
6
 
19
- require 'rake/testtask'
20
-
21
- Rake::TestTask.new(:test) do |t|
22
- t.libs << 'test'
23
- t.pattern = 'test/**/*_test.rb'
24
- t.verbose = false
25
- end
26
-
27
- task default: :test
7
+ import 'test/dummy/Rakefile'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class DeployPin::ApplicationRecord < ActiveRecord::Base
2
4
  self.abstract_class = true
3
5
  end
@@ -3,4 +3,3 @@
3
3
  class DeployPin::Record < DeployPin::ApplicationRecord
4
4
  self.table_name = 'deploy_pins'
5
5
  end
6
-
@@ -47,22 +47,22 @@ module DeployPin
47
47
 
48
48
  private
49
49
 
50
- def files
51
- Dir["#{DeployPin.tasks_path}/*.rb"]
52
- end
50
+ def files
51
+ Dir["#{DeployPin.tasks_path}/*.rb"]
52
+ end
53
53
 
54
- def tasks
55
- files.map do |file|
56
- task = DeployPin::Task.new(file)
57
- task.parse_file
54
+ def tasks
55
+ files.map do |file|
56
+ task = DeployPin::Task.new(file)
57
+ task.parse_file
58
58
 
59
- # check if task is suitable
60
- task if task_criteria.suitable?(task)
61
- end.compact.sort # sort by group position in config
62
- end
59
+ # check if task is suitable
60
+ task if task_criteria.suitable?(task)
61
+ end.compact.sort # sort by group position in config
62
+ end
63
63
 
64
- def task_criteria
65
- @task_criteria ||= DeployPin::TaskCriteria.new(identifiers: identifiers)
66
- end
64
+ def task_criteria
65
+ @task_criteria ||= DeployPin::TaskCriteria.new(identifiers: identifiers)
66
+ end
67
67
  end
68
68
  end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DeployPin
4
+ module Database
5
+ extend self
6
+
7
+ # Run a block under a sql maximum timeout.
8
+ #
9
+ # A default timeout will be get from DeployPin.setup
10
+ #
11
+ # # config/initializers/deploy_pin.rb
12
+ # DeployPin.setup do
13
+ # statement_timeout 0.2.second # 200 ms
14
+ # end
15
+ #
16
+ # # <app root>/deploy_pin/20190401135040_task.rb
17
+ # # 20190401135040:I
18
+ # # task_title: Execute some query with timeout
19
+ #
20
+ # # === task code goes down here ===
21
+ # DeployPin::Database::execute_with_timeout do
22
+ # ActiveRecord::Base.connection.execute("select * from shipments;")
23
+ # end
24
+ #
25
+ # A timeout can be passed as param as well:
26
+ #
27
+ # DeployPin::Database::execute_with_timeout 10.minutes do
28
+ # ActiveRecord::Base.connection.execute("select * from shipments;")
29
+ # end
30
+ #
31
+ # In order to connect to multiple databases, pass the +connected_to+ keyword into the params.
32
+ # The +connected_to+ will use the +ActiveRecord::Base.connected_to+.
33
+ # To connect to a replica database, for example:
34
+ #
35
+ # DeployPin::Database::execute_with_timeout 1.seconds, connected_to: { role: :reading } do
36
+ # Shipment.all # Get all record from replica
37
+ # end
38
+ #
39
+ # Or a specific database:
40
+ #
41
+ # DeployPin::Database.execute_with_timeout 30.second, connected_to: { database: :test_mysql } do
42
+ # ActiveRecord::Base.connection.execute("<some mysql query>")
43
+ # end
44
+ def execute_with_timeout(timeout = DeployPin.statement_timeout, **params, &blk)
45
+ raise ArgumentError, 'timeout must be greater than zero' if timeout.to_f <= 0
46
+
47
+ return call_block_under_timeout(timeout, &blk) unless params.key? :connected_to
48
+
49
+ klass = params[:connected_to].key? :database ? ActiveRecord::Base : ::ApplicationRecord
50
+ klass.connected_to(**params[:connected_to]) do
51
+ call_block_under_timeout(timeout, &blk)
52
+ end
53
+ end
54
+
55
+ private
56
+
57
+ def call_block_under_timeout(timeout)
58
+ set_max_timeout(timeout)
59
+
60
+ yield
61
+ end
62
+
63
+ def set_max_timeout(timeout)
64
+ timeout_in_milliseconds = timeout.to_f.in_milliseconds.ceil # Make sure is always at least 1. 0 turns this off
65
+
66
+ timeout_statement =
67
+ if postgresql?
68
+ postgresql_timeout_statement
69
+ elsif mysql?
70
+ mysql_timeout_statement
71
+ end
72
+
73
+ connection.select_all "#{timeout_statement} #{connection.quote(timeout_in_milliseconds)}"
74
+ end
75
+
76
+ def postgresql?
77
+ connection.adapter_name =~ /postg/i
78
+ end
79
+
80
+ def postgresql_timeout_statement
81
+ "SET statement_timeout TO"
82
+ end
83
+
84
+ def mysql?
85
+ connection.adapter_name =~ /mysql/i
86
+ end
87
+
88
+ def mysql_timeout_statement
89
+ "SET max_execution_time ="
90
+ end
91
+
92
+ def connection
93
+ ActiveRecord::Base.connection
94
+ end
95
+ end
96
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module DeployPin
2
4
  class Engine < ::Rails::Engine
3
5
  isolate_namespace DeployPin
@@ -10,7 +10,7 @@ module DeployPin
10
10
  end
11
11
 
12
12
  def self.list(identifiers:)
13
- DeployPin::Collector.new(identifiers: identifiers).list do |index, count, task|
13
+ DeployPin::Collector.new(identifiers: identifiers).list do |index, _count, task|
14
14
  self.print("======= Task ##{index} ========".white)
15
15
 
16
16
  # print details
@@ -18,17 +18,17 @@ module DeployPin
18
18
  self.print("#{key}:\t\t#{value}")
19
19
  end
20
20
 
21
- self.print("")
22
- self.print("<<<")
21
+ self.print('')
22
+ self.print('<<<')
23
23
  self.print task.script.strip.green
24
- self.print(">>>")
25
- self.print("")
24
+ self.print('>>>')
25
+ self.print('')
26
26
  end
27
27
  end
28
28
 
29
29
  def self.summary(identifiers:)
30
30
  # print summary
31
- self.print("======= Summary ========")
31
+ self.print('======= Summary ========')
32
32
  self.print("tasks number: #{DeployPin::Collector.new(identifiers: identifiers).tasks_count}")
33
33
  end
34
34
 
@@ -4,17 +4,17 @@
4
4
  module DeployPin
5
5
  class Task
6
6
  attr_reader :file,
7
- :uuid,
8
- :group,
9
- :title,
10
- :script
7
+ :uuid,
8
+ :group,
9
+ :title,
10
+ :script
11
11
 
12
12
  def initialize(file)
13
13
  @file = file
14
14
  @uuid = nil
15
15
  @group = nil
16
- @title = ""
17
- @script = ""
16
+ @title = ''
17
+ @script = ''
18
18
  end
19
19
 
20
20
  def run
@@ -35,10 +35,10 @@ module DeployPin
35
35
  File.foreach(file) do |line|
36
36
  case line.strip
37
37
  when /\A# (\d+):(\w+)/
38
- @uuid = $1
39
- @group = $2
38
+ @uuid = Regexp.last_match(1)
39
+ @group = Regexp.last_match(2)
40
40
  when /\A# task_title:(.+)/
41
- @title = $1.strip
41
+ @title = Regexp.last_match(1).strip
42
42
  when /\A[^#].*/
43
43
  @script += line
44
44
  end
@@ -53,20 +53,20 @@ module DeployPin
53
53
  }
54
54
  end
55
55
 
56
- def eql?(task_b)
56
+ def eql?(other)
57
57
  # same script & different uuid
58
- script == task_b.script && uuid != task_b.uuid
58
+ script == other.script && uuid != other.uuid
59
59
  end
60
60
 
61
61
  protected
62
62
 
63
- # for sorting
64
- def <=>(task_b)
65
- group_index <=> task_b.group_index
66
- end
63
+ # for sorting
64
+ def <=>(other)
65
+ group_index <=> other.group_index
66
+ end
67
67
 
68
- def group_index
69
- DeployPin.groups.index(group)
70
- end
68
+ def group_index
69
+ DeployPin.groups.index(group)
70
+ end
71
71
  end
72
72
  end
@@ -14,16 +14,16 @@ module DeployPin
14
14
  end
15
15
 
16
16
  def suitable?(task)
17
- task_cover = ->(task, regexp) {
18
- items = identifiers.flat_map {|x| x.to_s.scan(regexp) }.flatten
17
+ task_cover = lambda { |task, regexp|
18
+ items = identifiers.flat_map { |x| x.to_s.scan(regexp) }.flatten
19
19
 
20
20
  items & [task.group, task.uuid]
21
21
  }
22
22
 
23
- return false if task_cover.(task, SKIP_REGEXEP).any?
24
- return true if task_cover.(task, FORCE_REGEXP).any?
23
+ return false if task_cover.call(task, SKIP_REGEXEP).any?
24
+ return true if task_cover.call(task, FORCE_REGEXP).any?
25
25
 
26
- task_cover.(task, COMMON_REGEXP).any? && !task.done?
26
+ task_cover.call(task, COMMON_REGEXP).any? && !task.done?
27
27
  end
28
28
  end
29
29
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module DeployPin
2
- VERSION = '1.2.3'
4
+ VERSION = '1.3.0'
3
5
  end
data/lib/deploy_pin.rb CHANGED
@@ -1,18 +1,22 @@
1
- require "deploy_pin/runner"
2
- require "deploy_pin/collector"
3
- require "deploy_pin/task"
4
- require "deploy_pin/task_criteria"
5
- require "deploy_pin/engine"
6
- require "parallel"
7
- require "ruby-progressbar"
8
- require "colorize"
1
+ # frozen_string_literal: true
2
+
3
+ require 'deploy_pin/runner'
4
+ require 'deploy_pin/collector'
5
+ require 'deploy_pin/task'
6
+ require 'deploy_pin/task_criteria'
7
+ require 'deploy_pin/engine'
8
+ require 'deploy_pin/database'
9
+ require 'parallel'
10
+ require 'ruby-progressbar'
11
+ require 'colorize'
9
12
 
10
13
  module DeployPin
11
- OPTIONS = %i(
14
+ OPTIONS = %i[
12
15
  tasks_path
13
16
  fallback_group
14
17
  groups
15
- )
18
+ statement_timeout
19
+ ].freeze
16
20
 
17
21
  OPTIONS.each do |option|
18
22
  instance_eval %{
@@ -21,7 +25,7 @@ module DeployPin
21
25
 
22
26
  @@#{option} = val
23
27
  end
24
- }
28
+ }, __FILE__, __LINE__ - 6
25
29
  end
26
30
 
27
31
  def self.setup(&block)
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class DeployPin::InstallGenerator < Rails::Generators::Base
2
4
  include Rails::Generators::Migration
3
5
 
4
6
  source_root File.expand_path('templates', __dir__)
5
- desc "Add the migration & initializer for DeployPin"
7
+ desc 'Add the migration & initializer for DeployPin'
6
8
 
7
9
  def self.next_migration_number(path)
8
10
  next_migration_number = current_migration_number(path) + 1
@@ -10,10 +12,10 @@ class DeployPin::InstallGenerator < Rails::Generators::Base
10
12
  end
11
13
 
12
14
  def copy_migrations
13
- migration_template "create_deploy_pins.rb", "db/migrate/create_deploy_pins.rb"
15
+ migration_template 'create_deploy_pins.rb', 'db/migrate/create_deploy_pins.rb'
14
16
  end
15
17
 
16
18
  def copy_initializer
17
- template "deploy_pin.rb", "config/initializers/deploy_pin.rb"
19
+ template 'deploy_pin.rb', 'config/initializers/deploy_pin.rb'
18
20
  end
19
21
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class CreateDeployPins < ActiveRecord::Migration[5.2]
2
4
  def change
3
5
  create_table :deploy_pins do |t|
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  DeployPin.setup do
4
- tasks_path "lib/deploy_pin"
5
- groups ["I", "II", "III"]
6
- fallback_group "II"
4
+ tasks_path 'lib/deploy_pin'
5
+ groups %w[I II III]
6
+ fallback_group 'II'
7
+
8
+ statement_timeout 10.minutes
7
9
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # <%= @uuid %>:<%= group %>
2
4
  # task_title: super duper task
3
5
 
@@ -9,4 +11,10 @@ Parallel.each(DeployPin::Record.where(uuid: "hello"), progress: "Doing stuff") d
9
11
  pin.update_attribute(:uuid, "new uuid")
10
12
  end
11
13
  sleep(0.2)
14
+
15
+ # DeployPin::Database::execute_with_timeout 10.minutes do
16
+ # ActiveRecord::Base.connection.execute("select * from shipments;")
17
+ # or
18
+ # Shipment.all
19
+ # end
12
20
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # <%= @uuid %>:<%= group %>
2
4
  # task_title: super duper task
3
5
 
@@ -5,3 +7,9 @@
5
7
  progressbar = ProgressBar.create(title: "Doing stuff", total: 20, format: '%t |%E | %B | %a')
6
8
 
7
9
  20.times { progressbar.increment; sleep(0.2) }
10
+
11
+ # DeployPin::Database::execute_with_timeout 10.minutes do
12
+ # ActiveRecord::Base.connection.execute("select * from shipments;")
13
+ # or
14
+ # Shipment.all
15
+ # end
@@ -1,16 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  namespace :deploy_pin do
2
- desc "run pending tasks"
3
- task :run, [:identifiers] => :environment do |t, args|
4
+ desc 'run pending tasks'
5
+ task :run, [:identifiers] => :environment do |_t, args|
4
6
  identifiers = args.identifiers
5
7
  attributes = identifiers.nil? ? DeployPin.groups : identifiers.split(/\s*,\s*/)
6
8
 
7
9
  DeployPin::Runner.run(identifiers: attributes)
8
10
  end
9
11
 
10
- task :list, [:identifiers] => :environment do |t, args|
12
+ task :list, [:identifiers] => :environment do |_t, args|
11
13
  args.with_defaults(identifiers: DeployPin.groups)
12
14
 
13
- DeployPin::Runner.list(args)
14
- DeployPin::Runner.summary(args)
15
+ DeployPin::Runner.list(**args)
16
+ DeployPin::Runner.summary(**args)
15
17
  end
16
18
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deploy_pin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
- - rafael
8
- autorequire:
7
+ - Viktor Sych
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-25 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: colorize
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.2'
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '4.2'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: parallel
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,41 +39,41 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.16'
41
41
  - !ruby/object:Gem::Dependency
42
- name: ruby-progressbar
42
+ name: rails
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.10'
47
+ version: 6.0.1
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: '1.10'
54
+ version: 6.0.1
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: ruby-progressbar
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 12.1.0
61
+ version: '1.10'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 12.1.0
68
+ version: '1.10'
69
69
  - !ruby/object:Gem::Dependency
70
- name: colorize
70
+ name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
- type: :runtime
76
+ type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
@@ -81,95 +81,75 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: simplecov
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.16.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 0.16.0
97
- - !ruby/object:Gem::Dependency
98
- name: bundler
84
+ name: minitest
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - "~>"
87
+ - - ">="
102
88
  - !ruby/object:Gem::Version
103
- version: '1.17'
89
+ version: '0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - "~>"
94
+ - - ">="
109
95
  - !ruby/object:Gem::Version
110
- version: '1.17'
96
+ version: '0'
111
97
  - !ruby/object:Gem::Dependency
112
- name: pry
98
+ name: mysql2
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - "~>"
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
- version: '0.12'
103
+ version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - "~>"
108
+ - - ">="
123
109
  - !ruby/object:Gem::Version
124
- version: '0.12'
110
+ version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
- name: minitest
112
+ name: pg
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
- - - "~>"
115
+ - - ">="
130
116
  - !ruby/object:Gem::Version
131
- version: '5.0'
117
+ version: '0'
132
118
  type: :development
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
- - - "~>"
122
+ - - ">="
137
123
  - !ruby/object:Gem::Version
138
- version: '5.0'
124
+ version: '0'
139
125
  - !ruby/object:Gem::Dependency
140
- name: mysql2
126
+ name: pry
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
- - - "~>"
129
+ - - ">="
144
130
  - !ruby/object:Gem::Version
145
- version: 0.5.2
131
+ version: '0'
146
132
  type: :development
147
133
  prerelease: false
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
- - - "~>"
136
+ - - ">="
151
137
  - !ruby/object:Gem::Version
152
- version: 0.5.2
138
+ version: '0'
153
139
  - !ruby/object:Gem::Dependency
154
- name: pg
140
+ name: rubocop
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '0.18'
160
143
  - - ">="
161
144
  - !ruby/object:Gem::Version
162
- version: 0.18.4
145
+ version: '0'
163
146
  type: :development
164
147
  prerelease: false
165
148
  version_requirements: !ruby/object:Gem::Requirement
166
149
  requirements:
167
- - - "~>"
168
- - !ruby/object:Gem::Version
169
- version: '0.18'
170
150
  - - ">="
171
151
  - !ruby/object:Gem::Version
172
- version: 0.18.4
152
+ version: '0'
173
153
  description: pin some task around deployment to execute them during deployment circle
174
154
  email:
175
155
  - skcc321@gmail.com
@@ -184,6 +164,7 @@ files:
184
164
  - app/models/deploy_pin/record.rb
185
165
  - lib/deploy_pin.rb
186
166
  - lib/deploy_pin/collector.rb
167
+ - lib/deploy_pin/database.rb
187
168
  - lib/deploy_pin/engine.rb
188
169
  - lib/deploy_pin/runner.rb
189
170
  - lib/deploy_pin/task.rb
@@ -203,7 +184,7 @@ licenses:
203
184
  - MIT
204
185
  metadata:
205
186
  allowed_push_host: https://rubygems.org
206
- post_install_message:
187
+ post_install_message:
207
188
  rdoc_options: []
208
189
  require_paths:
209
190
  - lib
@@ -218,8 +199,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
199
  - !ruby/object:Gem::Version
219
200
  version: '0'
220
201
  requirements: []
221
- rubygems_version: 3.0.6
222
- signing_key:
202
+ rubygems_version: 3.2.22
203
+ signing_key:
223
204
  specification_version: 4
224
205
  summary: pin some task around deployment
225
206
  test_files: []