bricks 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.5.1
data/bricks.gemspec CHANGED
@@ -4,13 +4,13 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{bricks}
8
- s.version = "0.5.0"
7
+ s.name = "bricks"
8
+ s.version = "0.5.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David Leal"]
12
- s.date = %q{2011-06-29}
13
- s.email = %q{david@mojotech.com}
12
+ s.date = "2011-11-24"
13
+ s.email = "david@mojotech.com"
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
16
16
  "README.md"
@@ -37,11 +37,11 @@ Gem::Specification.new do |s|
37
37
  "spec/spec_helper.rb",
38
38
  "spec/support/active_record.rb"
39
39
  ]
40
- s.homepage = %q{http://github.com/mojotech/bricks}
40
+ s.homepage = "http://github.com/mojotech/bricks"
41
41
  s.licenses = ["MIT"]
42
42
  s.require_paths = ["lib"]
43
- s.rubygems_version = %q{1.6.2}
44
- s.summary = %q{Hybrid object builder/factory.}
43
+ s.rubygems_version = "1.8.10"
44
+ s.summary = "Hybrid object builder/factory."
45
45
 
46
46
  if s.respond_to? :specification_version then
47
47
  s.specification_version = 3
@@ -10,8 +10,8 @@ module Bricks
10
10
  def initialize(klass, kind)
11
11
  @class = klass
12
12
  @type = case kind
13
- when :belongs_to; :one
14
- when :has_many, :has_and_belongs_to_many; :many
13
+ when :belongs_to; :parent
14
+ when :has_many, :has_and_belongs_to_many; :children
15
15
  else "Unknown AR association type: #{kind}."
16
16
  end
17
17
  end
@@ -30,13 +30,12 @@ module Bricks
30
30
  end
31
31
 
32
32
  def derive(args = {})
33
- build_attrs
34
-
35
33
  klass = args[:class] || @class
36
34
  save = args.has_key?(:save) ? args[:save] : @save
37
35
  search = args.has_key?(:search) ? args[:search] : @search
38
36
 
39
- Builder.new(klass, @attrs, @traits, save, search).tap { |b|
37
+ Builder.new(klass, @attrs, @traits, save, search, &@block).tap { |b|
38
+ b.send :build_attrs
40
39
  b.run_hook :after, :clone if ! args[:class]
41
40
  }
42
41
  end
@@ -197,9 +196,9 @@ module Bricks
197
196
  pair[-1] = val
198
197
 
199
198
  self
200
- elsif adapter.association?(@class, nsym, :one)
199
+ elsif adapter.association?(@class, nsym, :parent)
201
200
  pair[-1] = builder(adapter.association(@class, nsym).klass, @save)
202
- elsif adapter.association?(@class, nsym, :many)
201
+ elsif adapter.association?(@class, nsym, :children)
203
202
  pair[-1] ||= BuilderSet.new(adapter.association(@class, nsym).klass)
204
203
  else
205
204
  raise Bricks::BadSyntax,
@@ -40,6 +40,8 @@ class Article < ActiveRecord::Base
40
40
  belongs_to :newspaper
41
41
  has_many :readers
42
42
 
43
+ validates_presence_of :newspaper_id
44
+
43
45
  def saved?
44
46
  ! new_record?
45
47
  end
metadata CHANGED
@@ -1,72 +1,68 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bricks
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
4
5
  prerelease:
5
- version: 0.5.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - David Leal
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-29 00:00:00 +01:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-24 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: rspec
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &82543630 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
18
+ requirements:
21
19
  - - ~>
22
- - !ruby/object:Gem::Version
23
- version: "2.0"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
24
22
  type: :development
25
23
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *82543630
25
+ - !ruby/object:Gem::Dependency
28
26
  name: bundler
29
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &82543330 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
29
+ requirements:
32
30
  - - ~>
33
- - !ruby/object:Gem::Version
31
+ - !ruby/object:Gem::Version
34
32
  version: 1.0.0
35
33
  type: :development
36
34
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *82543330
36
+ - !ruby/object:Gem::Dependency
39
37
  name: jeweler
40
- requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirement: &82526310 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
40
+ requirements:
43
41
  - - ~>
44
- - !ruby/object:Gem::Version
42
+ - !ruby/object:Gem::Version
45
43
  version: 1.6.2
46
44
  type: :development
47
45
  prerelease: false
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *82526310
47
+ - !ruby/object:Gem::Dependency
50
48
  name: rcov
51
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: &82525860 !ruby/object:Gem::Requirement
52
50
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
57
55
  type: :development
58
56
  prerelease: false
59
- version_requirements: *id004
57
+ version_requirements: *82525860
60
58
  description:
61
59
  email: david@mojotech.com
62
60
  executables: []
63
-
64
61
  extensions: []
65
-
66
- extra_rdoc_files:
62
+ extra_rdoc_files:
67
63
  - LICENSE.txt
68
64
  - README.md
69
- files:
65
+ files:
70
66
  - .document
71
67
  - .rspec
72
68
  - Gemfile
@@ -87,36 +83,32 @@ files:
87
83
  - spec/bricks_spec.rb
88
84
  - spec/spec_helper.rb
89
85
  - spec/support/active_record.rb
90
- has_rdoc: true
91
86
  homepage: http://github.com/mojotech/bricks
92
- licenses:
87
+ licenses:
93
88
  - MIT
94
89
  post_install_message:
95
90
  rdoc_options: []
96
-
97
- require_paths:
91
+ require_paths:
98
92
  - lib
99
- required_ruby_version: !ruby/object:Gem::Requirement
93
+ required_ruby_version: !ruby/object:Gem::Requirement
100
94
  none: false
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- hash: -614702947
105
- segments:
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ segments:
106
100
  - 0
107
- version: "0"
108
- required_rubygems_version: !ruby/object:Gem::Requirement
101
+ hash: -651750993
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
103
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: "0"
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
114
108
  requirements: []
115
-
116
109
  rubyforge_project:
117
- rubygems_version: 1.6.2
110
+ rubygems_version: 1.8.10
118
111
  signing_key:
119
112
  specification_version: 3
120
113
  summary: Hybrid object builder/factory.
121
114
  test_files: []
122
-