sga_fields_synchronizer 0.1.2 → 0.1.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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -26,7 +26,6 @@ class FieldsSynchronizerGenerator < Rails::Generator::Base
26
26
  end
27
27
 
28
28
  elsif(@action_to_invoke == "sync")
29
-
30
29
  FieldsReader.init
31
30
  skipped_tables = (options[:skipped_table] || []) << "common_fields"
32
31
  dictionary = File.join(RAILS_ROOT,'config','fields_dictionary.yml')
@@ -78,7 +77,8 @@ class FieldsSynchronizerGenerator < Rails::Generator::Base
78
77
 
79
78
  def get_to_be_deleted_columns tab_cols, tgt_cols
80
79
  tab_cols_dup = tab_cols.dup
81
- tab_cols_dup.delete_if{|k,v| tgt_cols.keys.include?(k)}
80
+ tgt_col_keys = tgt_cols.keys.collect{|key| (key =~ /^\d{1,}([^\d].*)$/) ? $1 : key}
81
+ tab_cols_dup.delete_if{|k,v| tgt_col_keys.include?(k)}
82
82
  tab_cols_dup
83
83
  end
84
84
 
@@ -90,21 +90,24 @@ class FieldsSynchronizerGenerator < Rails::Generator::Base
90
90
  end
91
91
 
92
92
  def get_changed_columns tab_cols, tgt_cols
93
- (tab_cols.keys & tgt_cols.keys).inject({}) do |hash, col|
93
+ tgt_cols_hash = {}
94
+ tgt_col_keys = tgt_cols.keys.collect{|key| (key =~ /^\d{1,}([^\d].*)$/) ? (tgt_cols_hash[$1] = key; $1) : key}
95
+ (tab_cols.keys & tgt_col_keys).inject({}) do |hash, col|
94
96
  origin_type = tab_cols[col].type.to_s
95
- target_type = tgt_cols[col][1]
97
+ target_col = tgt_cols_hash[col] || col
98
+ target_type = tgt_cols[target_col][1]
96
99
  if origin_type == target_type
97
- unless(target_col_options = tgt_cols[col][2]).blank?
100
+ unless(target_col_options = tgt_cols[target_col][2]).blank?
98
101
  [:null, :default, :limit, :precision, :scale].each do |k|
99
102
  next unless target_col_options.keys.include?(k)
100
103
  if target_col_options[k] != tab_cols[col].send(k)
101
- hash[col] = [tgt_cols[col], tab_cols[col]]
104
+ hash[col] = [tgt_cols[target_col], tab_cols[col]]
102
105
  break
103
106
  end
104
107
  end
105
108
  end
106
109
  else
107
- hash[col] = [tgt_cols[col], tab_cols[col]]
110
+ hash[col] = [tgt_cols[target_col], tab_cols[col]]
108
111
  end
109
112
  hash
110
113
  end
@@ -112,8 +115,12 @@ class FieldsSynchronizerGenerator < Rails::Generator::Base
112
115
 
113
116
  def get_added_columns tab_cols, tgt_cols
114
117
  tgt_dup = tgt_cols.dup
115
- tgt_dup.delete_if {|k,v| tab_cols.keys.include?(k)}
116
- tgt_dup
118
+ converted_cols = {}
119
+ tgt_dup.each_pair do |k,v|
120
+ converted_cols[(k =~ /^\d{1,}([^\d].*)$/) ? $1 : k] = v
121
+ end
122
+ converted_cols.delete_if {|k,v| tab_cols.keys.include?(k)}
123
+ converted_cols
117
124
  end
118
125
 
119
126
  def migration_prefix
@@ -5,7 +5,7 @@
5
5
  # 属性名
6
6
  # - 前台显示名称
7
7
  # - 数据类型
8
- # - 字段属性(hash)
8
+ # - [最小值,最大值]
9
9
 
10
10
 
11
11
  ####################################################
@@ -16,194 +16,153 @@
16
16
  configs:
17
17
 
18
18
  common_fields: &common_fields
