sql_view 0.0.2 → 0.0.3

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: 0a7a2e1de23dc9d9523bfc1d6f0dfe65348a085ba81a0c5fc762d6ce64d0236e
4
- data.tar.gz: 32f417176adaa3a7f1c65ca7bfb405d63236d0979bafd0fd106562bac018f68f
3
+ metadata.gz: 3a7e04a9a62b624adce19a6462f76ddea7548e82aead8a8e639de633f4fa7279
4
+ data.tar.gz: a19ed68c58a457aac9aa4e65e38f247ed9fd0176fc9eb4aa8bf5b1a42722f3dd
5
5
  SHA512:
6
- metadata.gz: 3b32c1f94077eba3876764860bc3bc87fdd3e49386747f668d0682ebd3a87fe0417e48c48618d8f0c46040fcf43d20e0d114f3c955b0abea82591e478f7b91d9
7
- data.tar.gz: f4a3534cc2cd8ba5e52156ddedda64a5d9d7016018ff28fca8f107291febdb5456001d8bef82c6f25c70f2ef0c8255d391223db1f1803be1f96f38ace3772505
6
+ metadata.gz: eedc2c396f6d43e3a954889a4f66b6416b71ad2d98fd3bb44e50599069a6791998e873a22ad88f6c80f3add2f70abd3a7d19df86702a745a1e1494836cc54892
7
+ data.tar.gz: 6cd70bb813ce62ea92d7754601fb57df410b0bb1946bd8c251085d20ce18d2b5125f853bd9a6b7f6bcb538175979b923d49573611a855816c563e5160a92e9c4
@@ -14,7 +14,7 @@ module SqlView
14
14
  class #{class_name}View < SqlView::Model
15
15
  #{top_code}
16
16
 
17
- schema -> #{schema_code}
17
+ schema ->#{schema_code}
18
18
 
19
19
  extend_model_with do
20
20
  # sample how you can extend it, similar to regular AR model
@@ -62,9 +62,9 @@ FILE
62
62
 
63
63
  def schema_code
64
64
  if args[0].present?
65
- "{ #{args[0]} }"
65
+ " { #{args[0]} }"
66
66
  else
67
- " { #{ "\n # ActiveRecord::Relation or SQL\n # for example: User.where(active: true)\n }" }"
67
+ " {#{ "\n # ActiveRecord::Relation or SQL\n # for example: User.where(active: true)\n }" }"
68
68
  end
69
69
  end
70
70
 
@@ -1,3 +1,3 @@
1
1
  module SqlView
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/sql_view.rb CHANGED
@@ -4,9 +4,16 @@ require_relative "./sql_view/statements.rb"
4
4
  require "sql_view/version"
5
5
  require "sql_view/railtie"
6
6
 
7
+ #
8
+ #
9
+ # TODO for now in a single file
10
+ #
11
+ #
12
+
7
13
  module SqlView
8
- # mattr_accessor :klasses
9
- # @@klasses = {}
14
+ def SqlView.log(message)
15
+ puts message
16
+ end
10
17
 
11
18
  class Model
12
19
  class_attribute :view, :sql_view_options
@@ -16,9 +23,7 @@ module SqlView
16
23
  end
17
24
 
18
25
  def self.inherited(subclass)
19
- # puts subclass
20
26
  subclass.sql_view_options = {}
21
- # SqlView.klasses[subclass] = subclass.sql_view
22
27
  end
23
28
 
24
29
  def self.view_name=(name)
@@ -57,34 +62,40 @@ module SqlView
57
62
  @parent = parent
58
63
  end
59
64
 
60
- def refresh
61
- down
62
- up
65
+ def refresh(concurrently: false)
66
+ concurrently_or_not = concurrently ? " CONCURRENTLY " : " "
67
+ sql = <<-SQL
68
+ REFRESH#{materialized_or_not}VIEW#{concurrently_or_not}#{parent.view_name};
69
+ SQL
70
+ execute(sql)
63
71
  end
64
72
 
65
73
  def up
66
74
  view_sql = parent.sql_view_options[:sql_or_proc].call
67
75
  raise "Please configure schema for #{parent} (association or SQL) for the view" if view_sql.to_s == ""
68
76
  sql = <<-SQL
69
- CREATE #{materialized_or_not} VIEW #{parent.view_name} AS
77
+ CREATE#{materialized_or_not}VIEW #{parent.view_name} AS
70
78
  #{view_sql.respond_to?(:to_sql) ? view_sql.to_sql : view_sql };
71
79
  SQL
72
- puts sql if Rails.env.development?
73
- ActiveRecord::Base.connection.execute sql#.wp
80
+ execute(sql)
74
81
  end
75
82
 
76
83
  def down
77
84
  sql = <<-SQL
78
- drop #{materialized_or_not} view if exists #{parent.view_name};
85
+ DROP#{materialized_or_not}VIEW IF EXISTS #{parent.view_name};
79
86
  SQL
80
- puts sql if Rails.env.development?
87
+ execute(sql)
88
+ end
89
+
90
+ def execute(sql)
91
+ SqlView.log sql
81
92
  ActiveRecord::Base.connection.execute sql#.wp
82
93
  end
83
94
 
84
95
  private
85
96
 
86
97
  def materialized_or_not
87
- parent.sql_view_options[:materialized] ? "MATERIALIZED" : nil
98
+ parent.sql_view_options[:materialized] ? " MATERIALIZED " : " "
88
99
  end
89
100
 
90
101
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sql_view
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Kasyanchuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-12 00:00:00.000000000 Z
11
+ date: 2022-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails