acts_as_acts_as 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
@@ -1,5 +1,15 @@
|
|
1
1
|
module ActsAsActsAs
|
2
2
|
module ActsAsShortcuts
|
3
|
+
|
4
|
+
def require_parameters(options, *options_list)
|
5
|
+
missing_options = (options_list - options.keys) # would convert to_s here, but people may not convert which would just hide bugs
|
6
|
+
if missing_options.blank?
|
7
|
+
true
|
8
|
+
else
|
9
|
+
raise "Model #{self.to_s} must pass options that include #{missing_options.inspect}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
3
13
|
def require_methods(*method_list)
|
4
14
|
method_list.each do |required_method|
|
5
15
|
unless instance_methods.include?(required_method.to_s)
|
@@ -44,8 +44,10 @@ module ActsAsActsAs::Macros
|
|
44
44
|
uid = t.to_i.to_s + t.usec.to_s
|
45
45
|
table_name = "temp_table_#{uid}"
|
46
46
|
ActiveRecord::Base.connection.create_table(table_name) do |t|
|
47
|
-
model_opts[:columns].each do |
|
48
|
-
|
47
|
+
model_opts[:columns].each do |args|
|
48
|
+
(name, type, options) = args
|
49
|
+
options = {} if options.nil?
|
50
|
+
t.send(type, name, options)
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
@@ -54,9 +56,11 @@ module ActsAsActsAs::Macros
|
|
54
56
|
newclass.set_table_name table_name
|
55
57
|
newclass.reset_column_information
|
56
58
|
|
57
|
-
|
58
|
-
|
59
|
-
|
59
|
+
if model_opts[:methods]
|
60
|
+
newclass.class_eval do
|
61
|
+
model_opts[:methods].each do |m|
|
62
|
+
attr_accessor m
|
63
|
+
end
|
60
64
|
end
|
61
65
|
end
|
62
66
|
|
@@ -38,7 +38,7 @@ class ActsAsActsAs::Requirements::Collector
|
|
38
38
|
end
|
39
39
|
|
40
40
|
module Context
|
41
|
-
[:require_methods, :require_class_methods, :require_columns, :define_methods, :define_class_methods].each do |x|
|
41
|
+
[:require_methods, :require_class_methods, :require_columns, :require_parameters, :define_methods, :define_class_methods].each do |x|
|
42
42
|
define_method(x) { |*args| [x, args] }
|
43
43
|
end
|
44
44
|
end
|
@@ -57,6 +57,26 @@ class ActsAsActsAs::Requirements::Verifier
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
+
def require_parameters(options, reqs, *parameters)
|
61
|
+
verifier = self
|
62
|
+
acts_as_method = @acts_as_method
|
63
|
+
describe 'required methods' do
|
64
|
+
parameters.each do |parameter|
|
65
|
+
it "#{parameter} must be passed in the #{acts_as_method} options hash " do
|
66
|
+
mod = verifier.tableless_model(
|
67
|
+
:columns => reqs[:require_columns]
|
68
|
+
)
|
69
|
+
|
70
|
+
passing_options = parameters.inject({}) {|h, param| h[param] = :foo ; h}
|
71
|
+
passing_options.merge!(options)
|
72
|
+
passing_options.delete(parameter)
|
73
|
+
|
74
|
+
lambda { mod.send(acts_as_method, passing_options) }.should raise_error(/#{parameter}/)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
60
80
|
def require_columns(options, reqs, *columns)
|
61
81
|
verifier = self
|
62
82
|
acts_as_method = @acts_as_method
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_acts_as
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- phinze
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-03-05 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|