acts_as_acts_as 0.0.5 → 0.0.6
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.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
|