pg_objects 0.2.4 → 0.3.4

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: 3303bf968bddecccd3d347c18eca15fa77ac36ac75c252ce6c959ac7ebcf8127
4
- data.tar.gz: 2c749d34ff5445612acdb8cf5e750174ae02bbe2989c2ab848371e5de2479e52
3
+ metadata.gz: 7d783ce9eb7db27aa9eb4e53956473891342d467d6c31c023b6657404cdae167
4
+ data.tar.gz: 396ed78bc7bc02adc593c889e6abcf5127dd06648ce00276322984fe4a4f1ebe
5
5
  SHA512:
6
- metadata.gz: e8a594c2efc21fc8ec15a7c74f0b113f967739b6ac2921821a4f97ded4bf59e44493262d7c8a374e7699adf6e0c612b5daa24850c58a11c6d950cb47eea5e17f
7
- data.tar.gz: a9e77ad822731da9fa9d706bba837692dc8b8744750615ecd274d50e33bb1242aac833c604798f57e6b8646ed48abaffac1f9d613932c94015db48d716afb31c
6
+ metadata.gz: 606f99d68c7ef4cd74622f0891686664b0f7445b0c9f99e31c6cb842b78104e5a64e71ecca6eeb264b04d64e3adf8693489e5931f8b8aca1fe7554f56d5fcfec
7
+ data.tar.gz: 280b63ede53a9f78efcf22797334692bf47add35e5c96a4a4b09d226ee92db49b8913666ed48754cf450f6800082be154632fca4b72435b8d0920a2fe68eae83
data/.rubocop.yml CHANGED
@@ -69,15 +69,6 @@ Style/AsciiComments:
69
69
  Enabled: false
70
70
  StyleGuide: http://relaxed.ruby.style/#styleasciicomments
71
71
 
72
- # This cop checks that comment annotation keywords are written according
73
- # to guidelines.
74
- # Style/CommentAnnotation:
75
- # Enabled: false
76
-
77
- # Document classes and non-namespace modules.
78
- Style/Documentation:
79
- Enabled: false
80
-
81
72
  # Checks if there is a magic comment to enforce string literals
82
73
  Style/FrozenStringLiteralComment:
83
74
  Enabled: false
data/.rubocop_todo.yml CHANGED
@@ -6,6 +6,11 @@
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
+ Style/Documentation:
10
+ Exclude:
11
+ - lib/pg_objects/config.rb
12
+ - spec/**/*
13
+
9
14
  Style/GuardClause:
10
15
  Exclude:
11
16
  - pg_objects.gemspec
data/Gemfile.lock CHANGED
@@ -1,13 +1,28 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pg_objects (0.2.4)
5
- activerecord (~> 5.2)
6
- rake-hooks (~> 1.2)
4
+ pg_objects (0.3.4)
5
+ activerecord (~> 5)
6
+ pg_query (~> 1)
7
+ railties (~> 5)
8
+ rake-hooks (~> 1)
7
9
 
8
10
  GEM
9
11
  remote: https://rubygems.org/
10
12
  specs:
13
+ actionpack (5.2.1)
14
+ actionview (= 5.2.1)
15
+ activesupport (= 5.2.1)
16
+ rack (~> 2.0)
17
+ rack-test (>= 0.6.3)
18
+ rails-dom-testing (~> 2.0)
19
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
20
+ actionview (5.2.1)
21
+ activesupport (= 5.2.1)
22
+ builder (~> 3.1)
23
+ erubi (~> 1.4)
24
+ rails-dom-testing (~> 2.0)
25
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
11
26
  activemodel (5.2.1)
12
27
  activesupport (= 5.2.1)
13
28
  activerecord (5.2.1)
@@ -21,17 +36,42 @@ GEM
21
36
  tzinfo (~> 1.1)
22
37
  arel (9.0.0)
23
38
  ast (2.4.0)
39
+ builder (3.2.3)
24
40
  byebug (10.0.2)
25
41
  concurrent-ruby (1.0.5)
42
+ crass (1.0.4)
26
43
  diff-lcs (1.3)
44
+ erubi (1.7.1)
27
45
  i18n (1.1.1)
28
46
  concurrent-ruby (~> 1.0)
29
47
  jaro_winkler (1.5.1)
48
+ loofah (2.2.3)
49
+ crass (~> 1.0.2)
50
+ nokogiri (>= 1.5.9)
51
+ method_source (0.9.0)
52
+ mini_portile2 (2.3.0)
30
53
  minitest (5.11.3)
54
+ nokogiri (1.8.5)
55
+ mini_portile2 (~> 2.3.0)
31
56
  parallel (1.12.1)
32
57
  parser (2.5.1.2)
33
58
  ast (~> 2.4.0)
59
+ pg_query (1.1.0)
34
60
  powerpack (0.1.2)
61
+ rack (2.0.5)
62
+ rack-test (1.1.0)
63
+ rack (>= 1.0, < 3)
64
+ rails-dom-testing (2.0.3)
65
+ activesupport (>= 4.2.0)
66
+ nokogiri (>= 1.6)
67
+ rails-html-sanitizer (1.0.4)
68
+ loofah (~> 2.2, >= 2.2.2)
69
+ railties (5.2.1)
70
+ actionpack (= 5.2.1)
71
+ activesupport (= 5.2.1)
72
+ method_source
73
+ rake (>= 0.8.7)
74
+ thor (>= 0.19.0, < 2.0)
35
75
  rainbow (3.0.0)
36
76
  rake (10.5.0)
37
77
  rake-hooks (1.2.3)
@@ -60,6 +100,7 @@ GEM
60
100
  rubocop-rspec (1.30.0)
61
101
  rubocop (>= 0.58.0)
62
102
  ruby-progressbar (1.10.0)
103
+ thor (0.20.0)
63
104
  thread_safe (0.3.6)
64
105
  tzinfo (1.2.5)
65
106
  thread_safe (~> 0.1)
@@ -69,13 +110,13 @@ PLATFORMS
69
110
  ruby
70
111
 
71
112
  DEPENDENCIES
72
- bundler (~> 1.16)
113
+ bundler (~> 1)
73
114
  byebug
74
115
  pg_objects!
75
- rake (~> 10.0)
76
- rspec (~> 3.0)
77
- rubocop (~> 0.59)
78
- rubocop-rspec (~> 1.30)
116
+ rake (~> 10)
117
+ rspec (~> 3)
118
+ rubocop (>= 0.59)
119
+ rubocop-rspec (>= 1.30)
79
120
 
80
121
  BUNDLED WITH
81
122
  1.16.6
@@ -0,0 +1,9 @@
1
+ Description:
2
+ Creates directories structure to store database objects. By default it will be created under `RAILS_ROOT/db/objects`.
3
+
4
+ If you're going to change default path don't forget to change configuration as well.
5
+
6
+ Examples:
7
+ `rails generate pg_objects:install`
8
+
9
+ `rails generate pg_objects:install --help`
@@ -0,0 +1,11 @@
1
+ module PgObjects
2
+ ##
3
+ # Creates default directories structure
4
+ class InstallGenerator < ::Rails::Generators::Base
5
+ def create_directories
6
+ empty_directory 'db/objects'
7
+ empty_directory 'db/objects/before'
8
+ empty_directory 'db/objects/after'
9
+ end
10
+ end
11
+ end
@@ -1,4 +1,16 @@
1
1
  module PgObjects
2
+ ##
3
+ # Use to set custom configuration:
4
+ #
5
+ # PgObjects.configure do |config|
6
+ # # use relative from RAILS_ROOT
7
+ # config.before_path = 'db/alternate/before'
8
+ # # or full (not recommended)
9
+ # config.after_path = '/var/tmp/alternate/after'
10
+ # config.extensions = ['sql', 'txt']
11
+ # # suppress output to console
12
+ # config.silent = true
13
+ # end
2
14
  class << self
3
15
  def configure
4
16
  yield config
@@ -10,10 +22,11 @@ module PgObjects
10
22
  end
11
23
 
12
24
  class Config
13
- attr_accessor :directories, :extensions, :silent
25
+ attr_accessor :before_path, :after_path, :extensions, :silent
14
26
 
15
27
  def initialize
16
- @directories = ['db/objects']
28
+ @before_path = 'db/objects/before'
29
+ @after_path = 'db/objects/after'
17
30
  @extensions = ['sql']
18
31
  @silent = false
19
32
  end
@@ -1,14 +1,29 @@
1
1
  module PgObjects
2
+ ##
3
+ # Represents DB object as it is described in file
4
+ #
5
+ # [name] name of file without extension
6
+ # [full_name] full pathname of file
7
+ # [object_name] name of function, trigger etc. if it was successfully parsed, otherwise - nil
2
8
  class DbObject
3
- attr_reader :sql_query, :name, :dependencies
9
+ attr_reader :sql_query, :name, :full_name, :object_name, :dependencies
4
10
  attr_accessor :status
5
11
 
6
12
  def initialize(file_path)
13
+ @full_name = file_path
7
14
  @name = File.basename file_path, '.*'
8
15
  @sql_query = File.read file_path
9
- @dependencies = Parser.fetch_dependencies @sql_query
16
+
17
+ directives = Parser.fetch_directives @sql_query
18
+ @dependencies = directives[:depends_on]
19
+ @multistatement = directives[:multistatement]
20
+ @object_name = Parser.fetch_object_name @sql_query
10
21
 
11
22
  @status = :pending
12
23
  end
24
+
25
+ def multistatement?
26
+ @multistatement
27
+ end
13
28
  end
14
29
  end
@@ -1,4 +1,8 @@
1
1
  module PgObjects
2
+ ##
3
+ # Console output
4
+ #
5
+ # Passs +true+ to constructor to suppress output
2
6
  class Logger
3
7
  attr_reader :silent
4
8
 
@@ -1,4 +1,14 @@
1
1
  module PgObjects
2
+ ##
3
+ # Manages process to create objects
4
+ #
5
+ # Usage:
6
+ #
7
+ # Manager.new.load_files(:before).create_objects
8
+ #
9
+ # or
10
+ #
11
+ # Manager.new.load_files(:after).create_objects
2
12
  class Manager
3
13
  attr_reader :objects, :config, :log
4
14
 
@@ -10,11 +20,14 @@ module PgObjects
10
20
  @log = Logger.new(config.silent)
11
21
  end
12
22
 
13
- def load_files
14
- config.directories.each do |dir|
15
- Dir[File.join(dir, '**', "*.{#{config.extensions.join(',')}}")].each do |path|
16
- @objects << PgObjects::DbObject.new(path)
17
- end
23
+ ##
24
+ # event: +:before+ or +:after+
25
+ #
26
+ # used to reference configuration settings +before_path+ and +after_path+
27
+ def load_files(event)
28
+ dir = config.send "#{event}_path"
29
+ Dir[File.join(dir, '**', "*.{#{config.extensions.join(',')}}")].each do |path|
30
+ @objects << PgObjects::DbObject.new(path)
18
31
  end
19
32
 
20
33
  self
@@ -28,26 +41,31 @@ module PgObjects
28
41
 
29
42
  def create_object(obj)
30
43
  return if obj.status == :done
31
- raise CyclicDependencyError if obj.status == :processing
44
+ raise CyclicDependencyError, obj.name if obj.status == :processing
32
45
 
33
46
  obj.status = :processing
34
47
 
35
48
  create_dependencies(obj.dependencies)
36
49
 
37
50
  log.write("creating #{obj.name}")
38
- ActiveRecord::Base.connection.exec_query obj.sql_query
51
+ execute_query(obj)
39
52
 
40
53
  obj.status = :done
41
54
  end
42
55
 
56
+ def execute_query(obj)
57
+ exec_method = obj.multistatement? ? :execute : :exec_query
58
+ ActiveRecord::Base.connection.send exec_method, obj.sql_query
59
+ end
60
+
43
61
  def create_dependencies(dependencies)
44
62
  dependencies.each { |dep_name| create_object find_object(dep_name) }
45
63
  end
46
64
 
47
65
  def find_object(dep_name)
48
- result = @objects.select { |obj| obj.name == dep_name }
66
+ result = @objects.select { |obj| [obj.name, obj.full_name, obj.object_name].compact.include? dep_name }
49
67
 
50
- raise AmbiguousDependencyError if result.size > 1
68
+ raise AmbiguousDependencyError, dep_name if result.size > 1
51
69
  raise DependencyNotExistError, dep_name if result.empty?
52
70
 
53
71
  result[0]
@@ -1,8 +1,40 @@
1
+ require 'pg_query'
2
+
1
3
  module PgObjects
4
+ ##
5
+ # Reads directives from SQL-comments
6
+ #
7
+ # --!depends_on [name_of_dependency]
8
+ #
9
+ # name_of_dependency: short or full name of object as well as object_name
10
+ #
11
+ # --!multistatement
12
+ #
13
+ # use when there are more than one SQL command in object file
2
14
  class Parser
3
15
  class << self
16
+ def fetch_directives(text)
17
+ {
18
+ depends_on: fetch_dependencies(text),
19
+ multistatement: fetch_multistatement(text)
20
+ }
21
+ end
22
+
23
+ def fetch_object_name(text)
24
+ parsed = PgQuery.parse(text).tree.dig(0, 'RawStmt', 'stmt')
25
+ parsed.dig('CreateTrigStmt', 'trigname') || parsed.dig('CreateFunctionStmt', 'funcname', 0, 'String', 'str')
26
+ rescue PgQuery::ParseError
27
+ nil
28
+ end
29
+
30
+ private
31
+
4
32
  def fetch_dependencies(text)
5
- text.split("\n").select { |ln| ln =~ /^(--|#)!/ }.map { |ln| ln.split(' ')[1] if ln =~ /!depends_on/ }
33
+ text.split("\n").select { |ln| ln =~ /^(--|#)!/ }.map { |ln| ln.split(' ')[1] if ln =~ /!depends_on/ }.compact
34
+ end
35
+
36
+ def fetch_multistatement(text)
37
+ text.split("\n").select { |ln| ln =~ /^(--|#)!/ }.select { |ln| ln =~ /!multistatement/ }.present?
6
38
  end
7
39
  end
8
40
  end
@@ -1,7 +1,9 @@
1
1
  module PgObjects
2
+ ##
3
+ # Brings rake tasks to rails app
2
4
  class Railtie < Rails::Railtie
3
- initializer 'pg_objects.initialization' do |app|
4
- end
5
+ # initializer 'pg_objects.initialization' do |app|
6
+ # end
5
7
 
6
8
  rake_tasks do
7
9
  load 'tasks/pg_objects_tasks.rake'
@@ -1,3 +1,3 @@
1
1
  module PgObjects
2
- VERSION = '0.2.4'.freeze
2
+ VERSION = '0.3.4'.freeze
3
3
  end
@@ -1,12 +1,23 @@
1
1
  namespace :db do
2
- desc 'Generate all the database objects of the current project'
3
- task create_objects: :environment do
4
- PgObjects::Manager.new.load_files.create_objects
2
+ namespace :create_objects do
3
+ desc 'Create all the database objects from "before" folder'
4
+ task before: :environment do
5
+ PgObjects::Manager.new.load_files(:before).create_objects
6
+ end
7
+
8
+ desc 'Create all the database objects from "after" folder'
9
+ task after: :environment do
10
+ PgObjects::Manager.new.load_files(:after).create_objects
11
+ end
5
12
  end
6
13
  end
7
14
 
8
15
  require 'rake/hooks'
9
16
 
10
17
  before 'db:migrate' do
11
- Rake::Task['db:create_objects'].invoke
18
+ Rake::Task['db:create_objects:before'].invoke
19
+ end
20
+
21
+ after 'db:migrate' do
22
+ Rake::Task['db:create_objects:after'].invoke
12
23
  end
data/pg_objects.gemspec CHANGED
@@ -11,6 +11,8 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = %q(Simple manager for PostgreSQL objects like triggers and functions)
12
12
  spec.homepage = 'https://github.com/marinazzio/pg_objects'
13
13
 
14
+ spec.required_ruby_version = '>= 2.5'
15
+
14
16
  spec.metadata = {
15
17
  'bug_tracker_uri' => 'https://github.com/marinazzio/pg_objects/issues',
16
18
  'documentation_uri' => 'https://github.com/marinazzio/pg_objects/blob/master/README.md',
@@ -18,6 +20,12 @@ Gem::Specification.new do |spec|
18
20
  'source_code_uri' => 'https://github.com/marinazzio/pg_objects'
19
21
  }
20
22
 
23
+ spec.post_install_message = %q(
24
+ Now execute this to create directories structure:
25
+
26
+ $ bundle exec rails generate pg_objects:install
27
+ )
28
+
21
29
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
22
30
  # to allow pushing to a single host or delete this section to allow pushing to any host.
23
31
  if spec.respond_to?(:metadata)
@@ -35,12 +43,14 @@ Gem::Specification.new do |spec|
35
43
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
36
44
  spec.require_paths = ['lib']
37
45
 
38
- spec.add_dependency 'activerecord', '~> 5.2'
39
- spec.add_dependency 'rake-hooks', '~> 1.2'
46
+ spec.add_dependency 'activerecord', '~> 5'
47
+ spec.add_dependency 'pg_query', '~> 1'
48
+ spec.add_dependency 'railties', '~> 5'
49
+ spec.add_dependency 'rake-hooks', '~> 1'
40
50
 
41
- spec.add_development_dependency 'bundler', '~> 1.16'
42
- spec.add_development_dependency 'rake', '~> 10.0'
43
- spec.add_development_dependency 'rspec', '~> 3.0'
44
- spec.add_development_dependency 'rubocop', '~> 0.59'
45
- spec.add_development_dependency 'rubocop-rspec', '~> 1.30'
51
+ spec.add_development_dependency 'bundler', '~> 1'
52
+ spec.add_development_dependency 'rake', '~> 10'
53
+ spec.add_development_dependency 'rspec', '~> 3'
54
+ spec.add_development_dependency 'rubocop', '>= 0.59'
55
+ spec.add_development_dependency 'rubocop-rspec', '>= 1.30'
46
56
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Kiselyov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-23 00:00:00.000000000 Z
11
+ date: 2018-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,96 +16,124 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: '5'
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: '5.2'
26
+ version: '5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pg_query
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: railties
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rake-hooks
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: '1.2'
61
+ version: '1'
34
62
  type: :runtime
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: '1.2'
68
+ version: '1'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: bundler
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
73
  - - "~>"
46
74
  - !ruby/object:Gem::Version
47
- version: '1.16'
75
+ version: '1'
48
76
  type: :development
49
77
  prerelease: false
50
78
  version_requirements: !ruby/object:Gem::Requirement
51
79
  requirements:
52
80
  - - "~>"
53
81
  - !ruby/object:Gem::Version
54
- version: '1.16'
82
+ version: '1'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: rake
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
87
  - - "~>"
60
88
  - !ruby/object:Gem::Version
61
- version: '10.0'
89
+ version: '10'
62
90
  type: :development
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
94
  - - "~>"
67
95
  - !ruby/object:Gem::Version
68
- version: '10.0'
96
+ version: '10'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: rspec
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: '3.0'
103
+ version: '3'
76
104
  type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: '3.0'
110
+ version: '3'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rubocop
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
- - - "~>"
115
+ - - ">="
88
116
  - !ruby/object:Gem::Version
89
117
  version: '0.59'
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
- - - "~>"
122
+ - - ">="
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0.59'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: rubocop-rspec
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
- - - "~>"
129
+ - - ">="
102
130
  - !ruby/object:Gem::Version
103
131
  version: '1.30'
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
- - - "~>"
136
+ - - ">="
109
137
  - !ruby/object:Gem::Version
110
138
  version: '1.30'
111
139
  description:
@@ -127,6 +155,8 @@ files:
127
155
  - Rakefile
128
156
  - bin/console
129
157
  - bin/setup
158
+ - lib/generators/pg_objects/install/USAGE
159
+ - lib/generators/pg_objects/install/install_generator.rb
130
160
  - lib/pg_objects.rb
131
161
  - lib/pg_objects/config.rb
132
162
  - lib/pg_objects/db_object.rb
@@ -146,7 +176,8 @@ metadata:
146
176
  homepage_uri: https://github.com/marinazzio/pg_objects
147
177
  source_code_uri: https://github.com/marinazzio/pg_objects
148
178
  allowed_push_host: https://rubygems.org
149
- post_install_message:
179
+ post_install_message: "\n Now execute this to create directories structure:\n\n
180
+ \ $ bundle exec rails generate pg_objects:install\n "
150
181
  rdoc_options: []
151
182
  require_paths:
152
183
  - lib
@@ -154,7 +185,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
154
185
  requirements:
155
186
  - - ">="
156
187
  - !ruby/object:Gem::Version
157
- version: '0'
188
+ version: '2.5'
158
189
  required_rubygems_version: !ruby/object:Gem::Requirement
159
190
  requirements:
160
191
  - - ">="