mleung-koujou 0.0.2 → 0.0.3
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/lib/koujou/builder.rb
CHANGED
@@ -63,7 +63,6 @@ module Koujou #:nodoc:
|
|
63
63
|
# or if this is a validates_presence_of :some_id. The ids will be set
|
64
64
|
# when we create the association.
|
65
65
|
next if overridden_attribute?(attributes, v.name)
|
66
|
-
# has_required_id_validation?(instance, v.name)
|
67
66
|
|
68
67
|
generate_and_set_data(instance, v, false)
|
69
68
|
end
|
@@ -121,7 +120,7 @@ module Koujou #:nodoc:
|
|
121
120
|
instance.class.reflect_on_all_associations.each do |a|
|
122
121
|
# We only want to create the association if the user has required the id field.
|
123
122
|
# This will build the minimum valid requirements.
|
124
|
-
next unless has_required_id_validation?(instance, a
|
123
|
+
next unless has_required_id_validation?(instance, a)
|
125
124
|
|
126
125
|
if a.macro == :has_one || a.macro == :belongs_to
|
127
126
|
# If there's a two way association here (user has_one profile, profile belongs_to user)
|
@@ -198,7 +197,8 @@ module Koujou #:nodoc:
|
|
198
197
|
options[:in]
|
199
198
|
end
|
200
199
|
|
201
|
-
def has_required_id_validation?(instance,
|
200
|
+
def has_required_id_validation?(instance, association)
|
201
|
+
name = association.options.has_key?(:class_name) ? association.options[:class_name].downcase : association.name
|
202
202
|
!instance.class.required_validations.select{|v| v.name.to_s == "#{name}_id" }.empty?
|
203
203
|
end
|
204
204
|
|
@@ -60,10 +60,6 @@ module Koujou # :nodoc:
|
|
60
60
|
reflected_validations.each do |validation_type|
|
61
61
|
next if base.respond_to?("#{validation_type}_with_reflection")
|
62
62
|
ignore_subvalidations = false
|
63
|
-
if validation_type.kind_of?(Hash)
|
64
|
-
ignore_subvalidations = validation_type[:ignore_subvalidations]
|
65
|
-
validation_type = validation_type[:method]
|
66
|
-
end
|
67
63
|
base.class_eval <<-"end_eval"
|
68
64
|
class << self
|
69
65
|
def #{validation_type}_with_reflection(*attr_names)
|
@@ -118,7 +114,7 @@ module Koujou # :nodoc:
|
|
118
114
|
|
119
115
|
def custom_validations
|
120
116
|
# We don't want to get anything like: validate_associated_records_for_posts.
|
121
|
-
reflect_on_all_validations.select{|v| v.macro == :validate &&
|
117
|
+
reflect_on_all_validations.select{|v| v.macro == :validate && v.name.to_s.match("_associated_").nil? }
|
122
118
|
end
|
123
119
|
|
124
120
|
private
|
@@ -35,6 +35,7 @@ class ActiveRecordTestConnector
|
|
35
35
|
ActiveRecord::Schema.define do
|
36
36
|
create_table "users", :force => true do |t|
|
37
37
|
t.string "name", "email", "first_name", "last_name", "hashed_password"
|
38
|
+
t.text "about"
|
38
39
|
t.integer "age"
|
39
40
|
t.float "salary"
|
40
41
|
t.datetime "hired_on"
|
data/test/test_builder.rb
CHANGED
@@ -106,9 +106,12 @@ class TestBuilder < Test::Unit::TestCase
|
|
106
106
|
end
|
107
107
|
|
108
108
|
should 'find custom validations' do
|
109
|
-
User.
|
110
|
-
|
111
|
-
|
109
|
+
assert_equal 2, User.custom_validations.size
|
110
|
+
end
|
111
|
+
|
112
|
+
should 'car should have an owner association to user via class_name' do
|
113
|
+
c = Car.koujou
|
114
|
+
assert_not_nil c.owner
|
112
115
|
end
|
113
116
|
|
114
117
|
end
|
data/test/test_data_generator.rb
CHANGED
@@ -35,6 +35,12 @@ class TestDataGenerator < Test::Unit::TestCase
|
|
35
35
|
assert_match(/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, email)
|
36
36
|
end
|
37
37
|
|
38
|
+
should 'genreate valid text field values' do
|
39
|
+
@validation.expects(:name).twice.returns('about')
|
40
|
+
body = Koujou::DataGenerator.new(false, @validation).generate_data_for_column_type
|
41
|
+
assert_not_nil body
|
42
|
+
end
|
43
|
+
|
38
44
|
should 'generate a valid datetime' do
|
39
45
|
@validation.expects(:name).twice.returns('hired_on')
|
40
46
|
dt = Koujou::DataGenerator.new(false, @validation).generate_data_for_column_type
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mleung-koujou
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Leung
|
@@ -69,6 +69,7 @@ files:
|
|
69
69
|
- test/test_sequence.rb
|
70
70
|
has_rdoc: true
|
71
71
|
homepage: http://github.com/mleung/koujou
|
72
|
+
licenses:
|
72
73
|
post_install_message: PostInstall.txt
|
73
74
|
rdoc_options:
|
74
75
|
- --main
|
@@ -90,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
91
|
requirements: []
|
91
92
|
|
92
93
|
rubyforge_project: koujou
|
93
|
-
rubygems_version: 1.
|
94
|
+
rubygems_version: 1.3.5
|
94
95
|
signing_key:
|
95
96
|
specification_version: 3
|
96
97
|
summary: Koujou is a fixture replacement that requires no effort to use
|