activerecord-database-views 0.1.0 → 0.1.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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YmUzNjA2OTc4NGVmMDg3MmQwMDQ5YWYzOGFiZGJlZjRiYjcwNzRhMg==
5
- data.tar.gz: !binary |-
6
- ZmJmMDk3MGZhZWFkYjAzYzdlNzlmNDkxMzU1OWY4ODU5MjEyMmI0Yg==
2
+ SHA1:
3
+ metadata.gz: 20125a212af919fae61754272c75f0d8c2f6945a
4
+ data.tar.gz: 81f76e8d0427e125550582b191bd0fea685486fd
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YTAxZDQ0ZjUwYmIxYmM0MDJlOTI3NTliYzY3YTg3NzEyZjQwZjMwZWZjNGFj
10
- NDllZWEyYzhiYmFhNmE4NmUzMWU3ZmY1OTZmYmM5YmRhYjY4YWU2ZTZjZmQ1
11
- ODM4ZjA1OTJmOWQwYWMxNDIyNzFlZGYzNThiM2Y3NmY2NDBhOTc=
12
- data.tar.gz: !binary |-
13
- YWJmMmJiZDA1ZDcwY2E5ZGRlYmU2MjBkZWVmMmMzZjRiZDE5MTdjNmY5NTky
14
- ZmIyYWFlYjRmMzExOWU2YTU4MTFlYmEwMGRiMzliZjg2ZTc3ZmFlMzBjODMy
15
- MmUzMjAwMjg2NTBlOTg1ZmE2YmNkN2I3NzNiNGY1YmRjNzI4ZDY=
6
+ metadata.gz: a080fe9228c20000f9ac692e41ed9929cc5e732942ddcc9874e64e43703160d2cd6f45a010d5be476365bef79192b58b98eb0aa9bebb308e8ef4029d2f106153
7
+ data.tar.gz: dc8ffdb4429c0752eecfa417b9e1631e0b46dca6c9cd1460b6d332fa0f8aeb09509e444aefa883ab290ff325aa7931c1afb2bf705bde63e7483f6cd0326d7235
@@ -1,7 +1,7 @@
1
1
  module Activerecord
2
2
  module Database
3
3
  module Views
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
6
6
  end
7
7
  end
@@ -1,5 +1,7 @@
1
1
  module ActiveRecord::DatabaseViews
2
2
  class View
3
+ FILE_NAME_MATCHER_WITH_PREFIX = /^\d+?_(.+)/
4
+
3
5
  attr_reader :path
4
6
 
5
7
  def initialize(path)
@@ -15,11 +17,19 @@ module ActiveRecord::DatabaseViews
15
17
  end
16
18
 
17
19
  def name
18
- File.basename(path, '.sql')
20
+ if basename =~ FILE_NAME_MATCHER_WITH_PREFIX
21
+ FILE_NAME_MATCHER_WITH_PREFIX.match(basename)[1]
22
+ else
23
+ basename
24
+ end
19
25
  end
20
26
 
21
27
  private
22
28
 
29
+ def basename
30
+ @basename ||= File.basename(path, '.sql')
31
+ end
32
+
23
33
  def full_path
24
34
  Rails.root.join(path)
25
35
  end
@@ -6,22 +6,18 @@ module ActiveRecord::DatabaseViews
6
6
 
7
7
  attr_reader :views
8
8
 
9
+ delegate :each, to: :views
10
+
9
11
  def initialize
10
12
  @views = view_paths.map { |path| View.new(path) }
11
13
  end
12
14
 
13
15
  def drop!
14
- views.each(&:drop!)
15
- end
16
-
17
- def each
18
- views.each { |view| yield view }
16
+ each(&:drop!)
19
17
  end
20
18
 
21
19
  def load!
22
- while views.present?
23
- load_view(views.first)
24
- end
20
+ load_view(first) while first
25
21
  end
26
22
 
27
23
  private
@@ -29,10 +25,9 @@ module ActiveRecord::DatabaseViews
29
25
  def load_view(view)
30
26
  begin
31
27
  view.load! and views.delete(view)
32
- rescue ActiveRecord::StatementInvalid => exc
33
- if (related_view = retrieve_related_view(exc))
34
- load_view(related_view)
35
- retry
28
+ rescue ActiveRecord::StatementInvalid => exception
29
+ if (related_view = retrieve_related_view(exception))
30
+ load_view(related_view) and retry
36
31
  else
37
32
  raise exc
38
33
  end
@@ -46,7 +41,7 @@ module ActiveRecord::DatabaseViews
46
41
  end
47
42
 
48
43
  def view_paths
49
- Dir.glob("db/views/**/*.sql")
44
+ Dir.glob('db/views/**/*.sql').sort
50
45
  end
51
46
  end
52
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-database-views
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - stevo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-23 00:00:00.000000000 Z
11
+ date: 2014-10-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Facilitates storing and reloading of DB views within Rails applications
14
14
  email:
@@ -30,17 +30,17 @@ require_paths:
30
30
  - lib
31
31
  required_ruby_version: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ! '>='
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
35
  version: '0'
36
36
  required_rubygems_version: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  requirements: []
42
- rubyforge_project: ! '[none]'
43
- rubygems_version: 2.1.10
42
+ rubyforge_project: "[none]"
43
+ rubygems_version: 2.2.2
44
44
  signing_key:
45
45
  specification_version: 4
46
46
  summary: Facilitates reloading of DB views