19
- name:
19
+ 1id:
20
+ - "Id"
21
+ - "integer"
22
+ - :null: false
23
+ :primary: true
24
+ :limit: 4
25
+ 2created_at:
26
+ - "创建时间"
27
+ - "datetime"
28
+ 3updated_at:
29
+ - "更新时间"
30
+ - "datetime"
31
+ 4name:
20
32
  - "名称"
21
33
  - "string"
22
- job_id:
34
+ 5job_id:
23
35
  - "职业类型"
24
36
  - "integer"
25
- - :limit: 10
26
- :default: 1
27
- level:
37
+ 6level:
28
38
  - "等级"
29
39
  - "integer"
30
- - :default: 1
31
- health_point:
40
+ 7health_point:
32
41
  - "生命值"
33
42
  - "integer"
34
- max_health_point:
43
+ 8max_health_point:
35
44
  - "生命上限"
36
45
  - "integer"
37
- magic_point:
46
+ 9magic_point:
38
47
  - "魔法值"
39
48
  - "integer"
40
- max_magic_point:
49
+ 10max_magic_point:
41
50
  - "魔法上限"
42
51
  - "integer"
43
- max_attack_point:
52
+ 11max_attack_point:
44
53
  - "最大攻击力"
45
54
  - "integer"
46
- min_attack_point:
55
+ 12min_attack_point:
47
56
  - "最小攻击力"
48
57
  - "integer"
49
- max_magic_attack_point:
58
+ 13max_magic_attack_point:
50
59
  - "最大法术攻击力"
51
60
  - "integer"
52
- min_magic_attack_point:
61
+ 14min_magic_attack_point:
53
62
  - "最小法术攻击力"
54
63
  - "integer"
55
- max_defence_point:
64
+ 15max_defence_point:
56
65
  - "最大防御力"
57
66
  - "integer"
58
- min_defence_point:
67
+ 16min_defence_point:
59
68
  - "最小防御力"
60
69
  - "integer"
61
- max_magic_defence_point:
70
+ 17max_magic_defence_point:
62
71
  - "最大法术防御力"
63
72
  - "integer"
64
- min_magic_defence_point:
73
+ 18min_magic_defence_point:
65
74
  - "最小法术防御力"
66
75
  - "integer"
67
- health_restore_speed:
76
+ 19health_restore_speed:
68
77
  - "生命恢复"
69
78
  - "integer"
70
- magic_restore_speed:
79
+ 20magic_restore_speed:
71
80
  - "法力恢复"
72
81
  - "integer"
73
- attack_hit_rate:
74
- - "物理命中率"
82
+ 21hit_rate:
83
+ - "命中率"
75
84
  - "integer"
76
- magic_hit_rate:
77
- - "魔法命中率"
85
+ 22attack_dodge_rate:
86
+ - "闪避率"
78
87
  - "integer"
79
- attack_dodge_rate:
80
- - "物理闪避率"
81
- - "integer"
82
- magic_dodge_rate:
83
- - "魔法闪避率"
84
- - "integer"
85
- power_hit_rate:
88
+ 23power_hit_rate:
86
89
  - "暴击率"
87
90
  - "integer"
88
- power_hit_point:
91
+ 24power_hit_point:
89
92
  - "暴击威力"
90
93
  - "integer"
91
- explode_point:
94
+ 25explode_point:
92
95
  - "爆发值"
93
96
  - "integer"
94
- luck_point:
97
+ 26luck_point:
95
98
  - "幸运值"
96
99
  - "integer"
97
- defence_rate:
100
+ 27defence_rate:
98
101
  - "伤害减免概率"
99
102
  - "integer"
100
- defence_level:
103
+ 28defence_level:
101
104
  - "伤害减免等级"
102
105
  - "integer"
103
- move_speed:
106
+ 29move_speed:
104
107
  - "行走速度"
105
108
  - "integer"
106
- attack_speed:
109
+ 30attack_speed:
107
110
  - "攻击速度"
108
111
  - "integer"
