empty_eye 0.4.5 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ db/*
@@ -1,3 +1,8 @@
1
+ # 0.4.6 / 2012-03-11 / Grady Griffin
2
+
3
+ * tested with sqlite
4
+ * tested with postgres
5
+
1
6
  # 0.4.5 / 2012-03-11 / Grady Griffin
2
7
 
3
8
  * refactored some validation logic code
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; only tested with MySQL
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
@@ -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
- tables = []
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
@@ -12,9 +12,7 @@ module ActiveRecord
12
12
  end
13
13
 
14
14
  def tables(name = nil) #:nodoc:
15
- tables = tables_without_views(name)
16
- views = views(name)
17
- tables | views
15
+ tables_without_views(name) | views(name)
18
16
  end
19
17
 
20
18
  def views(name = nil) #:nodoc:
@@ -2,7 +2,7 @@ module EmptyEye
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 4
5
- TINY = 5
5
+ TINY = 6
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -4,8 +4,8 @@ require 'bundler/setup'
4
4
 
5
5
  describe ActiveRecord::Base do
6
6
  before(:each) do
7
- exec_sql "truncate bars_core"
8
- exec_sql "truncate businesses"
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 "truncate eating_venues_core"
8
- exec_sql "truncate restaurants"
9
- exec_sql "truncate businesses"
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
@@ -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 => "mysql2",
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 "truncate restaurants"
8
- exec_sql "truncate businesses"
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
@@ -5,8 +5,8 @@ require 'bundler/setup'
5
5
  describe ActiveRecord::Base do
6
6
 
7
7
  before(:each) do
8
- exec_sql "truncate mechanics_core"
9
- exec_sql "truncate garages"
8
+ exec_sql "delete from mechanics_core"
9
+ exec_sql "delete from garages"
10
10
 
11
11
  @mechanic = Mechanic.new(
12
12
  :name => 'Grady',
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+ require 'bundler/setup'
3
+
4
+ describe EmptyEye::ViewManager do
5
+ end
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: 5
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 5
10
- version: 0.4.5
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