roomer 0.0.10 → 0.0.11

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.
@@ -17,7 +17,21 @@ module Roomer
17
17
  # lists the schemas available
18
18
  # @return [Array] list of schemas
19
19
  def schemas
20
- ActiveRecord::Base.connection.query("SELECT nspname FROM pg_namespace WHERE nspname !~ '^pg_.*'").flatten.map(&:to_s)
20
+ ActiveRecord::Base.connection.query(%{
21
+ SELECT nspname FROM pg_namespace WHERE nspname !~ '^pg_.*'
22
+ }).flatten.map(&:to_s)
23
+ end
24
+
25
+ # lists all stored procedures for given schema
26
+ # @return [Array] list of stored procedures
27
+ def stored_procedures(schema_name)
28
+ ActiveRecord::Base.connection.select_values(%{
29
+ SELECT proname
30
+ FROM pg_catalog.pg_namespace n
31
+ JOIN pg_catalog.pg_proc p
32
+ ON pronamespace = n.oid
33
+ WHERE nspname = '#{schema_name.to_s}'
34
+ })
21
35
  end
22
36
 
23
37
  # Ensures the schema and schema_migrations exist(creates them otherwise)
@@ -40,6 +54,15 @@ module Roomer
40
54
  end
41
55
  end
42
56
 
57
+ # Creates sequence for given table name
58
+ # @param [table_name] table for which sequence will be created
59
+ # @param [pk] primary key for table. Defaults to id
60
+ def create_sequence(table_name, pk="id")
61
+ ActiveRecord::Base.connection.execute(%{
62
+ CREATE SEQUENCE #{table_name}_#{pk}_seq OWNED BY #{table_name}.#{pk}
63
+ })
64
+ end
65
+
43
66
  # Ensures the same ActiveRecord::Base#table_name_prefix for all the
44
67
  # models executed in the block
45
68
  # @param [#to_s] A Symbol declaring the table name prefix
data/lib/roomer/schema.rb CHANGED
@@ -58,5 +58,14 @@ module Roomer
58
58
  ActiveRecord::Base.connection.assume_migrated_upto_version(info[:version], migrations_path)
59
59
  end
60
60
  end
61
+
62
+ def self.current_schema
63
+ ActiveRecord::Base.table_name_prefix.split('.').first
64
+ end
65
+
66
+ def self.current_tenant
67
+ return nil if current_schema == Roomer.shared_schema_name.to_s
68
+ Tenant.find_by_schema_name(current_schema)
69
+ end
61
70
  end
62
71
  end
@@ -3,7 +3,7 @@ module Roomer
3
3
  unless defined? MAJOR
4
4
  MAJOR = 0
5
5
  MINOR = 0
6
- TINY = 10
6
+ TINY = 11
7
7
  PRE = nil
8
8
 
9
9
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roomer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 10
10
- version: 0.0.10
9
+ - 11
10
+ version: 0.0.11
11
11
  platform: ruby
12
12
  authors:
13
13
  - Greg Osuri
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-10-11 00:00:00 Z
19
+ date: 2011-10-14 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: rails
@@ -34,7 +34,7 @@ dependencies:
34
34
  version: 3.0.9
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
- description: roomer 0.0.10
37
+ description: roomer 0.0.11
38
38
  email:
39
39
  - gosuri@gmail.com
40
40
  - dceballos@gmail.com