109
- fire_attack:
110
- - "火属性伤害"
111
- - "integer"
112
- thunder_attack:
113
- - "雷属性伤害"
114
- - "integer"
115
- ice_attack:
116
- - "冰属性伤害"
117
- - "integer"
118
- poison_attack:
119
- - "毒属性伤害"
120
- - "integer"
121
- fire_defence:
122
- - "火属性防御"
123
- - "integer"
124
- thunder_defence:
125
- - "雷属性防御"
126
- - "integer"
127
- ice_defence:
128
- - "冰属性防御"
129
- - "integer"
130
- poison_defence:
131
- - "毒属性防御"
132
- - "integer"
133
112
 
134
- ####################################################
135
- ############ PlayerCharacter Fields ########
136
- ############ Last edited by Tengxianggong ########
137
- ############ Last edited at Jun 17, 2010 ########
138
- ####################################################
139
-
140
- player_characters:
113
+ monsters:
141
114
 
142
115
  <<: *common_fields
143
116
 
144
- gender:
145
- - "性别"
146
- - "integer"
147
- head_picture:
148
- - "头像"
149
- - "integer"
150
- hair_style:
151
- - "发型"
152
- - "integer"
153
- hair_color:
154
- - "发色"
155
- - "integer"
156
- exp:
157
- - "经验值"
158
- - "integer"
159
- stage:
160
- - "修仙阶段"
161
- - "integer"
162
- skill_point:
163
- - "元神点数"
164
- - "integer"
165
- fame_point:
166
- - "声望值"
117
+ 0nick_name:
118
+ - "内部代号"
119
+ - "string"
120
+
121
+ 32health_point_line_n:
122
+ - "生命值倍数"
167
123
  - "integer"
168
- contribution_point:
169
- - "贡献值"
124
+ 33move_kind:
125
+ - "移动类型"
170
126
  - "integer"
171
- pk_point:
172
- - "PK值"
127
+ 34injury_type:
128
+ - "受伤类型"
173
129
  - "integer"
174
- family_id:
175
- - "归属家族"
130
+ 35death_effect:
131
+ - "死亡特效"
176
132
  - "integer"
177
- house_id:
178
- - "归属门派"
133
+ 36base_bonus_rate:
134
+ - "基础爆率"
179
135
  - "integer"
180
- attack_talisman:
181
- - "攻击法宝"
136
+ 37bonus_n:
137
+ - "爆出数量"
182
138
  - "integer"
183
- defence_talisman:
184
- - "防御法宝"
139
+ 38bonus_exp:
140
+ - "奖励经验"
185
141
  - "integer"
186
- assist_talisman:
187
- - "辅助法宝"
142
+ 90version: # Runmway development columns # Monster acts_as_versioned magic column
143
+ - "版本"
188
144
  - "integer"
189
- left_finger:
190
- - "左手指"
145
+ 39priority:
146
+ - "开发优先级"
191
147
  - "integer"
192
- right_finger:
193
- - "右手指"
148
+ 98user_id:
149
+ - "创建者"
194
150
  - "integer"
195
- shoes:
196
- - "鞋子"
151
+ 39monster_id:
152
+ - "父怪兽" #clone monster
197
153
  - "integer"
198
- helmet:
199
- - "头盔"
154
+ 40guard_distance:
155
+ - "警戒范围"
200
156
  - "integer"
201
- necklace:
202
- - "项链"
157
+ 41call_distance:
158
+ - "呼叫距离"
203
159
  - "integer"
204
- clothing:
205
- - "衣服"
160
+ 42yield_rate:
161
+ - "物品爆率"
206
162
  - "integer"
207
- cloaks:
208
- - "披风"
163
+ 43white_box:
164
+ - "动态属性"
165
+ - "text"
166
+ 44board_icon_id:
167
+ - "头像"
209
168
  - "integer"
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sga_fields_synchronizer}
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
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-06-29}
12
+ s.date = %q{2011-01-14}
13
13
  s.description = %q{ A synchronizer for most frequently edited columns based on yml file}
14
14
  s.email = %q{tim.rubist@gmail.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 2
9
- version: 0.1.2
8
+ - 3
9
+ version: 0.1.3
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-06-29 00:00:00 +08:00
17
+ date: 2011-01-14 00:00:00 +08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency