empty_eye 0.4.5 → 0.4.6
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.
- data/.gitignore +1 -0
- data/CHANGELOG.md +5 -0
- data/README.md +3 -1
- data/empty_eye.gemspec +4 -0
- data/lib/empty_eye/active_record/connection_adapters/oracle_adapter.rb +7 -5
- data/lib/empty_eye/active_record/connection_adapters/oracleenhanced_adapter.rb +1 -3
- data/lib/empty_eye/version.rb +1 -1
- data/spec/mti_crud_spec.rb +2 -2
- data/spec/mti_to_sti_to_mti_crud_spec.rb +3 -3
- data/spec/spec_helper.rb +14 -2
- data/spec/sti_to_mti_crud_spec.rb +2 -2
- data/spec/validation_spec.rb +2 -2
- data/spec/view_manager_spec.rb +5 -0
- metadata +33 -3
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
ActiveRecord based MTI gem powered by database views
|
4
4
|
|
5
|
+
MySQL, Postgresql and SQLite are supported and tested
|
6
|
+
|
5
7
|
add to your Gemfile
|
6
8
|
|
7
9
|
gem 'empty_eye'
|
@@ -24,7 +26,7 @@ this migration tracks view versions and its usage is highly recommended
|
|
24
26
|
* Not sure why but new mti instances have a id of zero; this has caused no problems so far however.
|
25
27
|
* No mechanism to change mti class table name but that is minor
|
26
28
|
* More complex testing needed to ensure reliability
|
27
|
-
* Uses ARel so should be compatible with ARel supported database that support view;
|
29
|
+
* Uses ARel so should be compatible with ARel supported database that support view; there is support for Oracle and Sql Server adapters but these are not tested
|
28
30
|
* SchemaDumper support for omitting views with databases other than MySQL is untested
|
29
31
|
|
30
32
|
Create MTI classes by renaming your base table with the core suffix and wrapping your associations in a mti\_class block
|
data/empty_eye.gemspec
CHANGED
@@ -23,10 +23,14 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_runtime_dependency('arel', '>= 3.0.0')
|
24
24
|
s.add_development_dependency("rspec")
|
25
25
|
s.add_development_dependency("mysql2")
|
26
|
+
s.add_development_dependency("sqlite3")
|
27
|
+
s.add_development_dependency("pg")
|
26
28
|
else
|
27
29
|
s.add_dependency('activerecord', '>= 2.3.0')
|
28
30
|
s.add_dependency('arel', '>= 3.0.0')
|
29
31
|
s.add_development_dependency("rspec")
|
30
32
|
s.add_development_dependency("mysql2")
|
33
|
+
s.add_development_dependency("sqlite3")
|
34
|
+
s.add_development_dependency("pg")
|
31
35
|
end
|
32
36
|
end
|
@@ -3,11 +3,7 @@ module ActiveRecord
|
|
3
3
|
class OracleAdapter < AbstractAdapter
|
4
4
|
|
5
5
|
def tables(name = nil) #:nodoc:
|
6
|
-
|
7
|
-
execute("SELECT TABLE_NAME FROM USER_TABLES", name).each { |row| tables << row[0] }
|
8
|
-
views = []
|
9
|
-
execute("SELECT VIEW_NAME FROM USER_VIEWS", name).each { |row| views << row[0] }
|
10
|
-
tables | views
|
6
|
+
tables_without_views(name) | views(name)
|
11
7
|
end
|
12
8
|
|
13
9
|
def tables_without_views(name = nil) #:nodoc:
|
@@ -16,6 +12,12 @@ module ActiveRecord
|
|
16
12
|
tables
|
17
13
|
end
|
18
14
|
|
15
|
+
def views(name = nil)
|
16
|
+
views = []
|
17
|
+
execute("SELECT VIEW_NAME FROM USER_VIEWS", name).each { |row| views << row[0] }
|
18
|
+
views
|
19
|
+
end
|
20
|
+
|
19
21
|
end
|
20
22
|
end
|
21
23
|
end
|
data/lib/empty_eye/version.rb
CHANGED
data/spec/mti_crud_spec.rb
CHANGED
@@ -4,8 +4,8 @@ require 'bundler/setup'
|
|
4
4
|
|
5
5
|
describe ActiveRecord::Base do
|
6
6
|
before(:each) do
|
7
|
-
exec_sql "
|
8
|
-
exec_sql "
|
7
|
+
exec_sql "delete from bars_core"
|
8
|
+
exec_sql "delete from businesses"
|
9
9
|
|
10
10
|
@bar = Bar.create(
|
11
11
|
:music_genre => "Latin", :best_nights => "Tuesdays", :dress_code => "casual", # bar_core attributes
|
@@ -4,9 +4,9 @@ require 'bundler/setup'
|
|
4
4
|
|
5
5
|
describe ActiveRecord::Base do
|
6
6
|
before(:each) do
|
7
|
-
exec_sql "
|
8
|
-
exec_sql "
|
9
|
-
exec_sql "
|
7
|
+
exec_sql "delete from eating_venues_core"
|
8
|
+
exec_sql "delete from restaurants"
|
9
|
+
exec_sql "delete from businesses"
|
10
10
|
|
11
11
|
@venue = EatingVenue.create(
|
12
12
|
:api_venue_id => 'abcdefg', :latitude => '122.11111', :longitude => '-81,11111', # eating venue attributes
|
data/spec/spec_helper.rb
CHANGED
@@ -7,9 +7,21 @@ require 'empty_eye'
|
|
7
7
|
# # some (optional) config here
|
8
8
|
# end
|
9
9
|
|
10
|
+
# ActiveRecord::Base.establish_connection(
|
11
|
+
# :adapter => "mysql2",
|
12
|
+
# :database => "empty_eye_test"
|
13
|
+
# )
|
14
|
+
|
15
|
+
# ActiveRecord::Base.establish_connection(
|
16
|
+
# :adapter => "sqlite3",
|
17
|
+
# :database => "db/empty_eye_test.db"
|
18
|
+
# )
|
19
|
+
|
10
20
|
ActiveRecord::Base.establish_connection(
|
11
|
-
:adapter => "
|
12
|
-
:database => "empty_eye_test"
|
21
|
+
:adapter => "postgresql",
|
22
|
+
:database => "empty_eye_test",
|
23
|
+
:username => 'grady',
|
24
|
+
:password => 'letmein'
|
13
25
|
)
|
14
26
|
|
15
27
|
def exec_sql(sql)
|
@@ -4,8 +4,8 @@ require 'bundler/setup'
|
|
4
4
|
|
5
5
|
describe ActiveRecord::Base do
|
6
6
|
before(:each) do
|
7
|
-
exec_sql "
|
8
|
-
exec_sql "
|
7
|
+
exec_sql "delete from restaurants"
|
8
|
+
exec_sql "delete from businesses"
|
9
9
|
|
10
10
|
@restaurant = MexicanRestaurant.create(
|
11
11
|
:kids_area => false, :wifi => true, :food_genre => "mexican", # restaurant attributes
|
data/spec/validation_spec.rb
CHANGED
@@ -5,8 +5,8 @@ require 'bundler/setup'
|
|
5
5
|
describe ActiveRecord::Base do
|
6
6
|
|
7
7
|
before(:each) do
|
8
|
-
exec_sql "
|
9
|
-
exec_sql "
|
8
|
+
exec_sql "delete from mechanics_core"
|
9
|
+
exec_sql "delete from garages"
|
10
10
|
|
11
11
|
@mechanic = Mechanic.new(
|
12
12
|
:name => 'Grady',
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: empty_eye
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 6
|
10
|
+
version: 0.4.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- thegboat
|
@@ -78,6 +78,34 @@ dependencies:
|
|
78
78
|
version: "0"
|
79
79
|
type: :development
|
80
80
|
version_requirements: *id004
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: sqlite3
|
83
|
+
prerelease: false
|
84
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
hash: 3
|
90
|
+
segments:
|
91
|
+
- 0
|
92
|
+
version: "0"
|
93
|
+
type: :development
|
94
|
+
version_requirements: *id005
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: pg
|
97
|
+
prerelease: false
|
98
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
hash: 3
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
version: "0"
|
107
|
+
type: :development
|
108
|
+
version_requirements: *id006
|
81
109
|
description: Active Record MTI gem powered by database views
|
82
110
|
email:
|
83
111
|
- gradygriffin@gmail.com
|
@@ -127,6 +155,7 @@ files:
|
|
127
155
|
- spec/spec_helper.rb
|
128
156
|
- spec/sti_to_mti_crud_spec.rb
|
129
157
|
- spec/validation_spec.rb
|
158
|
+
- spec/view_manager_spec.rb
|
130
159
|
has_rdoc: true
|
131
160
|
homepage: https://github.com/thegboat/emtpy_eye
|
132
161
|
licenses: []
|
@@ -168,3 +197,4 @@ test_files:
|
|
168
197
|
- spec/spec_helper.rb
|
169
198
|
- spec/sti_to_mti_crud_spec.rb
|
170
199
|
- spec/validation_spec.rb
|
200
|
+
- spec/view_manager_spec.rb
|