bricks 0.5.0 → 0.5.1

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 +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
-