miniskirt 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/miniskirt.rb +4 -2
  2. data/miniskirt_test.rb +10 -0
  3. metadata +40 -50
@@ -23,10 +23,12 @@ class Miniskirt < Struct.new(:__klass__)
23
23
  def build name, attrs = {}
24
24
  (h, opts, n = @@attrs[name = name.to_s]) and klass = opts[:class] || name
25
25
  p = opts[:parent] and (h, klass = @@attrs[p = p.to_s][0].merge(h), p)
26
- (m = klass.is_a?(Class) ? klass : klass.classify.constantize).new do |r|
26
+ (m = klass.is_a?(Class) ? klass : klass.to_s.classify.constantize).new do |r|
27
27
  attrs.symbolize_keys!.reverse_update(h).each do |k, v|
28
28
  r.send "#{k}=", case v when String # Sequence and interpolate.
29
- v.sub(/%\d*d/) {|d| d % n ||= m.maximum(:id).to_i + 1} % attrs % n
29
+ v.sub(/%\d*d/) {|d| d % n ||= (
30
+ m.respond_to?(:maximum) ? m.maximum(:id) : m.max(:id)
31
+ ).to_i + 1} % attrs % n
30
32
  when Proc then v.call(r) else v
31
33
  end
32
34
  end
@@ -78,6 +78,12 @@ class MiniskirtTest < Test::Unit::TestCase
78
78
  blog_entry = Factory.create :blog_entry
79
79
  assert_equal 'admin', blog_entry.user.login
80
80
  end
81
+
82
+ def test_should_accept_class_as_symbol
83
+ assert_nothing_raised do
84
+ guest = Factory.create :guest
85
+ end
86
+ end
81
87
  end
82
88
 
83
89
  class Mock
@@ -121,3 +127,7 @@ end
121
127
  Miniskirt.define :blog_entry, :class => Post do |f|
122
128
  f.user { Miniskirt :admin }
123
129
  end
130
+
131
+ Miniskirt.define :guest, :class => :user do |f|
132
+ f.login "guest"
133
+ end
metadata CHANGED
@@ -1,80 +1,70 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: miniskirt
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 0
8
- - 0
9
- version: 1.0.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Stephen Celis
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-01-02 00:00:00 -06:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: activesupport
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70311920111800 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 2
30
- - 2
31
- version: "2.2"
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '2.2'
32
22
  type: :runtime
33
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: *70311920111800
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70311920110240 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.9.2
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70311920110240
34
36
  description: Test::Unit begot MiniTest; factory_girl begets Miniskirt.
35
37
  email: stephen@stephencelis.com
36
38
  executables: []
37
-
38
39
  extensions: []
39
-
40
40
  extra_rdoc_files: []
41
-
42
- files:
41
+ files:
43
42
  - miniskirt.rb
44
43
  - miniskirt_test.rb
45
- has_rdoc: true
46
44
  homepage: http://github.com/stephencelis/miniskirt
47
45
  licenses: []
48
-
49
46
  post_install_message:
50
47
  rdoc_options: []
51
-
52
- require_paths:
48
+ require_paths:
53
49
  - .
54
- required_ruby_version: !ruby/object:Gem::Requirement
50
+ required_ruby_version: !ruby/object:Gem::Requirement
55
51
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- segments:
60
- - 1
61
- - 8
62
- - 7
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
63
55
  version: 1.8.7
64
- required_rubygems_version: !ruby/object:Gem::Requirement
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
65
57
  none: false
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- segments:
70
- - 0
71
- version: "0"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
72
62
  requirements: []
73
-
74
63
  rubyforge_project:
75
- rubygems_version: 1.3.7
64
+ rubygems_version: 1.8.11
76
65
  signing_key:
77
66
  specification_version: 3
78
67
  summary: factory_girl, relaxed
79
- test_files:
68
+ test_files:
80
69
  - miniskirt_test.rb
70
+ has_rdoc: