flextures 1.9.4 → 1.9.5

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 CHANGED
@@ -1,2 +1,2 @@
1
- 1.9.4
1
+ 1.9.5
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.4"
8
+ s.version = "1.9.5"
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-03-05}
12
+ s.date = %q{2012-03-10}
13
13
  s.description = %q{load and dump fixtures}
14
14
  s.email = %q{babanba.n@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -47,7 +47,13 @@ module Flextures
47
47
  def self.init_tables
48
48
  tables = ActiveRecord::Base.connection.tables
49
49
  tables.delete "schema_migrations"
50
- tables.each{ |name| Class.new(ActiveRecord::Base){ |o| o.table_name=name }.delete_all }
50
+ tables.each{ |name|
51
+ # テーブルではなくviewを拾って止まる場合があるのでrescueしてしまう
52
+ begin
53
+ Class.new(ActiveRecord::Base){ |o| o.table_name= name }.delete_all
54
+ rescue => e
55
+ end
56
+ }
51
57
  end
52
58
 
53
59
  # 引数解析
@@ -152,7 +158,7 @@ module Flextures
152
158
  time:->{ DateTime.now },
153
159
  timestamp:->{ DateTime.now },
154
160
  }
155
-
161
+
156
162
  # 型の変換を行う
157
163
  TRANSLATER = {
158
164
  binary:->(d){ d.to_i },
@@ -204,6 +210,7 @@ module Flextures
204
210
  klass = PARENT::create_model table_name
205
211
  attributes = klass.columns.map &:name
206
212
  filter = create_filter klass, Factory[table_name]
213
+ klass.delete_all
207
214
  CSV.open( inpfile ) do |csv|
208
215
  keys = csv.shift # keyの設定
209
216
  warning "CSV", attributes, keys
@@ -233,7 +240,7 @@ module Flextures
233
240
  o.save
234
241
  end
235
242
  end
236
-
243
+
237
244
  # 欠けたカラムを検知してメッセージを出しておく
238
245
  def self.warning format, attributes, keys
239
246
  (attributes-keys).each { |name| print "Warning: #{format} colum is missing! [#{name}]\n" }
@@ -3,6 +3,7 @@
3
3
  # 基本設定を記述する
4
4
  module Flextures
5
5
  module Config
6
+ READ_ONLYS=[]
6
7
  @@configs={
7
8
  fixture_load_directory: "spec/fixtures/",
8
9
  fixture_dump_directory: "spec/fixtures/",
@@ -11,8 +12,8 @@ module Flextures
11
12
  # ハッシュをsetter、getterに変換
12
13
  class<< self
13
14
  @@configs.each do |setting_key, setting_value|
14
- define_method setting_key do @@configs[setting_key] end
15
- define_method "#{setting_key}=" do |arg| @@configs[setting_key]=arg end
15
+ define_method(setting_key){ @@configs[setting_key] } unless READ_ONLYS.include?(setting_key)
16
+ define_method("#{setting_key}="){ |arg| @@configs[setting_key]=arg }
16
17
  end
17
18
  end
18
19
  end
@@ -9,21 +9,41 @@ module RSpec
9
9
  end
10
10
  end
11
11
  end
12
+
13
+ module Rails
14
+ module FlextureSupport
15
+ @@configs={ load_count: 0 }
16
+ def self.included(m)
17
+ # 一番外側のdescribeにだけ追加
18
+ #m.after { Flextures::init_tables } if @@configs[:load_count]==0
19
+ @@configs[:load_count] += 1
20
+ end
21
+ end
22
+ end
23
+
24
+ RSpec.configure do |c|
25
+ c.include RSpec::Rails::FlextureSupport
26
+ end
12
27
  end
13
28
 
14
29
  # 既存のsetup_fixturesの機能を上書きする必要があったのでこちらを作成
15
30
  module ActiveRecord
16
31
  module TestFixtures
32
+ @@flextures_config = { count: 0 }
33
+
17
34
  alias :flextures_backup_setup_fixtures :setup_fixtures
18
35
  def setup_fixtures
19
- flextures_backup_setup_fixtures
20
36
  Flextures::init_load
37
+ Flextures::init_tables if @@flextures_config[:count] == 0
38
+ @@flextures_config[:count] += 1
39
+
40
+ flextures_backup_setup_fixtures
21
41
  end
22
42
 
23
43
  alias :flextures_backup_teardown_fixtures :teardown_fixtures
24
44
  def teardown_fixtures
25
- flextures_backup_teardown_fixtures
26
45
  Flextures::init_tables if Flextures::Config.init_all_tables
46
+ flextures_backup_teardown_fixtures
27
47
  end
28
48
  end
29
49
  end
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
4
+ version: 1.9.5
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-03-05 00:00:00.000000000 +09:00
12
+ date: 2012-03-10 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: &86528270 !ruby/object:Gem::Requirement
17
+ requirement: &90050990 !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: *86528270
25
+ version_requirements: *90050990
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: jeweler
28
- requirement: &86527970 !ruby/object:Gem::Requirement
28
+ requirement: &90050690 !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: *86527970
36
+ version_requirements: *90050690
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rcov
39
- requirement: &86527720 !ruby/object:Gem::Requirement
39
+ requirement: &90050440 !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: *86527720
47
+ version_requirements: *90050440
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: -1060100081
93
+ hash: -67127249
94
94
  required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements: