gioco 0.3.6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,32 @@
1
+ # encoding: utf-8
2
+ module GeneratorInstructions
3
+ def instructions
4
+ puts <<-EOS
5
+
6
+ =======================================================
7
+
8
+ Gioco successfully installed.
9
+
10
+ Now you are able to add Badges using:
11
+ rake gioco:add_badge[BADGE_NAME#{",POINTS" if options[:points]}#{",TYPE_NAME" if options[:types]},DEFAULT]
12
+
13
+ To remove Badges using:
14
+ rake gioco:remove_badge[BADGE_NAME#{",TYPE_NAME" if options[:types]}]
15
+
16
+ #{
17
+ if options[:types]
18
+ "And to remove Types using:
19
+ rake gioco:remove_type[TYPE_NAME]"
20
+ end
21
+ }
22
+
23
+ For usage and more infomation go to the documentation:
24
+ http://joaomdmoura.github.com/gioco/
25
+
26
+ By João Moura (a.k.a joaomdmoura)
27
+
28
+ =======================================================
29
+
30
+ EOS
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ module MigrationsGenerator
2
+ def migrating
3
+ puts <<-EOS
4
+
5
+ =======================================
6
+ > Running rake db:migrate
7
+ =======================================
8
+
9
+ EOS
10
+ rake("db:migrate")
11
+ end
12
+
13
+ def configuring_seed
14
+ empty_directory "db/gioco"
15
+ create_file "db/gioco/db.rb"
16
+ append_file 'db/seeds.rb', 'require "#{Rails.root}/db/gioco/db.rb"'
17
+ end
18
+ end
@@ -0,0 +1,63 @@
1
+ module ModelGenerator
2
+ def generate_models
3
+ generate("model", "level badge_id:integer #{@model_name}_id:integer")
4
+ if options[:types]
5
+ generate("model", "point user_id:integer type_id:integer value:integer")
6
+ generate("model", "type name:string")
7
+ generate("model", "badge name:string type_id:integer #{(options[:points]) ? "points:integer" : ""} default:boolean")
8
+ else
9
+ generate("migration", "add_points_to_#{@model_name.pluralize} points:integer") if options[:points]
10
+ generate("model", "badge name:string #{(options[:points]) ? "points:integer" : ""} default:boolean")
11
+ end
12
+ end
13
+
14
+ def creating_templates
15
+ @points = (options[:points] ) ? true : false
16
+ @types = (options[:types] ) ? true : false
17
+ template "gioco.rb", "config/initializers/gioco.rb"
18
+ end
19
+
20
+ def adding_methods
21
+ resource = File.read find_in_source_paths("resource.rb")
22
+ badge = File.read find_in_source_paths("badge.rb")
23
+ inject_into_class "app/models/#{@model_name}.rb", @model_name.capitalize, "\n#{resource}\n"
24
+ inject_into_class "app/models/badge.rb", "Badge", "\n#{badge}\n"
25
+ end
26
+
27
+ def setup_relations
28
+ add_relationship("badge", "levels", "has_many", false, "destroy")
29
+ add_relationship("badge", @model_name.pluralize, "has_many", "levels")
30
+
31
+ add_relationship(@model_name, "levels", "has_many")
32
+ add_relationship(@model_name, "badges", "has_many", "levels")
33
+
34
+ add_relationship("level", @model_name, "belongs_to")
35
+ add_relationship("level", "badge", "belongs_to")
36
+
37
+ if options[:types]
38
+ add_relationship(@model_name, "points", "has_many")
39
+ add_relationship("type", "points", "has_many")
40
+ add_relationship("type", "badges", "has_many")
41
+ add_relationship("badge", "type", "belongs_to")
42
+ add_relationship("point", @model_name, "belongs_to")
43
+ add_relationship("point", "type", "belongs_to")
44
+ end
45
+ end
46
+
47
+ def add_validations
48
+ add_validation("badge", "name", [["presence", "true"]])
49
+ add_validation("type", "name", [["uniqueness", "true"], ["presence", "true"]]) if options[:types]
50
+ end
51
+
52
+ private
53
+
54
+ def add_relationship (model, related, relation, through = false, dependent = false)
55
+ inject_into_class "app/models/#{model}.rb", model.capitalize, "#{relation} :#{related} #{(through) ? ", :through => :#{through}" : ""} #{(dependent) ? ", :dependent => :#{dependent}" : ""}\n"
56
+ end
57
+
58
+ def add_validation (model, field, validations = [])
59
+ validations.each do |validation|
60
+ inject_into_class "app/models/#{model}.rb", model.capitalize, "validates :#{field}, :#{validation[0]} => #{validation[1]}\n"
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,101 @@
1
+ module RakesGenerator
2
+ def create_rakes
3
+ rakefile("gioco.rake") do
4
+ <<-EOS
5
+ # -*- encoding: utf-8 -*-
6
+ namespace :gioco do
7
+
8
+ desc "Used to add a new badge at Gioco scheme"
9
+
10
+ task :add_badge, [:name, #{":points, " if options[:points]}#{":type, " if options[:types]}:default] => :environment do |t, args|
11
+ arg_default = ( args.default ) ? eval(args.default) : false
12
+
13
+
14
+ if !args.name #{"|| !args.points" if options[:points]}#{" || !args.type" if options[:types]}
15
+ raise "There are missing some arguments"
16
+ else
17
+ badge_string = "#{options[:types] ? 'type = Type.find_or_create_by_name(\'#{args.type}\')\n' : ''}"
18
+
19
+ badge_string = badge_string + "badge = Badge.create({
20
+ :name => \'\#\{args.name\}\',
21
+ #{":points => \'\#\{args.points\}\'," if options[:points]}
22
+ #{":type_id => type.id," if options[:types]}
23
+ :default => \'\#\{arg_default\}\'
24
+ })\n"
25
+
26
+ if arg_default
27
+ badge_string = badge_string + 'resources = #{@model_name.capitalize}.find(:all)\n'
28
+ badge_string = badge_string + "resources.each do |r|
29
+ #{
30
+ if options[:points] && options[:types]
31
+ "r.points << Point.create({ :type_id => type.id, :value => \'\#\{args.points\}\'})"
32
+ elsif options[:points]
33
+ "r.points = \'\#\{args.points\}\'"
34
+ end
35
+ }
36
+ r.badges << badge
37
+ r.save!
38
+ end\n"
39
+ end
40
+
41
+ badge_string = badge_string + "puts '> Badge successfully created'"
42
+
43
+ eval badge_string
44
+
45
+ file_path = "/db/gioco/create_badge_\#\{args.name\}#{"_\#\{args.type\}" if options[:types]}.rb"
46
+ File.open("\#\{Rails.root\}\#\{file_path\}", 'w') { |f| f.write badge_string }
47
+ File.open("\#\{Rails.root\}/db/gioco/db.rb", 'a') { |f| f.write "require \\"\\#\\{Rails.root\\}\#\{file_path\}\\"\n" }
48
+
49
+ end
50
+
51
+ end
52
+
53
+ desc "Used to remove an old badge at Gioco scheme"
54
+
55
+ task :remove_badge, [:name#{", :type" if options[:types]}] => :environment do |t, args|
56
+ if !args.name#{" || !args.type" if options[:types]}
57
+ raise "There are missing some arguments"
58
+ else
59
+ badge_string = "#{"type = Type.find_by_name('\#\{args.type\}')" if options[:types]}
60
+ badge = Badge.where( :name => '\#\{args.name\}'#{", :type_id => type.id" if options[:types]} ).first
61
+ badge.destroy\n"
62
+ end
63
+
64
+ badge_string = badge_string + "puts '> Badge successfully removed'"
65
+
66
+ eval badge_string
67
+
68
+ file_path = "/db/gioco/remove_badge_\#\{args.name\}.rb"
69
+ File.open("\#\{Rails.root\}\#\{file_path\}", 'w') { |f| f.write badge_string }
70
+ File.open("\#\{Rails.root\}/db/gioco/db.rb", 'a') { |f| f.write "require \\"\\#\\{Rails.root\\}\#\{file_path\}\\"\n" }
71
+ end
72
+ #{
73
+ if options[:types]
74
+ '
75
+ desc "Removes a given type"
76
+ task :remove_type, [:name] => :environment do |t, args|
77
+ if !args.name
78
+ raise "There are missing some arguments"
79
+ else
80
+ type_string = "type = Type.find_by_name( \'#{args.name}\' )\n"
81
+ type_string = type_string + "if type.badges.empty?
82
+ type.destroy
83
+ else
84
+ raise \'Aborted! There are badges related with this type.\'
85
+ end\n"
86
+ end
87
+ type_string = type_string + "puts \'> Type successfully removed\'"
88
+ eval type_string
89
+
90
+ file_path = "/db/gioco/remove_type_#{args.name}.rb"
91
+ File.open("#{Rails.root}#{file_path}", "w") { |f| f.write type_string }
92
+ File.open("#{Rails.root}/db/gioco/db.rb", "a") { |f| f.write "require \\"\\#\\{Rails.root\\}#{file_path}\\"\n" }
93
+ end
94
+ '
95
+ end
96
+ }
97
+ end
98
+ EOS
99
+ end
100
+ end
101
+ end
@@ -1,181 +1,34 @@
1
- module Gioco
1
+ require "generators/gioco/model_generator"
2
+ require "generators/gioco/rakes_generator"
3
+ require "generators/gioco/migrations_generator"
4
+ require "generators/gioco/generator_instructions"
5
+
6
+ class Gioco
7
+ class SetupGenerator < Rails::Generators::Base
8
+ include ModelGenerator
9
+ include RakesGenerator
10
+ include MigrationsGenerator
11
+ include GeneratorInstructions
2
12
 
3
- class SetupGenerator < Rails::Generators::NamedBase
4
13
  source_root File.expand_path("../../templates", __FILE__)
5
14
 
6
15
  desc "Setup Gioco for some resource"
7
16
  class_option :points, :type => :boolean, :default => false, :desc => "Setup gioco with points-system based"
8
17
  class_option :types, :type => :boolean, :default => false, :desc => "Setup gioco with multiples types(categories) of badges."
9
18
 
10
- def generate_models
11
- generate("model", "level badge_id:integer #{file_name}_id:integer")
12
- if options[:types]
13
- generate("model", "point user_id:integer type_id:integer value:integer")
14
- generate("model", "type name:string")
15
- generate("model", "badge name:string type_id:integer #{(options[:points]) ? "points:integer" : ""} default:boolean")
16
- else
17
- generate("migration", "add_points_to_#{file_name.pluralize} points:integer") if options[:points]
18
- generate("model", "badge name:string #{(options[:points]) ? "points:integer" : ""} default:boolean")
19
- end
20
- end
21
-
22
- def creating_templates
23
- @points = ( options[:points] ) ? true : false
24
- @types = ( options[:types] ) ? true : false
25
- template "gioco.rb", "config/initializers/gioco.rb"
26
- end
27
19
 
28
- def setup_relations
29
- add_relationship( "badge", "levels", "has_many", false, "destroy" )
30
- add_relationship( "badge", file_name.pluralize, "has_many", "levels" )
31
-
32
- add_relationship( file_name, "levels", "has_many" )
33
- add_relationship( file_name, "badges", "has_many", "levels" )
34
-
35
- add_relationship( "level", file_name, "belongs_to" )
36
- add_relationship( "level", "badge", "belongs_to" )
37
-
38
- if options[:types]
39
- add_relationship( file_name, "points", "has_many" )
40
- add_relationship( "type", "points", "has_many" )
41
- add_relationship( "type", "badges", "has_many" )
42
- add_relationship( "badge", "type", "belongs_to" )
43
- add_relationship( "point", file_name, "belongs_to" )
44
- add_relationship( "point", "type", "belongs_to" )
45
- end
20
+ def execute
21
+ @model_name = ask("What is your resource model? (eg. user)")
22
+ generate_models
23
+ creating_templates
24
+ adding_methods
25
+ add_validations
26
+ setup_relations
27
+ create_rakes
28
+ configuring_seed
29
+ migrating
30
+ instructions
46
31
  end
47
-
48
- def create_rakes
49
- rakefile("gioco.rake") do
50
- <<-EOS
51
- # -*- encoding: utf-8 -*-
52
- namespace :gioco do
53
32
 
54
- desc "Used to add a new badge at Gioco scheme"
55
-
56
- task :add_badge, [:name, #{":points, " if options[:points]}#{":type, " if options[:types]}:default] => :environment do |t, args|
57
- args.default = ( args.default ) ? eval(args.default) : false
58
-
59
-
60
- if !args.name #{"&& !args.points" if options[:points]}#{" && !args.type" if options[:types]}
61
- puts "There are missing some arguments"
62
-
63
- else
64
- #{"type = ( Type.find_by_name(args.type) ) ? Type.find_by_name(args.type) : Type.create({ :name => args.type })" if options[:types]}
65
-
66
- badge = Badge.create({
67
- :name => args.name,
68
- #{":points => args.points," if options[:points]}
69
- #{":type_id => type.id," if options[:types]}
70
- :default => args.default
71
- })
72
-
73
- if args.default
74
- resources = #{file_name.capitalize}.find(:all)
75
- resources.each do |r|
76
- #{
77
- if options[:points] && options[:types]
78
- "r.points << Point.create({ :type_id => type.id, :value => args.points })"
79
- elsif options[:points]
80
- "r.points = args.points"
81
- end
82
- }
83
- r.badges << badge
84
- r.save!
85
- end
86
- end
87
-
88
- end
89
-
90
- end
91
-
92
- desc "Used to remove an old badge at Gioco scheme"
93
-
94
- task :remove_badge, [:name] => :environment do |t, args|
95
-
96
- if !args.name
97
- puts "There are missing some arguments"
98
-
99
- else
100
- badge = Badge.find_by_name( args.name )
101
- badge.destroy
102
- end
103
-
104
- end
105
- #{
106
- if options[:types]
107
- 'task :remove_type, [:name] => :environment do |t, args|
108
-
109
- if !args.name
110
- puts "There are missing some arguments"
111
-
112
- else
113
- type = Type.find_by_name( args.name )
114
-
115
- if type.badges.nil?
116
- type.destroy
117
- else
118
- puts "Aborted! There are badges related with this type."
119
- end
120
- end
121
- end'
122
33
  end
123
- }
124
- end
125
- EOS
126
- end
127
- end
128
-
129
- def migrating
130
- puts <<-EOS
131
-
132
- =======================================
133
- > Now is time to run rake db:migrate
134
- =======================================
135
-
136
- EOS
137
- rake("db:migrate")
138
- end
139
-
140
- def instructions
141
- puts <<-EOS
142
-
143
- =======================================================
144
-
145
- Gioco successfully installed.
146
-
147
- Now you are able to add Badges using:
148
- rake gioco:add_badge[BADGE_NAME#{",POINTS" if options[:points]}#{",TYPE" if options[:types]},DEFAULT]
149
-
150
- To remove Badges using:
151
- rake gioco:remove_badge[BADGE_NAME]
152
-
153
- #{
154
- if options[:types]
155
- "And to remove Types using:
156
- rake gioco:remove_type[TYPE_NAME]"
157
- end
158
- }
159
-
160
- For usage and more infomation go to the documentation:
161
- http://joaomdmoura.github.com/gioco/
162
-
163
- =======================================================
164
-
165
- EOS
166
- end
167
-
168
- private
169
-
170
- def add_relationship ( model, related, relation, through = false, dependent = false )
171
- gsub_file "app/models/#{model}.rb", get_class_header(model), "#{get_class_header(model)}
172
- #{relation} :#{related} #{(through) ? ", :through => :#{through}" : ""} #{(dependent) ? ", :dependent => :#{dependent}" : ""}"
173
- end
174
-
175
- def get_class_header ( model_name )
176
- "class #{model_name.capitalize} < ActiveRecord::Base"
177
- end
178
-
179
- end
180
-
181
34
  end
@@ -0,0 +1,32 @@
1
+ def add(resource_id)
2
+ resource = Gioco::Core.get_resource(resource_id)
3
+
4
+ if Gioco::Core::POINTS && !resource.badges.include?(self)
5
+ if Gioco::Core::TYPES
6
+ Gioco::Core.sync_resource_by_points(resource, self.points, self.type)
7
+ else
8
+ Gioco::Core.sync_resource_by_points(resource, self.points)
9
+ end
10
+ elsif !resource.badges.include?(self)
11
+ resource.badges << self
12
+ return self
13
+ end
14
+ end
15
+
16
+ def remove(resource_id)
17
+ resource = Gioco::Core.get_resource(resource_id)
18
+
19
+ if Gioco::Core::POINTS && resource.badges.include?(self)
20
+ if Gioco::Core::TYPES
21
+ type = self.type
22
+ badges_gap = Badge.where( "points < #{self.points} AND type_id = #{type.id}" ).order('points DESC')[0]
23
+ Gioco::Core.sync_resource_by_points( resource, ( badges_gap.nil? ) ? 0 : badges_gap.points, type)
24
+ else
25
+ badges_gap = Badge.where( "points < #{self.points}" ).order('points DESC')[0]
26
+ Gioco::Core.sync_resource_by_points( resource, ( badges_gap.nil? ) ? 0 : badges_gap.points)
27
+ end
28
+ elsif resource.badges.include?(self)
29
+ resource.levels.where( :badge_id => self.id )[0].destroy
30
+ return self
31
+ end
32
+ end
@@ -1,3 +1,3 @@
1
- Gioco::Core::RESOURCE_NAME = "<%= file_name %>"
1
+ Gioco::Core::RESOURCE_NAME = "<%= @model_name %>"
2
2
  Gioco::Core::POINTS = <%= @points %>
3
3
  Gioco::Core::TYPES = <%= @types %>
@@ -0,0 +1,41 @@
1
+ def change_points(options)
2
+ if Gioco::Core::TYPES
3
+ type_id = options[:type]
4
+ points = options[:points]
5
+ else
6
+ points = options
7
+ end
8
+ type = (type_id) ? Type.find(type_id) : false
9
+
10
+ if Gioco::Core::TYPES
11
+ raise "Missing Type Identifier argument" if !type_id
12
+ old_pontuation = self.points.where(:type_id => type_id).sum(:value)
13
+ else
14
+ old_pontuation = self.points.to_i
15
+ end
16
+ new_pontuation = old_pontuation + points
17
+ Gioco::Core.sync_resource_by_points(self, new_pontuation, type)
18
+ end
19
+
20
+ def next_badge?(type_id = false)
21
+ type = (type_id) ? Type.find(type_id) : false
22
+ if Gioco::Core::TYPES
23
+ raise "Missing Type Identifier argument" if !type_id
24
+ old_pontuation = self.points.where(:type_id => type_id).sum(:value)
25
+ else
26
+ old_pontuation = self.points.to_i
27
+ end
28
+ next_badge = Badge.where("points > #{old_pontuation}").order("points ASC").first
29
+ last_badge_point = self.badges.last.try('points')
30
+ last_badge_point ||= 0
31
+
32
+ if next_badge
33
+ percentage = (old_pontuation - last_badge_point)*100/(next_badge.points - last_badge_point)
34
+ points = next_badge.points - old_pontuation
35
+ next_badge_info = {
36
+ :badge => next_badge,
37
+ :points => points,
38
+ :percentage => percentage
39
+ }
40
+ end
41
+ end
@@ -1,6 +1,4 @@
1
- module Gioco
1
+ class Gioco
2
2
  require "gioco/core"
3
- require "gioco/resources"
4
- require "gioco/badges"
5
3
  require "gioco/rankings"
6
4
  end
@@ -1,4 +1,4 @@
1
- module Gioco
1
+ class Gioco
2
2
  class Core
3
3
  def self.get_resource(rid)
4
4
  RESOURCE_NAME.capitalize.constantize.find(rid)
@@ -6,29 +6,37 @@ module Gioco
6
6
 
7
7
  def self.sync_resource_by_points(resource, points, type = false)
8
8
 
9
+ badges = {}
9
10
  if TYPES && type
10
11
  old_pontuation = resource.points.where(:type_id => type.id).sum(:value)
11
- related_badges = Badge.where( ((old_pontuation < points) ? "points <= #{points}" : "points > #{points} AND points <= #{old_pontuation}") + " AND type_id = #{type.id}" )
12
+ related_badges = Badge.where(((old_pontuation < points) ? "points <= #{points}" : "points > #{points} AND points <= #{old_pontuation}") + " AND type_id = #{type.id}")
12
13
  else
13
14
  old_pontuation = resource.points.to_i
14
- related_badges = Badge.where((old_pontuation < points) ? "points <= #{points}" : "points > #{points} AND points <= #{old_pontuation}" )
15
+ related_badges = Badge.where((old_pontuation < points) ? "points <= #{points}" : "points > #{points} AND points <= #{old_pontuation}")
15
16
  end
16
17
 
17
- new_pontuation = ( old_pontuation < points ) ? points : - (old_pontuation - points)
18
+ new_pontuation = ( old_pontuation < points ) ? points - old_pontuation : - (old_pontuation - points)
18
19
 
19
20
  Badge.transaction do
20
21
  if TYPES && type
21
- resource.points << Point.create({ :type_id => type.id, :value => new_pontuation })
22
- elsif options[:points]
23
- resource.update_attribute( :points, new_pontuation )
22
+ resource.points << Point.create({ :type_id => type.id, :value => new_pontuation })
23
+ elsif POINTS
24
+ resource.update_attribute( :points, points )
24
25
  end
25
26
  related_badges.each do |badge|
26
27
  if old_pontuation < points
27
- resource.badges << badge if !resource.badges.include?(badge)
28
+ if !resource.badges.include?(badge)
29
+ resource.badges << badge
30
+ badges[:added] = [] if badges[:added].nil?
31
+ badges[:added] << badge
32
+ end
28
33
  elsif old_pontuation > points
29
34
  resource.levels.where( :badge_id => badge.id )[0].destroy
35
+ badges[:removed] = [] if badges[:removed].nil?
36
+ badges[:removed] << badge
30
37
  end
31
38
  end
39
+ badges
32
40
  end
33
41
  end
34
42
 
@@ -1,4 +1,4 @@
1
- module Gioco
1
+ class Gioco
2
2
  class Ranking < Core
3
3
 
4
4
  def self.generate
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gioco
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -20,12 +20,16 @@ extensions: []
20
20
  extra_rdoc_files: []
21
21
  files:
22
22
  - lib/gioco.rb
23
+ - lib/generators/gioco/generator_instructions.rb
24
+ - lib/generators/gioco/migrations_generator.rb
25
+ - lib/generators/gioco/model_generator.rb
26
+ - lib/generators/gioco/rakes_generator.rb
23
27
  - lib/generators/gioco/setup_generator.rb
28
+ - lib/generators/templates/badge.rb
24
29
  - lib/generators/templates/gioco.rb
25
- - lib/gioco/badges.rb
30
+ - lib/generators/templates/resource.rb
26
31
  - lib/gioco/core.rb
27
32
  - lib/gioco/rankings.rb
28
- - lib/gioco/resources.rb
29
33
  - init.rb
30
34
  homepage: http://joaomdmoura.github.com/gioco/
31
35
  licenses: []
@@ -1,36 +0,0 @@
1
- module Gioco
2
- class Badges < Core
3
- def self.add(rid, badge_id)
4
- resource = get_resource( rid )
5
- badge = Badge.find( badge_id )
6
-
7
- if POINTS && !resource.badges.include?(badge)
8
- if TYPES
9
- sync_resource_by_points( resource, badge.points, badge.type)
10
- else
11
- sync_resource_by_points( resource, badge.points)
12
- end
13
- elsif !resource.badges.include?(badge)
14
- resource.badges << badge
15
- end
16
- end
17
-
18
- def self.remove( rid, badge_id )
19
- resource = get_resource( rid )
20
- badge = Badge.find( badge_id )
21
- type = badge.type
22
-
23
- if POINTS && resource.badges.include?(badge)
24
- if TYPES
25
- badges_gap = Badge.where( "points < #{badge.points} AND type_id = #{type.id}" )[0]
26
- sync_resource_by_points( resource, ( badges_gap.nil? ) ? 0 : badges_gap.points, type)
27
- else
28
- badges_gap = Badge.where( "points < #{badge.points}" )[0]
29
- sync_resource_by_points( resource, ( badges_gap.nil? ) ? 0 : badges_gap.points)
30
- end
31
- elsif resource.badges.include?(badge)
32
- resource.levels.where( :badge_id => badge.id )[0].destroy
33
- end
34
- end
35
- end
36
- end
@@ -1,15 +0,0 @@
1
- module Gioco
2
- class Resources < Core
3
- def self.change_points( rid, points, tid = false )
4
- resource = get_resource( rid )
5
- type = ( tid ) ? Type.find(tid) : false
6
- if TYPES && tid
7
- old_pontuation = resource.points.where(:type_id => tid).sum(:value)
8
- else
9
- old_pontuation = resource.points.to_i
10
- end
11
- new_pontuation = old_pontuation + points
12
- sync_resource_by_points(resource, new_pontuation, type)
13
- end
14
- end
15
- end