acts_as_arter_flow_object 0.2.0 → 0.2.4
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 +1 -1
- data/acts_as_arter_flow_object.gemspec +3 -3
- data/generators/acts_as_arter_flow_object/acts_as_arter_flow_object_generator.rb +2 -0
- data/generators/acts_as_arter_flow_object/templates/models/arter_flow_object.rb +39 -0
- data/lib/acts_as_arter_flow_object.rb +1 -1
- data/lib/afo/acts_as_afo.rb +21 -14
- metadata +4 -4
- data/lib/afo/arter_flow_object.rb +0 -19
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.4
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{acts_as_arter_flow_object}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["tim.teng"]
|
12
|
-
s.date = %q{2010-04-
|
12
|
+
s.date = %q{2010-04-20}
|
13
13
|
s.description = %q{simple progress indicator for game arters }
|
14
14
|
s.email = %q{tim.rubist@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -27,9 +27,9 @@ Gem::Specification.new do |s|
|
|
27
27
|
"generators/acts_as_arter_flow_object/USAGE",
|
28
28
|
"generators/acts_as_arter_flow_object/acts_as_arter_flow_object_generator.rb",
|
29
29
|
"generators/acts_as_arter_flow_object/templates/migration.rb",
|
30
|
+
"generators/acts_as_arter_flow_object/templates/models/arter_flow_object.rb",
|
30
31
|
"lib/acts_as_arter_flow_object.rb",
|
31
32
|
"lib/afo/acts_as_afo.rb",
|
32
|
-
"lib/afo/arter_flow_object.rb",
|
33
33
|
"test/helper.rb",
|
34
34
|
"test/test_acts_as_arter_flow_object.rb"
|
35
35
|
]
|
@@ -6,6 +6,8 @@ class ActsAsArterFlowObjectGenerator < Rails::Generator::Base
|
|
6
6
|
def manifest
|
7
7
|
recorded_session = record do |m|
|
8
8
|
unless options[:skip_migration]
|
9
|
+
m.template "models/arter_flow_object.rb", "app/models/arter_flow_object.rb"
|
10
|
+
m.directory "db/migrate"
|
9
11
|
m.migration_template 'migration.rb', 'db/migrate',
|
10
12
|
:assigns => { :migration_name => "CreateArterFlowObjectsTable" },
|
11
13
|
:migration_file_name => "create_arter_flow_objects_table"
|
@@ -0,0 +1,39 @@
|
|
1
|
+
class ArterFlowObject < ActiveRecord::Base
|
2
|
+
|
3
|
+
default_scope :order => "created_at desc"
|
4
|
+
|
5
|
+
belongs_to :afoable, :polymorphic => true
|
6
|
+
|
7
|
+
STEPS = [:design, :model, :map, :rig]
|
8
|
+
|
9
|
+
STEPS.each do |s|
|
10
|
+
self.class_eval <<-EOF
|
11
|
+
belongs_to :#{s}_updater, :class_name => "User", :foreign_key => :#{s}_updater_id
|
12
|
+
EOF
|
13
|
+
|
14
|
+
self.module_eval <<-MDE
|
15
|
+
def toggle_#{s}! usr
|
16
|
+
self.toggle "#{s}".to_sym
|
17
|
+
self.#{s}_updater = usr
|
18
|
+
save!
|
19
|
+
end
|
20
|
+
|
21
|
+
def #{s}_updater_name
|
22
|
+
self.#{s}_updater.login rescue ''
|
23
|
+
end
|
24
|
+
MDE
|
25
|
+
end
|
26
|
+
|
27
|
+
def origin_human_type
|
28
|
+
Kernel.const_get(self.afoable_type).human_name
|
29
|
+
end
|
30
|
+
|
31
|
+
def origin_name
|
32
|
+
afoable.send(:title) rescue (afoable.send(:name) rescue 'Unknown')
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.afo_types_for_select
|
36
|
+
find(:all, :select => "DISTINCT afoable_type").inject([]){|ary,rcd| ary << [rcd.origin_human_type, rcd.afoable_type]}
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
data/lib/afo/acts_as_afo.rb
CHANGED
@@ -20,20 +20,27 @@ module ActsAsAFO
|
|
20
20
|
create_arter_flow_objecjt
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
23
|
+
# lazy generating
|
24
|
+
# 'cause before user run " script/generate acts_as_arter_flow_object",
|
25
|
+
# acts_as_arter_flow_object.rb has not been copied to app/models,
|
26
|
+
# and this will caused a "uninitialized constant ActsAsAFO::InstanceMethods::ArterFlowObject" error.
|
27
|
+
klazz = Kernel.const_get("ArterFlowObject") rescue nil
|
28
|
+
unless klazz.nil?
|
29
|
+
ArterFlowObject::STEPS.each do |s|
|
30
|
+
module_eval <<-EOF
|
31
|
+
def #{s}ed?
|
32
|
+
!!arter_flow_object.send(:#{s}) rescue false
|
33
|
+
end
|
34
|
+
|
35
|
+
def toggle_#{s}!(usr)
|
36
|
+
raise ActiveRecord::RecordNotFound.new("no corresponding arter flow object record found") unless arter_flow_object
|
37
|
+
arter_flow_object.toggle(:#{s})
|
38
|
+
arter_flow_object.#{s}_updater = usr
|
39
|
+
arter_flow_object.save
|
40
|
+
end
|
41
|
+
EOF
|
42
|
+
end
|
43
|
+
end
|
37
44
|
|
38
45
|
private
|
39
46
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 4
|
9
|
+
version: 0.2.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- tim.teng
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-04-
|
17
|
+
date: 2010-04-20 00:00:00 +08:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -38,9 +38,9 @@ files:
|
|
38
38
|
- generators/acts_as_arter_flow_object/USAGE
|
39
39
|
- generators/acts_as_arter_flow_object/acts_as_arter_flow_object_generator.rb
|
40
40
|
- generators/acts_as_arter_flow_object/templates/migration.rb
|
41
|
+
- generators/acts_as_arter_flow_object/templates/models/arter_flow_object.rb
|
41
42
|
- lib/acts_as_arter_flow_object.rb
|
42
43
|
- lib/afo/acts_as_afo.rb
|
43
|
-
- lib/afo/arter_flow_object.rb
|
44
44
|
- test/helper.rb
|
45
45
|
- test/test_acts_as_arter_flow_object.rb
|
46
46
|
has_rdoc: true
|
@@ -1,19 +0,0 @@
|
|
1
|
-
class ArterFlowObject < ActiveRecord::Base
|
2
|
-
|
3
|
-
default_scope :order => "created_at desc"
|
4
|
-
|
5
|
-
belongs_to :afoable, :polymorphic => true
|
6
|
-
|
7
|
-
STEPS = [:design, :model, :map, :rig]
|
8
|
-
|
9
|
-
STEPS.each do |s|
|
10
|
-
self.class_eval <<-EOF
|
11
|
-
belongs_to :#{s}_updater, :class_name => "User", :foreign_key => :#{s}_updater_id
|
12
|
-
EOF
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.afo_types_for_select
|
16
|
-
find(:all, :select => "DISTINCT afoable_type").inject([]){|ary,rcd| tipe = rcd.call(:afoable_type); ary << [Kernel.const_get(tipe).human_name,tipe]}
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|