class Roma::Mkconfig::Base

Attributes

all[RW]
flag[RW]

Public Class Methods

new() click to toggle source
    # File lib/roma/tools/mkconfig.rb
 28       def initialize
 29         flag = false
 30         @all = YAML.load <<-YAML
 31         menu:
 32           name:
 33           path_name: menu
 34           message: Please select by number.
 35           choice:
 36             - Select storage
 37             - Select plugin
 38             - Calculate File Descriptor
 39             - Save
 40           next:
 41             - storage
 42             - plugin
 43             - language
 44             - save
 45 
 46         storage:
 47           name: selected_storage
 48           path_name: storage
 49           message: Which storage will you use?
 50           choice:
 51             - Ruby Hash
 52             - Tokyo Cabinet
 53             - Groonga
 54           default: 1
 55           next:
 56             - menu
 57             - memory
 58             - memory
 59         memory:
 60           name: memory_size_GB
 61           path_name:
 62           float_flg: on
 63           message: How big memory size in 1 server? Please measure in GB.
 64           default: 0.6
 65           next: process
 66         process:
 67           name: process_num
 68           path_name:
 69           message: How many run ROMA process per machine?
 70           default: 2
 71           next: server
 72         server:
 73           name: server_num
 74           path_name:
 75           message: How many machine run as ROMA server?
 76           default: 1
 77           next: data
 78         data:
 79           name: data_num
 80           path_name:
 81           message: How many data will you store?
 82           default: 10000
 83           next: menu
 84 
 85         plugin:
 86           name: selected_plugin
 87           path_name: plugin
 88           message: Please select which plugin will you use.(plugin_storage.rb is essential unless you make alternative plugin.)
 89           choice:
 90             #{
 91               list = load_path(PLUGIN_DIR) << "Select all plugins"
 92               list.delete("plugin_storage.rb")
 93               list.unshift("plugin_storage.rb")
 94               list
 95             }
 96           default: 1
 97           next:
 98             #{
 99               r = Array.new
100               load_path(PLUGIN_DIR).count.times{ r << "continue" }
101               r << "menu"
102               r
103             }
104           store_type: Array
105         continue:
106           name:
107           path_name: 
108           message: Will you use other plugin?
109           choice:
110             - Select more
111             - No more
112           default: 2
113           next:
114             - plugin
115             - check_plugin
116         check_plugin:
117           name:
118           path_name: 
119           message: ROMA requires plugin_storage.rb or substitute plugin.Will you continue without plugin_storage.rb?
120           choice:
121             - Add plugin_storage.rb
122             - Not necessary
123           default: 2
124           next:
125             - add_plugin
126             - menu
127 
128         language:
129           name: client_language
130           path_name:
131           message: Please select programming language of client by number.
132           choice:
133             - Ruby
134             - Java
135             - PHP
136           default: 3
137           next:
138             - fd_server
139             - fd_server
140             - fd_server
141         fd_server:
142           name: server_num
143           path_name: FileDescriptor
144           message: How many machine run as ROMA server?
145           default: 1
146           next: fd_client
147         fd_client:
148           name: client_num 
149           path_name:
150           message: How many machine run as ROMA client?
151           default: 1
152           next: menu
153 
154         save: END
155 
156         YAML
157       end

Public Instance Methods

[](s) click to toggle source
    # File lib/roma/tools/mkconfig.rb
163 def [](s)
164   all[s]
165 end
keys() click to toggle source
    # File lib/roma/tools/mkconfig.rb
159 def keys
160   all.keys
161 end
load_path(path) click to toggle source
    # File lib/roma/tools/mkconfig.rb
167 def load_path(path)
168   ret = Array.new
169   files = Dir::entries(path)
170   files.delete("plugin_stub.rb") if files.include?("plugin_stub.rb")
171 
172   files.each do |file|
173     ret << file if File::ftype(File.join(path, file)) == "file"
174   end
175 
176   ret
177 end
next(key, input) click to toggle source
    # File lib/roma/tools/mkconfig.rb
190 def next (key, input)
191   target = all[key]["next"]
192 
193   if target.class == Array
194     return target[input.to_i - 1]
195   else
196     return target
197   end
198 end
print_question(key) click to toggle source