flextures 1.9.2 → 1.9.4
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/VERSION +1 -1
- data/flextures.gemspec +2 -2
- data/lib/flextures/flextures.rb +10 -3
- data/lib/flextures/flextures_base_config.rb +1 -0
- data/lib/flextures/flextures_factory.rb +17 -3
- data/lib/flextures/rspec_flextures_support.rb +13 -11
- metadata +9 -9
data/VERSION
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
1.9.
|
1
|
+
1.9.4
|
2
2
|
|
data/flextures.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{flextures}
|
8
|
-
s.version = "1.9.
|
8
|
+
s.version = "1.9.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["baban"]
|
12
|
-
s.date = %q{2012-
|
12
|
+
s.date = %q{2012-03-05}
|
13
13
|
s.description = %q{load and dump fixtures}
|
14
14
|
s.email = %q{babanba.n@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/flextures/flextures.rb
CHANGED
@@ -13,17 +13,24 @@ module Flextures
|
|
13
13
|
|
14
14
|
# テーブルモデルの作成
|
15
15
|
def self.create_model table_name
|
16
|
-
|
16
|
+
# Factoryにオプションで指定があった時
|
17
|
+
a = ->{
|
18
|
+
f = Factory::FACTORIES[table_name.to_sym]
|
19
|
+
f && f[:model]
|
20
|
+
}
|
21
|
+
# テーブル名からモデル名が推測できるとき
|
22
|
+
b = ->{
|
17
23
|
begin
|
18
24
|
table_name.singularize.camelize.constantize
|
19
25
|
rescue => e
|
20
26
|
nil
|
21
27
|
end
|
22
28
|
}
|
23
|
-
|
29
|
+
# モデル名推測不可能なとき
|
30
|
+
c = ->{
|
24
31
|
Class.new(ActiveRecord::Base){ |o| o.table_name=table_name }
|
25
32
|
}
|
26
|
-
a.call || b.call
|
33
|
+
a.call || b.call || c.call
|
27
34
|
end
|
28
35
|
|
29
36
|
# 設定ファイルが存在すればロード
|
@@ -3,15 +3,29 @@
|
|
3
3
|
module Flextures
|
4
4
|
# ロードするデータを必要に応じて加工する
|
5
5
|
class Factory
|
6
|
+
# 設置ファイルから取得した Factoryの一覧を取得
|
6
7
|
FACTORIES={}
|
8
|
+
|
7
9
|
# Factory を定義
|
8
|
-
|
9
|
-
|
10
|
+
# @params table_name
|
11
|
+
# @params options
|
12
|
+
# @params block
|
13
|
+
# @return Flextures::Factory
|
14
|
+
def self.define table_name, *options, &block
|
15
|
+
h={ block: block }
|
16
|
+
options.each do |o|
|
17
|
+
begin
|
18
|
+
h[:model] = o if o.new.is_a? ActiveRecord::Base
|
19
|
+
rescue
|
20
|
+
end
|
21
|
+
end
|
22
|
+
FACTORIES[table_name.to_sym]=h
|
10
23
|
end
|
11
24
|
|
12
25
|
# Factoryを取得
|
13
26
|
def self.get table_name
|
14
|
-
FACTORIES[table_name.to_sym]
|
27
|
+
f = FACTORIES[table_name.to_sym]
|
28
|
+
f && f[:block]
|
15
29
|
end
|
16
30
|
def self.[](table_name); self.get(table_name); end
|
17
31
|
end
|
@@ -9,20 +9,22 @@ module RSpec
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
12
|
+
end
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
14
|
+
# 既存のsetup_fixturesの機能を上書きする必要があったのでこちらを作成
|
15
|
+
module ActiveRecord
|
16
|
+
module TestFixtures
|
17
|
+
alias :flextures_backup_setup_fixtures :setup_fixtures
|
18
|
+
def setup_fixtures
|
19
|
+
flextures_backup_setup_fixtures
|
20
|
+
Flextures::init_load
|
21
21
|
end
|
22
|
-
end
|
23
22
|
|
24
|
-
|
25
|
-
|
23
|
+
alias :flextures_backup_teardown_fixtures :teardown_fixtures
|
24
|
+
def teardown_fixtures
|
25
|
+
flextures_backup_teardown_fixtures
|
26
|
+
Flextures::init_tables if Flextures::Config.init_all_tables
|
27
|
+
end
|
26
28
|
end
|
27
29
|
end
|
28
30
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flextures
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-03-05 00:00:00.000000000 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
17
|
-
requirement: &
|
17
|
+
requirement: &86528270 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 1.0.0
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *86528270
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: jeweler
|
28
|
-
requirement: &
|
28
|
+
requirement: &86527970 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.6.4
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *86527970
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rcov
|
39
|
-
requirement: &
|
39
|
+
requirement: &86527720 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *86527720
|
48
48
|
description: load and dump fixtures
|
49
49
|
email: babanba.n@gmail.com
|
50
50
|
executables: []
|
@@ -90,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
90
|
version: '0'
|
91
91
|
segments:
|
92
92
|
- 0
|
93
|
-
hash: -
|
93
|
+
hash: -1060100081
|
94
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|