store-active_record 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ced45712e34f5adc309c520e1eba87e0e81f8163
4
- data.tar.gz: 6f53ae15b28c2185ecb97b06d5d61567da1131ba
3
+ metadata.gz: 9ed03bc3ce06165f5a57e2b101a4615e3b50b37a
4
+ data.tar.gz: cafff8805390a11ea7001fd97d232a058aa8650c
5
5
  SHA512:
6
- metadata.gz: 0f955103252120301a4f78679be3d5139028c9eb13814360c06069cf9dc0bac5b3a4806f958d6fe24bc64d958d5109f6903753570fcad0a115798797f9b98b32
7
- data.tar.gz: 6c03f111256cc5a7a6bb72b89c097424fe259ac487ee7f00810adf48d5bf930ac4384abdd9d66fb80ae14956bbf39aa94e7914ef288e5935fe0b44e4e4ee2853
6
+ metadata.gz: f1c02ecc0f6a32ec1ae002e5ec24863e21125de0a8d79dc2c60e5f15ae5f72de8f79b7ebe500ba9254ffd3167e53c399b2681a83c0112bd72701bc09b9bf267d
7
+ data.tar.gz: 0dc22af510ea697d1dec8c95672fd25fc6dcdb04787a2e86546701f92bd217ebd87e0e76c41f3a9710223097684949d4c83881de666b0823b389785b125a6ef5
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ tmp
19
19
  *.swo
20
20
  config/database.yml
21
21
  store_active_record_test
22
+ .rvmrc
data/README.md CHANGED
@@ -22,17 +22,43 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
+ Each table needs at least a uid column.
26
+
27
+ With Rails
28
+
29
+ ```
30
+ class CreateUsers < ActiveRecord::Migration
31
+ def change
32
+ create_table :users do |t|
33
+ t.string :uid
34
+ end
35
+ end
36
+ end
37
+
38
+ rake db:migrate
39
+ ```
40
+
41
+ Without Rails
42
+
43
+ ```
44
+ ActiveRecord::Migration.create_table('users') do |t|
45
+ t.string :uid
46
+ end
47
+
48
+ ```
49
+
25
50
  ```
26
51
  require 'store/active_record'
27
52
 
28
53
  module DataMapper
29
54
  module User
30
- class ActiveRecord < Store::ActiveRecord
55
+ class ActiveRecord < Store::DataMapper::ActiveRecord
31
56
  end
32
57
  end
33
58
  end
34
59
 
35
- table = 'User'
60
+ table = 'users'
61
+
36
62
  spec = {
37
63
  :adapter => sqlite3
38
64
  :encoding => utf8
@@ -41,6 +67,27 @@ spec = {
41
67
  :database => database_name
42
68
  }
43
69
 
70
+ # or load it from your database.yml
71
+ # spec = YAML.load_file(path_to_your_database_yml)['production']
72
+ #
73
+ # database.yml
74
+ #
75
+ # development:
76
+ # adapter: sqlite3
77
+ # encoding: utf8
78
+ # collation: utf8_general_ci
79
+ # reconnect: false
80
+ # database: database_name
81
+ #
82
+ # test:
83
+ # adapter: sqlite3
84
+ # encoding: utf8
85
+ # collation: utf8_general_ci
86
+ # reconnect: false
87
+ # database: database_name_test
88
+ #
89
+ # production: development
90
+
44
91
  DataMapper::User::ActiveRecord.new(table, spec)
45
92
  ```
46
93
 
@@ -1,5 +1,5 @@
1
1
  class Store
2
2
  class ActiveRecord
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -6,11 +6,9 @@ class Store
6
6
  class DataMapper
7
7
  class ActiveRecord < Store::DataMapper
8
8
 
9
- def initialize(table_name, spec)
9
+ def initialize(table_name)
10
10
  @table_name = table_name
11
- @spec = spec
12
11
  build_class
13
- establish_connection
14
12
  end
15
13
 
16
14
  def insert(data)
@@ -48,13 +46,12 @@ class Store
48
46
 
49
47
  private
50
48
 
51
- def build_class
52
- @cls = Class.new(base)
53
- @cls.table_name = @table_name
54
- @cls.send(:define_method, :uid) do
49
+ class StoredEntity < ::ActiveRecord::Base
50
+ def uid
55
51
  id.to_s
56
52
  end
57
- @cls.send(:define_method, :to_hash) do
53
+
54
+ def to_hash
58
55
  attributes.tap do |a|
59
56
  a.delete('id')
60
57
  a['uid'] = uid
@@ -62,16 +59,14 @@ class Store
62
59
  end
63
60
  end
64
61
 
65
- def cls
66
- @cls
67
- end
68
-
69
- def establish_connection
70
- base.establish_connection(@spec)
62
+ def build_class
63
+ StoredEntity.table_name = @table_name
64
+ StoredEntity.inheritance_column = 'sti_deactivated'
65
+ @cls = Class.new(StoredEntity)
71
66
  end
72
67
 
73
- def base
74
- ::ActiveRecord::Base
68
+ def cls
69
+ @cls
75
70
  end
76
71
 
77
72
  def find_by_id(id)
@@ -3,31 +3,27 @@ require 'yaml'
3
3
  require 'store/spec'
4
4
  require "active_record"
5
5
 
6
- def create_test_table(table, spec)
7
- ::ActiveRecord::Base.establish_connection(spec)
8
- begin
9
- ::ActiveRecord::Migration.drop_table(table)
10
- rescue
11
- ensure
12
- ::ActiveRecord::Migration.create_table(table) do |t|
13
- t.string :foo
14
- end
15
- end
16
- ::ActiveRecord::Base.connection.close
17
- end
18
6
 
19
7
  describe Store::DataMapper::ActiveRecord do
20
- spec = YAML.load_file("#{File.dirname(__FILE__)}/../config/database.yml.sample")['test']
21
- table = 'Bar'
22
8
 
23
- create_test_table(table, spec)
9
+ describe 'with active connection' do
24
10
 
25
- before do
26
- ActiveRecord::Base.connection.execute("DELETE FROM #{table};")
27
- end
11
+ establish_connection
12
+ recreate_table
28
13
 
29
- subject { Store::DataMapper::ActiveRecord.new(table, spec) }
30
- instance_eval &Store::Spec::Specs
14
+ before { empty_table }
31
15
 
32
- end
16
+ subject { Store::DataMapper::ActiveRecord.new(table) }
17
+
18
+ it 'exists a active connection' do
19
+ assert ::ActiveRecord::Base.connected?
20
+ end
21
+
22
+ it 'deactivates sti for the moment' do
23
+ assert_equal 'sti_deactivated', subject.send(:cls).inheritance_column
24
+ end
33
25
 
26
+ run_subject_against_store_spec_gem
27
+ end
28
+
29
+ end
data/spec/helper.rb CHANGED
@@ -1,3 +1,36 @@
1
1
  require 'minitest/autorun'
2
2
  require 'minitest/spec'
3
3
  require 'store/active_record'
4
+
5
+ def establish_connection
6
+ ::ActiveRecord::Base.establish_connection(spec)
7
+ end
8
+
9
+ def recreate_table
10
+ begin
11
+ ::ActiveRecord::Migration.drop_table(table)
12
+ rescue
13
+ ensure
14
+ ::ActiveRecord::Migration.create_table(table) do |t|
15
+ t.string :foo
16
+ end
17
+ end
18
+ end
19
+
20
+ def empty_table
21
+ ::ActiveRecord::Base.connection.execute("DELETE FROM #{table};")
22
+ end
23
+
24
+ def run_subject_against_store_spec_gem
25
+ instance_eval &Store::Spec::Specs
26
+ end
27
+
28
+ private
29
+
30
+ def spec
31
+ @spec ||= YAML.load_file("#{File.dirname(__FILE__)}/../config/database.yml.sample")['test']
32
+ end
33
+
34
+ def table
35
+ 'Bar'
36
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: store-active_record
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
  - Jan Owiesniak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-05 00:00:00.000000000 Z
11
+ date: 2013-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,7 +116,6 @@ extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
118
  - .gitignore
119
- - .rvmrc
120
119
  - .travis.yml
121
120
  - Gemfile
122
121
  - LICENSE.txt
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 2.0.0@store-active_record --create