software_language_helper.rb
3.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
module SoftwareLanguageHelper
MODEL_NAME = "language"
FIELD_NAME = "programming_language_id"
COLLUMN_NAME = {
name: "name",
version: "version",
operating_system: "operating_system"
}
def self.valid_language? language
return false if SoftwareHelper.all_table_is_empty?(language)
programming_language_id_list = ProgrammingLanguage.
select(:id).
collect { |dd| dd.id }
return programming_language_id_list.include?(
language[:programming_language_id].to_i
)
end
def self.list_language new_languages
return [] if new_languages.nil? or new_languages.length == 0
list_languages = []
new_languages.each do |new_language|
if valid_language? new_language
language = SoftwareLanguage.new
language.programming_language =
ProgrammingLanguage.find(new_language[:programming_language_id])
language.version = new_language[:version]
language.operating_system = new_language[:operating_system]
list_languages << language
end
end
list_languages
end
def self.valid_list_language? list_languages
return false if list_languages.nil? or list_languages.length == 0
list_languages.each do |language|
return false unless language.valid?
end
true
end
def self.language_as_tables(list_languages, show_information = false)
lambdas_list = []
if not show_information
return language_html_structure(
{:programming_language_id => "",
:version => "",
:operating_system => ""}
) if list_languages.nil?
list_languages.each do |language|
lambdas_list << language_html_structure(language)
end
else
list_languages.each do |language|
lambdas_list << language_html_show_structure(language)
end
end
lambdas_list
end
def self.language_html_structure(language_data)
language_id = language_data[:programming_language_id]
language_name = if language_data[:programming_language_id].blank?
""
else
ProgrammingLanguage.find(
language_data[:programming_language_id],
:select=>"name"
).name
end
data = {
model_name: MODEL_NAME,
field_name: FIELD_NAME,
name: {
label: DynamicTableHelper::LABEL_TEXT[:name],
value: language_name,
hidden: true,
autocomplete: true,
name: COLLUMN_NAME[:name],
id: language_id
},
version: {
label: DynamicTableHelper::LABEL_TEXT[:version],
value: language_data[:version],
name: COLLUMN_NAME[:version],
hidden: true
},
operating_system: {
label: DynamicTableHelper::LABEL_TEXT[:operating_system],
value: language_data[:operating_system],
name: COLLUMN_NAME[:operating_system],
delete: true
}
}
DynamicTableHelper.table_html_structure(data)
end
def self.language_html_show_structure(language)
Proc::new do
content_tag(
'table',
content_tag(
'tr',
content_tag('td', label_tag(_("Language Name: ")))+
content_tag(
'td',
ProgrammingLanguage.where(
:id => language[:programming_language_id]
)[0].name
)+
content_tag('td')
)+
content_tag('tr',
content_tag('td', label_tag(_("Version")))+
content_tag('td', language[:version])+
content_tag('td')
)+
content_tag('tr',
content_tag('td', label_tag(_("Operating System")))+
content_tag('td', language[:operating_system])+
content_tag('td', "")
), :class => 'dynamic-table software-language-table'
)
end
end
def self.add_dynamic_table
language_as_tables(nil).call
end
end