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