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 +4 -4
- data/.rubocop.yml +0 -9
- data/.rubocop_todo.yml +5 -0
- data/Gemfile.lock +49 -8
- data/lib/generators/pg_objects/install/USAGE +9 -0
- data/lib/generators/pg_objects/install/install_generator.rb +11 -0
- data/lib/pg_objects/config.rb +15 -2
- data/lib/pg_objects/db_object.rb +17 -2
- data/lib/pg_objects/logger.rb +4 -0
- data/lib/pg_objects/manager.rb +27 -9
- data/lib/pg_objects/parser.rb +33 -1
- data/lib/pg_objects/railtie.rb +4 -2
- data/lib/pg_objects/version.rb +1 -1
- data/lib/tasks/pg_objects_tasks.rake +15 -4
- data/pg_objects.gemspec +17 -7
- metadata +49 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d783ce9eb7db27aa9eb4e53956473891342d467d6c31c023b6657404cdae167
|
4
|
+
data.tar.gz: 396ed78bc7bc02adc593c889e6abcf5127dd06648ce00276322984fe4a4f1ebe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
5
|
-
activerecord (~> 5
|
6
|
-
|
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
|
113
|
+
bundler (~> 1)
|
73
114
|
byebug
|
74
115
|
pg_objects!
|
75
|
-
rake (~> 10
|
76
|
-
rspec (~> 3
|
77
|
-
rubocop (
|
78
|
-
rubocop-rspec (
|
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
|
data/lib/pg_objects/config.rb
CHANGED
@@ -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 :
|
25
|
+
attr_accessor :before_path, :after_path, :extensions, :silent
|
14
26
|
|
15
27
|
def initialize
|
16
|
-
@
|
28
|
+
@before_path = 'db/objects/before'
|
29
|
+
@after_path = 'db/objects/after'
|
17
30
|
@extensions = ['sql']
|
18
31
|
@silent = false
|
19
32
|
end
|
data/lib/pg_objects/db_object.rb
CHANGED
@@ -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
|
-
|
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
|
data/lib/pg_objects/logger.rb
CHANGED
data/lib/pg_objects/manager.rb
CHANGED
@@ -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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
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
|
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]
|
data/lib/pg_objects/parser.rb
CHANGED
@@ -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
|
data/lib/pg_objects/railtie.rb
CHANGED
@@ -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'
|
data/lib/pg_objects/version.rb
CHANGED
@@ -1,12 +1,23 @@
|
|
1
1
|
namespace :db do
|
2
|
-
|
3
|
-
|
4
|
-
|
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
|
39
|
-
spec.add_dependency '
|
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
|
42
|
-
spec.add_development_dependency 'rake', '~> 10
|
43
|
-
spec.add_development_dependency 'rspec', '~> 3
|
44
|
-
spec.add_development_dependency 'rubocop', '
|
45
|
-
spec.add_development_dependency 'rubocop-rspec', '
|
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.
|
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-
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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: '
|
188
|
+
version: '2.5'
|
158
189
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
190
|
requirements:
|
160
191
|
- - ">="
|