modelizer 1.3.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ === 2.0.0 / 2010-07-15
2
+
3
+ * Remove ActiveSupport assumption, tweak for Rails 3.
4
+ * Allow empty default attribute sets.
5
+
1
6
  === 1.3.1 / 2009-11-30
2
7
 
3
8
  * Squash warning, require 'active_support' instead of 'activesupport'.
@@ -74,11 +74,11 @@ The third argument is optional.
74
74
 
75
75
  == Installation
76
76
 
77
- $ sudo gem install modelizer
77
+ $ gem install modelizer
78
78
 
79
79
  == License
80
80
 
81
- Copyright 2009 John Barnette (jbarnette@rubyforge.org)
81
+ Copyright 2009-10 John Barnette (code@jbarnette.com)
82
82
 
83
83
  Permission is hereby granted, free of charge, to any person obtaining
84
84
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require "hoe"
4
4
  Hoe.plugin :doofus, :git
5
5
 
6
6
  Hoe.spec "modelizer" do
7
- developer "John Barnette", "jbarnette@rubyforge.org"
7
+ developer "John Barnette", "code@jbarnette.com"
8
8
 
9
9
  self.extra_rdoc_files = FileList["*.rdoc"]
10
10
  self.history_file = "CHANGELOG.rdoc"
@@ -1,12 +1,10 @@
1
- require "active_support"
2
-
3
1
  require "modelizer/assertions"
4
2
  require "modelizer/validations"
5
3
 
6
4
  module Modelizer
7
5
 
8
6
  # Duh.
9
- VERSION = "1.3.1"
7
+ VERSION = "2.0.0"
10
8
 
11
9
  include Modelizer::Assertions
12
10
 
@@ -18,6 +16,14 @@ module Modelizer
18
16
  target.extend Modelizer::Validations
19
17
  end
20
18
 
19
+ def self.underscore classname
20
+ classname.gsub(/::/, '_').
21
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
22
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
23
+ tr("-", "_").
24
+ downcase
25
+ end
26
+
21
27
  def assign_model_template_attributes model, attributes
22
28
  model.send :attributes=, attributes, false
23
29
  model
@@ -37,14 +43,14 @@ module Modelizer
37
43
 
38
44
  module ClassMethods
39
45
  def model_template_for klass, defaults = {}, &block
40
- if defaults.empty? && !block
46
+ if defaults.nil? && !block
41
47
  raise ArgumentError, "default attributes or lazy block required"
42
48
  end
43
49
 
44
50
  ::Modelizer.cache[klass] = [defaults, block]
45
51
 
46
52
  klass = klass.name
47
- model = klass.underscore.tr "/", "_"
53
+ model = ::Modelizer.underscore klass
48
54
 
49
55
  module_eval <<-END, __FILE__, __LINE__ + 1
50
56
  def valid_#{model}_attributes extras = {}
@@ -4,9 +4,11 @@ module Modelizer
4
4
  assert !model.valid?,
5
5
  "#{model.class.name} should have invalid #{attribute}, but it's valid."
6
6
 
7
- assert !model.errors.on(attribute).blank?,
7
+ errors = model.errors[attribute]
8
+
9
+ assert !errors.nil? && !errors.empty?,
8
10
  "No error on #{attribute}, but: " +
9
- model.errors.full_messages.to_sentence
11
+ model.errors.full_messages.join(", ")
10
12
 
11
13
  assert_match match, model.errors.on(attribute) if match
12
14
  end
@@ -2,7 +2,7 @@ module Modelizer
2
2
  module Validations
3
3
  def test_validations_for attribute, *validations
4
4
  @klass ||= name.gsub(/Test$/, "").constantize
5
- @model ||= @klass.name.underscore.tr("/", "_")
5
+ @model ||= ::Modelizer.underscore @klass.name
6
6
 
7
7
  unless instance_methods.collect { |m| m.to_s }.include? "new_#{@model}"
8
8
  raise "no model template for #{@klass.name}"
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modelizer
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 15
4
5
  prerelease: false
5
6
  segments:
6
- - 1
7
- - 3
8
- - 1
9
- version: 1.3.1
7
+ - 2
8
+ - 0
9
+ - 0
10
+ version: 2.0.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - John Barnette
@@ -14,27 +15,46 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2009-11-30 00:00:00 -08:00
18
+ date: 2010-07-15 00:00:00 -07:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
- name: hoe
22
+ name: rubyforge
23
+ prerelease: false
22
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
29
+ hash: 7
26
30
  segments:
27
31
  - 2
28
- - 3
29
- - 3
30
- version: 2.3.3
32
+ - 0
33
+ - 4
34
+ version: 2.0.4
31
35
  type: :development
32
36
  version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: hoe
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 21
46
+ segments:
47
+ - 2
48
+ - 6
49
+ - 1
50
+ version: 2.6.1
51
+ type: :development
52
+ version_requirements: *id002
33
53
  description: |-
34
54
  Need a simple, consistent way to create model instances and check
35
55
  validations in your Rails tests? Use the Modelizer.
36
56
  email:
37
- - jbarnette@rubyforge.org
57
+ - code@jbarnette.com
38
58
  executables: []
39
59
 
40
60
  extensions: []
@@ -65,23 +85,27 @@ rdoc_options:
65
85
  require_paths:
66
86
  - lib
67
87
  required_ruby_version: !ruby/object:Gem::Requirement
88
+ none: false
68
89
  requirements:
69
90
  - - ">="
70
91
  - !ruby/object:Gem::Version
92
+ hash: 3
71
93
  segments:
72
94
  - 0
73
95
  version: "0"
74
96
  required_rubygems_version: !ruby/object:Gem::Requirement
97
+ none: false
75
98
  requirements:
76
99
  - - ">="
77
100
  - !ruby/object:Gem::Version
101
+ hash: 3
78
102
  segments:
79
103
  - 0
80
104
  version: "0"
81
105
  requirements: []
82
106
 
83
107
  rubyforge_project: modelizer
84
- rubygems_version: 1.3.5
108
+ rubygems_version: 1.3.7
85
109
  signing_key:
86
110
  specification_version: 3
87
111
  summary: Need a simple, consistent way to create model instances and check validations in your Rails tests? Use the Modelizer.