miniskirt 1.0.0 → 1.1.0

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.
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: