pg_objects 0.2.4 → 0.3.4

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: 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
  - - ">="