postspec 0.2.5 → 0.3.1

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: d9e60d04517c544252ab66c95f0b5d19a5e8fa303673d0252ac4e47f3303d719
4
- data.tar.gz: 69555a09052ceebd4046dda3e7dda73446c1272dcbc59f3d2cc6080b99e9cc6e
3
+ metadata.gz: ba916d9dadf392677f5d57fa0ddbdfab2458a122c4c6c286a1be996602db70c8
4
+ data.tar.gz: cff38fe2468820458869459422acd2a40f066c5e2f7a070c0c9b481e13c9612d
5
5
  SHA512:
6
- metadata.gz: d79159dd929c7402275367e5c3e03229576e88813f72ac4319213b96683dc8c3195cd6c97fe05ddafed5c12234f177d9208c0eec578a9ab875b03e9c5a3ed1e7
7
- data.tar.gz: 51e5c7f1368122938d304c8c26e7bfd5b87e733622c404285b60a70df267210875199dcd5f65121357aba19ca85e2969574be0f370c486e90b6efd9ed9c68f7c
6
+ metadata.gz: 02a5ccb6c9451c24d1ad2f4b7c8cc5a1fd46b9aecbe1acfbf3ccd3eb47cd59b0be707fa522cbe88d86299e1312c6a7a3f03aaaa7f69506aed8aef82f5be0eb37
7
+ data.tar.gz: 5a0c49a71f4a9b007de038e49f490639cfc16b3a120596185059b0e4ad823cb744054848130f99ddfe5946ed58d4352454503f992d1b900a0066c3f86d02169a
@@ -1,7 +1,7 @@
1
1
  # Used to initialize postspec from spec/spec_helper.rb or spec/postspec_helper.rb
2
2
  #
3
3
  module Postspec
4
- Config = Struct.new(:database, :mode, :reflections, :anchors, :fail_fast, :ignore)
4
+ Config = Struct.new(:database, :mode, :reflections, :anchors, :fail_fast, :ignore, :cache)
5
5
 
6
6
  @database = nil
7
7
  @mode = nil
@@ -9,6 +9,7 @@ module Postspec
9
9
  @anchors = nil
10
10
  @fail_fast = nil
11
11
  @ignore = nil
12
+ @cache = nil
12
13
 
13
14
  DEFAULT_MODE = :empty
14
15
  DEFAULT_FAIL_FAST = true
@@ -20,9 +21,10 @@ module Postspec
20
21
  def self.anchors() @anchors end
21
22
  def self.fail_fast() @fail_fast end
22
23
  def self.ignore() @ignore end
24
+ def self.cache() @cache end
23
25
 
24
26
  def self.configure(&block)
25
- config = Config.new(@database, DEFAULT_MODE, nil, nil, DEFAULT_FAIL_FAST, DEFAULT_IGNORE)
27
+ config = Config.new(@database, DEFAULT_MODE, nil, nil, DEFAULT_FAIL_FAST, DEFAULT_IGNORE, nil)
26
28
  yield(config)
27
29
  @database = config.database
28
30
  @mode = config.mode || DEFAULT_MODE
@@ -30,6 +32,7 @@ module Postspec
30
32
  @anchors = config.anchors
31
33
  @fail_fast = config.fail_fast || DEFAULT_FAIL_FAST
32
34
  @ignore = config.ignore || DEFAULT_IGNORE # FIXME: Why not rely on Config defaults?
35
+ @cache = config.cache
33
36
  self
34
37
  end
35
38
 
@@ -37,7 +40,7 @@ module Postspec
37
40
  !@database.nil? or raise Error, "Database unspecified"
38
41
  @postspec ||= Postspec.new(
39
42
  PgConn.new(@database),
40
- mode: mode, reflector: @reflections, anchors: @anchors, fail: @fail_fast, ignore: @ignore)
43
+ mode: mode, reflector: @reflections, anchors: @anchors, fail: @fail_fast, ignore: @ignore, cache: cache)
41
44
  end
42
45
  end
43
46
 
@@ -77,12 +77,12 @@ module Postspec
77
77
  before update or delete on #{uid}
78
78
  for each row
79
79
  when (old.id <= #{id})
80
- execute function postspec_readonly_failure('#{uid}')
80
+ execute function postspec.readonly_failure('#{uid}')
81
81
  EOS1
82
82
  bt_sql = <<~EOS2
83
83
  create trigger postspec_readonly_bt_trg
84
84
  before truncate on #{uid}
85
- execute function postspec_readonly_failure('#{uid}')
85
+ execute function postspec.readonly_failure('#{uid}')
86
86
  EOS2
87
87
  [
88
88
  bud_sql.chomp,
@@ -1,3 +1,3 @@
1
1
  module Postspec
2
- VERSION = "0.2.5"
2
+ VERSION = "0.3.1"
3
3
  end
data/lib/postspec.rb CHANGED
@@ -68,16 +68,17 @@ module Postspec
68
68
  # TODO: PgMeta object
69
69
  #
70
70
  # +mode+ can be one of :seed, :empty (TODO :reseed, :keep)
71
- def initialize(conn, reflector: nil, mode: :empty, anchors: [], fail: true, ignore: [])
71
+ def initialize(conn, reflector: nil, mode: :empty, anchors: [], fail: true, ignore: [], cache: nil)
72
72
  constrain conn, PgConn
73
73
  constrain reflector, NilClass, String, PgGraph::Reflector
74
74
  constrain mode, lambda { |m| [:empty, :seed].include?(m) }
75
75
  constrain anchors, [Hash], NilClass
76
76
  constrain fail, TrueClass, FalseClass
77
77
  constrain ignore, [String]
78
+ constrain cache, String, nil
78
79
 
79
80
  @conn = conn
80
- @meta = PgMeta.new(@conn)
81
+ @meta = cache ? PgMeta.cache(@conn, yaml: cache) : PgMeta.new(@conn)
81
82
 
82
83
  # Make sure the postspec schema is not included in the type model. TODO:
83
84
  # Consolidate this into the :ignore option of PgGraph::Type.new as is
@@ -85,7 +86,8 @@ module Postspec
85
86
  has_postspec = @meta.schemas.key?("postspec")
86
87
  !has_postspec or (@meta.schemas["postspec"].hidden = true)
87
88
 
88
- @type = PgGraph::Type.new(@meta, reflector, ignore: ["prick"] + ignore)
89
+ @type = PgGraph::Type.new(@meta, reflector, ignore: ["prick"] + ignore)
90
+
89
91
  @render = Render.new(self)
90
92
  @tables = type.schemas.map(&:tables).flatten
91
93
  @ignore = ignore
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-13 00:00:00.000000000 Z
11
+ date: 2024-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-inflector