libisi 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +677 -0
- data/Manifest +89 -0
- data/Rakefile +34 -0
- data/lib/inifile.rb +119 -0
- data/lib/libisi.rb +948 -0
- data/lib/libisi/attribute.rb +32 -0
- data/lib/libisi/attribute/activerecord.rb +34 -0
- data/lib/libisi/attribute/base.rb +33 -0
- data/lib/libisi/base.rb +109 -0
- data/lib/libisi/bridge.rb +21 -0
- data/lib/libisi/bridge/base.rb +23 -0
- data/lib/libisi/bridge/java.rb +71 -0
- data/lib/libisi/bridge/python.rb +37 -0
- data/lib/libisi/cache.rb +21 -0
- data/lib/libisi/cache/base.rb +67 -0
- data/lib/libisi/cache/file_cache.rb +24 -0
- data/lib/libisi/chart.rb +21 -0
- data/lib/libisi/chart/base.rb +320 -0
- data/lib/libisi/chart/jfreechart.rb +682 -0
- data/lib/libisi/chart/jfreechart_generator.rb +206 -0
- data/lib/libisi/color.rb +21 -0
- data/lib/libisi/color/base.rb +66 -0
- data/lib/libisi/color/colortools.rb +92 -0
- data/lib/libisi/color/java.rb +44 -0
- data/lib/libisi/concept.rb +33 -0
- data/lib/libisi/concept/activerecord.rb +39 -0
- data/lib/libisi/concept/base.rb +58 -0
- data/lib/libisi/doc.rb +35 -0
- data/lib/libisi/doc/base.rb +414 -0
- data/lib/libisi/doc/html.rb +85 -0
- data/lib/libisi/doc/text.rb +98 -0
- data/lib/libisi/doc/wiki.rb +55 -0
- data/lib/libisi/environment.rb +21 -0
- data/lib/libisi/environment/base.rb +36 -0
- data/lib/libisi/environment/http.rb +105 -0
- data/lib/libisi/environment/rails.rb +27 -0
- data/lib/libisi/environment/root.rb +23 -0
- data/lib/libisi/fake_logger/logger.rb +61 -0
- data/lib/libisi/function/base.rb +30 -0
- data/lib/libisi/hal.rb +558 -0
- data/lib/libisi/instance.rb +27 -0
- data/lib/libisi/instance/activerecord.rb +21 -0
- data/lib/libisi/instance/base.rb +42 -0
- data/lib/libisi/log.rb +237 -0
- data/lib/libisi/mail/base.rb +32 -0
- data/lib/libisi/mail/tmail.rb +120 -0
- data/lib/libisi/parameter/base.rb +41 -0
- data/lib/libisi/property.rb +27 -0
- data/lib/libisi/property/base.rb +28 -0
- data/lib/libisi/reciever/base.rb +31 -0
- data/lib/libisi/reciever/socket.rb +31 -0
- data/lib/libisi/relation.rb +23 -0
- data/lib/libisi/request.rb +22 -0
- data/lib/libisi/request/base.rb +29 -0
- data/lib/libisi/request/http.rb +129 -0
- data/lib/libisi/response/base.rb +27 -0
- data/lib/libisi/task/base.rb +27 -0
- data/lib/libisi/task/http.rb +90 -0
- data/lib/libisi/tee.rb +296 -0
- data/lib/libisi/ui/base.rb +116 -0
- data/lib/libisi/ui/console.rb +238 -0
- data/lib/libisi/ui/kde.rb +94 -0
- data/lib/libisi/ui/nobody.rb +29 -0
- data/lib/libisi/ui/rails.rb +150 -0
- data/lib/libisi/ui/x11.rb +55 -0
- data/lib/libisi/uri.rb +42 -0
- data/lib/libisi/uri/activerecord.rb +152 -0
- data/lib/libisi/uri/base.rb +115 -0
- data/lib/libisi/uri/file.rb +43 -0
- data/lib/libisi/uri/ldap.rb +72 -0
- data/lib/libisi/uri/mysql.rb +98 -0
- data/lib/libisi/value.rb +31 -0
- data/lib/libisi/value/attribute_value.rb +19 -0
- data/lib/libisi/value/base.rb +55 -0
- data/lib/libisi/value/property_value.rb +19 -0
- data/lib/libisi/value/relation_value.rb +19 -0
- data/lib/ordered_hash.rb +228 -0
- data/libisi.gemspec +31 -0
- data/test/bridge_test.rb +77 -0
- data/test/cache_test.rb +65 -0
- data/test/chart_test.rb +179 -0
- data/test/color_test.rb +64 -0
- data/test/concept_test.rb +56 -0
- data/test/doc_test.rb +172 -0
- data/test/fixtures/test.db +0 -0
- data/test/ordered_hash_test.rb +39 -0
- data/test/profile_test.rb +36 -0
- data/test/request_test.rb +121 -0
- data/test/test +0 -0
- data/test/ui_test.rb +62 -0
- metadata +244 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
# Copyright (C) 2007-2010 Logintas AG Switzerland
|
2
|
+
#
|
3
|
+
# This file is part of Libisi.
|
4
|
+
#
|
5
|
+
# Libisi is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Libisi is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with Libisi. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require "libisi/doc/base"
|
19
|
+
class HtmlDoc < BaseDoc
|
20
|
+
|
21
|
+
def start_doc(options = {}, &block)
|
22
|
+
writer(options, &block) << '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"' +
|
23
|
+
'"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' +
|
24
|
+
'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'
|
25
|
+
end
|
26
|
+
def end_doc(options = {}, &block)
|
27
|
+
writer(options, &block) << '</html>'
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
def tr(options = {}, &block); generate_tag("tr", false, options) {yield; nil} end
|
32
|
+
def td(options = {}, &block); generate_tag("td", true, options, &block); end
|
33
|
+
def th(options = {}, &block); generate_tag("th", true, options, &block); end
|
34
|
+
def ul(options = {}, &block); generate_tag("ul", false, options, &block); end
|
35
|
+
def li(options = {}, &block); generate_tag("li", true, options, &block); end
|
36
|
+
def p(options = {}, &block); generate_tag("p", true, options, &block); end
|
37
|
+
|
38
|
+
private
|
39
|
+
def generate_attributes(tag_name, options)
|
40
|
+
ret = ""
|
41
|
+
case tag_name.to_s
|
42
|
+
when "table"
|
43
|
+
ret += " border='#{options[:style].delete(:border)}'" if (options[:style][:border] rescue nil)
|
44
|
+
ret += " class='#{options[:css_class]}'" if (options[:css_class] rescue nil)
|
45
|
+
ret += " id='#{options[:id]}'" if (options[:id] rescue nil)
|
46
|
+
when "td","th"
|
47
|
+
ret += " colspan='#{options.delete(:colspan)}'" if options[:colspan]
|
48
|
+
ret += " rowspan='#{options.delete(:rowspan)}'" if options[:rowspan]
|
49
|
+
end
|
50
|
+
|
51
|
+
style = ""
|
52
|
+
|
53
|
+
case options[:style]
|
54
|
+
when NilClass
|
55
|
+
when String; style += options[:style]
|
56
|
+
when Hash
|
57
|
+
options[:style].each {|key, val| style += "#{key.to_s.gsub("_","-")}:#{val};"}
|
58
|
+
else
|
59
|
+
raise "Unexpected style type #{options[:style].inspect}"
|
60
|
+
end
|
61
|
+
|
62
|
+
style += "text-align:#{options[:text_align]}" if options[:text_align]
|
63
|
+
ret += " style='#{style}'" if style != ""
|
64
|
+
ret
|
65
|
+
end
|
66
|
+
|
67
|
+
def generate_tag(name, content_tag, options = {}, &block)
|
68
|
+
writer(options, &block) << "<#{name}#{generate_attributes(name,options)}>"
|
69
|
+
if content_tag
|
70
|
+
writer(options, &block) << yield
|
71
|
+
else
|
72
|
+
yield
|
73
|
+
end
|
74
|
+
writer(options, &block) << "</#{name}>\n"
|
75
|
+
nil
|
76
|
+
end
|
77
|
+
|
78
|
+
def generate_table(options = {}, &block); generate_tag("table", false, options) {super;nil} end
|
79
|
+
|
80
|
+
def generate_title(text, options = {}, &block)
|
81
|
+
generate_tag("h#{(@title_depth or 0) + 1}", true, options) { text}
|
82
|
+
yield
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# Copyright (C) 2007-2010 Logintas AG Switzerland
|
2
|
+
#
|
3
|
+
# This file is part of Libisi.
|
4
|
+
#
|
5
|
+
# Libisi is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Libisi is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with Libisi. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require "libisi/doc/base.rb"
|
19
|
+
require "text/format.rb"
|
20
|
+
class TextDoc < BaseDoc
|
21
|
+
|
22
|
+
def tr(options = {}, &block);
|
23
|
+
@rows.push([])
|
24
|
+
#writer(options, &block) << "|"
|
25
|
+
yield
|
26
|
+
#writer(options, &block) << "\n"
|
27
|
+
end
|
28
|
+
def th(options = {}, &block);
|
29
|
+
#writer(options, &block) << " #{yield.inspect.upcase} |"
|
30
|
+
@rows[-1].push(yield.to_s.upcase.gsub("\n",""))
|
31
|
+
# options[:colspan].times {@rows[-1].push(nil} if options[:colspan]
|
32
|
+
end
|
33
|
+
def td(options = {}, &block);
|
34
|
+
# writer(options, &block) << " #{yield.inspect} |"
|
35
|
+
@rows[-1].push(yield.to_s.gsub("\n",""))
|
36
|
+
options[:colspan].times {@rows[-1].push(-1)} if options[:colspan]
|
37
|
+
end
|
38
|
+
|
39
|
+
def ul(options = {}, &block)
|
40
|
+
# writer(options, &block) << "#{yield}"
|
41
|
+
yield
|
42
|
+
end
|
43
|
+
def li(options = {}, &block)
|
44
|
+
writer(options, &block) << " * #{block(yield,3).strip}\n"
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
def generate_bare_table(options = {}, &block);
|
49
|
+
@rows = []
|
50
|
+
# writer(options, &block) << "<<<TABLE>>>\n"
|
51
|
+
super
|
52
|
+
# writer(options, &block) << "<<<END TABLE>>>\n"
|
53
|
+
|
54
|
+
max_cols = @rows.map {|r| r.length}.max
|
55
|
+
col_lengths = []
|
56
|
+
max_cols.times {|i|
|
57
|
+
col_lengths[i] = @rows.map {|r|
|
58
|
+
(r[i] or "").to_s.length
|
59
|
+
}.max
|
60
|
+
}
|
61
|
+
|
62
|
+
@rows.each {|r|
|
63
|
+
r.length.times{|i|
|
64
|
+
r[i] = (r[i] or "").to_s.ljust(col_lengths[i])
|
65
|
+
}
|
66
|
+
writer(options, &block) << ("| " + r.join(" | ") + " |\n")
|
67
|
+
}
|
68
|
+
end
|
69
|
+
|
70
|
+
def block(text, left_margin = 0, width = 60)
|
71
|
+
f1 = Text::Format.new
|
72
|
+
f1.first_indent = 0 #left_margin
|
73
|
+
f1.left_margin = left_margin
|
74
|
+
f1.columns = width
|
75
|
+
|
76
|
+
text.split("\n").map {|t|
|
77
|
+
f1.format(t).sub(/\n$/,"")
|
78
|
+
}.join("\n")
|
79
|
+
end
|
80
|
+
|
81
|
+
class WriterWrapper
|
82
|
+
def initialize(writer, depth)
|
83
|
+
@w = writer
|
84
|
+
@d = (depth or 0).to_i
|
85
|
+
end
|
86
|
+
def <<(text)
|
87
|
+
#$log.debug("Write: #{text}")
|
88
|
+
raise "text is nil" if text.nil?
|
89
|
+
# STDOUT << ("\n" + text.inspect + "\n")
|
90
|
+
text = text.to_s.gsub(/^/m,(" " * @d))
|
91
|
+
@w << text
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def writer(options = {}, &block)
|
96
|
+
WriterWrapper.new(super, @title_depth)
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Copyright (C) 2007-2010 Logintas AG Switzerland
|
2
|
+
#
|
3
|
+
# This file is part of Libisi.
|
4
|
+
#
|
5
|
+
# Libisi is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Libisi is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with Libisi. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require "libisi/doc/base"
|
19
|
+
class WikiDoc < BaseDoc
|
20
|
+
def initialize(options = {})
|
21
|
+
super
|
22
|
+
@indent = 0
|
23
|
+
end
|
24
|
+
|
25
|
+
def tr(options = {}, &block)
|
26
|
+
yield
|
27
|
+
writer(options, &block) << "||\n"
|
28
|
+
end
|
29
|
+
def td(options = {}, &block)
|
30
|
+
writer(options, &block) << "|| "
|
31
|
+
writer(options, &block) << yield
|
32
|
+
writer(options, &block) << " "
|
33
|
+
end
|
34
|
+
def th(options = {}, &block)
|
35
|
+
writer(options, &block) << "|| "
|
36
|
+
writer(options, &block) << yield.to_s.upcase
|
37
|
+
writer(options, &block) << " "
|
38
|
+
end
|
39
|
+
def ul(options = {}, &block)
|
40
|
+
@indent += 1
|
41
|
+
yield
|
42
|
+
@indent -= 1
|
43
|
+
end
|
44
|
+
def li(options = {}, &block)
|
45
|
+
writer(options, &block) << (" " * 2*@indent) + "* "
|
46
|
+
writer(options, &block) << yield
|
47
|
+
writer(options, &block) << "\n"
|
48
|
+
end
|
49
|
+
|
50
|
+
def p(options = {}, &block)
|
51
|
+
writer(options, &block) << yield
|
52
|
+
writer(options, &block) << "\n\n"
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Copyright (C) 2007-2010 Logintas AG Switzerland
|
2
|
+
#
|
3
|
+
# This file is part of Libisi.
|
4
|
+
#
|
5
|
+
# Libisi is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Libisi is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with Libisi. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require "libisi/base.rb"
|
19
|
+
class Environment < Base
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Copyright (C) 2007-2010 Logintas AG Switzerland
|
2
|
+
#
|
3
|
+
# This file is part of Libisi.
|
4
|
+
#
|
5
|
+
# Libisi is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Libisi is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with Libisi. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
class BaseEnvironment
|
19
|
+
|
20
|
+
attr_reader :parent
|
21
|
+
|
22
|
+
def initialize(parent, options = nil)
|
23
|
+
#parent = RootEnvironment.new if parent.nil?
|
24
|
+
end
|
25
|
+
|
26
|
+
def type; raise "Not implemented"; end
|
27
|
+
def implementation; raise "Not implemented"; end
|
28
|
+
def instance; raise "Not implemented"; end
|
29
|
+
def execute(task); raise "Not implemented"; end
|
30
|
+
|
31
|
+
def user; parent.user; end
|
32
|
+
def uri; parent.uri; end
|
33
|
+
def name; parent.name; end
|
34
|
+
def language; parent.language; end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# Copyright (C) 2007-2010 Logintas AG Switzerland
|
2
|
+
#
|
3
|
+
# This file is part of Libisi.
|
4
|
+
#
|
5
|
+
# Libisi is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Libisi is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with Libisi. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require "libisi/environment/base"
|
19
|
+
require 'net/http'
|
20
|
+
require 'net/https'
|
21
|
+
|
22
|
+
# Environment accessible over http or https
|
23
|
+
class HttpEnvironment < BaseEnvironment
|
24
|
+
|
25
|
+
def initialize(uri, options = {})
|
26
|
+
@uri = uri
|
27
|
+
super(nil)
|
28
|
+
end
|
29
|
+
|
30
|
+
def type; :http_access; end
|
31
|
+
def implementation; :ruby; end
|
32
|
+
def uri; @uri; end
|
33
|
+
|
34
|
+
def uri_from_task(task, options = {})
|
35
|
+
m_uri = uri.to_s
|
36
|
+
m_uri = m_uri[0..-2] if m_uri =~ /\/$/
|
37
|
+
m_uri += "/" + task.function.context
|
38
|
+
m_uri += "/" + task.function.name
|
39
|
+
m_uri += "/" + task.parameter.arguments.join("/")
|
40
|
+
|
41
|
+
params = task.parameter.options.reject {|name, vals|
|
42
|
+
[:input_stream,:output_stream].include?(name)
|
43
|
+
}.map {|name, vals|
|
44
|
+
case vals
|
45
|
+
when Array, NilClass
|
46
|
+
when String
|
47
|
+
vals = [vals]
|
48
|
+
else
|
49
|
+
raise "Dont know how to parametrize class #{vals.class}"
|
50
|
+
end
|
51
|
+
|
52
|
+
vals.map {|val|
|
53
|
+
p [name, val]
|
54
|
+
if val
|
55
|
+
"#{name}=#{CGI.escape(val)}"
|
56
|
+
else
|
57
|
+
name
|
58
|
+
end
|
59
|
+
}
|
60
|
+
}.join("&")
|
61
|
+
URI.parse(m_uri + "?" + params)
|
62
|
+
end
|
63
|
+
|
64
|
+
def execute(task, options = {})
|
65
|
+
url = uri_from_task(task, options)
|
66
|
+
|
67
|
+
# TODO: initialize header
|
68
|
+
headers = nil
|
69
|
+
#headers = {
|
70
|
+
# 'Cookie' => @cookie,
|
71
|
+
# 'Referer' => 'http://profil.wp.pl/login.html',
|
72
|
+
# 'Content-Type' => 'application/x-www-form-urlencoded'
|
73
|
+
#}
|
74
|
+
request = Net::HTTP::Get.new([url.path,url.query].compact.join("?"), headers)
|
75
|
+
|
76
|
+
# TODO: login
|
77
|
+
# request.basic_auth 'account', 'password'
|
78
|
+
response = Net::HTTP.start(url.host, url.port) {|http|
|
79
|
+
http.request(request)
|
80
|
+
}
|
81
|
+
|
82
|
+
# TODO: implement more responses
|
83
|
+
case response
|
84
|
+
when Net::HTTPSuccess then response
|
85
|
+
# only sucess are allowed at the moment
|
86
|
+
#$log.info("Request sucessfuly done")
|
87
|
+
# when Net::HTTPRedirection then fetch(response['location'], limit - 1)
|
88
|
+
else
|
89
|
+
raise response.error!
|
90
|
+
end
|
91
|
+
|
92
|
+
# TODO: set cookie environment
|
93
|
+
#@cookie = resp.response['set-cookie'] if
|
94
|
+
# resp.response['set-cookie'] if
|
95
|
+
|
96
|
+
if out = task.parameter.options[:output_stream]
|
97
|
+
out.write(response.body)
|
98
|
+
out.close_write
|
99
|
+
#response.read_body(task.parameter.options[:output_stream])
|
100
|
+
else
|
101
|
+
response.body
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Copyright (C) 2007-2010 Logintas AG Switzerland
|
2
|
+
#
|
3
|
+
# This file is part of Libisi.
|
4
|
+
#
|
5
|
+
# Libisi is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Libisi is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with Libisi. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
class RailsEnvironment
|
19
|
+
|
20
|
+
def type; :webapplication; end
|
21
|
+
def implementation; :rails; end
|
22
|
+
|
23
|
+
def context_object(name, options = {})
|
24
|
+
controller_name = name.camelize + "Controller"
|
25
|
+
eval(controller_name) if defined?(controller_name)
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Copyright (C) 2007-2010 Logintas AG Switzerland
|
2
|
+
#
|
3
|
+
# This file is part of Libisi.
|
4
|
+
#
|
5
|
+
# Libisi is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# Libisi is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with Libisi. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require "libisi/environment/base.rb"
|
19
|
+
class RootEnvironment < BaseEnvironment
|
20
|
+
|
21
|
+
def user; nil; end
|
22
|
+
|
23
|
+
end
|