aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/sisu/current/utils_response.rb40
-rw-r--r--lib/sisu/develop/db_drop.rb8
-rw-r--r--lib/sisu/develop/sst_convert_markup.rb5
-rw-r--r--lib/sisu/develop/utils_response.rb64
4 files changed, 97 insertions, 20 deletions
diff --git a/lib/sisu/current/utils_response.rb b/lib/sisu/current/utils_response.rb
index 6f30437c..c47fab2e 100644
--- a/lib/sisu/current/utils_response.rb
+++ b/lib/sisu/current/utils_response.rb
@@ -69,5 +69,45 @@ module SiSU_Response
ans
end
end
+ def query
+ def selections_available_(selections=:strict)
+ short_options=(selections == :strict) ? '' : '; [ynqx]'
+ %{'yes', 'no', 'quit' or 'exit'#{short_options}}
+ end
+ def selection_options
+ def response_strict(resp)
+ case resp
+ when /^(?:yes)$/ then true
+ when /^(?:no)$/ then false
+ when /^(?:quit|exit)$/ then exit
+ else
+ puts %{response was: #{resp}}
+ puts %{[please type to select: #{selections_available_(:strict)}]}
+ answer?('',:strict)
+ end
+ end
+ def response_short(resp)
+ case resp
+ when /^(?:y|yes)$/ then true
+ when /^(?:n|no)$/ then false
+ when /^(?:[qx]|quit|exit)$/ then exit
+ else
+ puts %{response was: #{resp}}
+ puts %{[please type to select: #{selections_available_(:short)}]}
+ answer?('',:short)
+ end
+ end
+ self
+ end
+ def answer?(ask,selections=:strict)
+ resp='redo'
+ print ask + %{PROCEED? [#{selections_available_(selections)}]: }
+ resp=File.new('/dev/tty').gets.strip
+ (selections==:strict) \
+ ? selection_options.response_strict(resp)
+ : selection_options.response_short(resp)
+ end
+ self
+ end
end
__END__
diff --git a/lib/sisu/develop/db_drop.rb b/lib/sisu/develop/db_drop.rb
index a65f1e75..f2dd642e 100644
--- a/lib/sisu/develop/db_drop.rb
+++ b/lib/sisu/develop/db_drop.rb
@@ -55,11 +55,11 @@
=end
module SiSU_DbDrop
+ require_relative 'utils_response' # utils_response.rb
class Drop
- require_relative 'utils_response' # utils_response.rb
+ include SiSU_Response
def initialize(opt,conn,db_info,sql_type)
@opt,@conn,@db_info,@sql_type=opt,conn,db_info,sql_type
- @ans=SiSU_Response::Response.new
case @sql_type
when :sqlite
cascade=''
@@ -82,7 +82,7 @@ module SiSU_DbDrop
case @sql_type
when :sqlite
puts msg_sqlite
- ans=@ans.response?('remove sql database?')
+ ans=response?('remove sql database?')
if ans \
and File.exist?(@db_info.sqlite.db)
@conn.close
@@ -133,7 +133,7 @@ module SiSU_DbDrop
rescue
case @sql_type
when :sqlite
- ans=@ans.response?('remove sql database?')
+ ans=response?('remove sql database?')
if ans and File.exist?(@db_info.sqlite.db); File.unlink(@db_info.sqlite.db)
end
else
diff --git a/lib/sisu/develop/sst_convert_markup.rb b/lib/sisu/develop/sst_convert_markup.rb
index b2e233cd..8a63636f 100644
--- a/lib/sisu/develop/sst_convert_markup.rb
+++ b/lib/sisu/develop/sst_convert_markup.rb
@@ -61,11 +61,10 @@ module SiSU_Modify
require_relative 'sst_from_xml' # sst_from_xml.rb
require_relative 'utils_response' # utils_response.rb
class ConvertMarkup
+ include SiSU_Response
def initialize(opt)
@opt=opt
@description='This is a script that contains canned text conversions for reuse'
- @response=SiSU_Response::Response.new
- @ask=SiSU_Response::Response.new
@warn='WARNING, PROCEED AT YOUR OWN RISK, will make file changes.'
end
def current_match_and_replace
@@ -75,7 +74,7 @@ module SiSU_Modify
response=''
unless @opt.cmd=~/QQ/ \
or @opt.act[:quiet][:set]==:on
- response=@ask.response?(%{#{ text}\nProceed? })
+ response=response?(%{#{ text}\nProceed? })
end
end
def help
diff --git a/lib/sisu/develop/utils_response.rb b/lib/sisu/develop/utils_response.rb
index 4603646e..a29f2fcd 100644
--- a/lib/sisu/develop/utils_response.rb
+++ b/lib/sisu/develop/utils_response.rb
@@ -55,22 +55,60 @@
=end
module SiSU_Response
- class Response
- def available_selections_
- %{'yes', 'no', 'quit' or 'exit'; [ynqx]}
+ def available_selections_
+ %{'yes', 'no', 'quit' or 'exit'; [ynqx]}
+ end
+ def response?(ask)
+ response='redo'
+ print ask + %{ [#{available_selections_}]: }
+ response=File.new('/dev/tty').gets.strip
+ case response
+ when /^(?:y|yes)$/ then true
+ when /^(?:n|no)$/ then false
+ when /^(?:[qx]|quit|exit)$/ then exit
+ else puts %{[please type: #{available_selections_}]}
+ response?(ask)
+ end
+ end
+ def query
+ def selections_available_(selections=:strict)
+ short_options=(selections == :strict) ? '' : '; [ynqx]'
+ %{'yes', 'no', 'quit' or 'exit'#{short_options}}
end
- def response?(ask)
- response='redo'
- print ask + %{ [#{available_selections_}]: }
- response=File.new('/dev/tty').gets.strip
- case response
- when /^(?:y|yes)$/ then true
- when /^(?:n|no)$/ then false
- when /^(?:[qx]|quit|exit)$/ then exit
- else puts %{[please type: #{available_selections_}]}
- response?(ask)
+ def selection_options
+ def response_strict(resp)
+ case resp
+ when /^(?:yes)$/ then true
+ when /^(?:no)$/ then false
+ when /^(?:quit|exit)$/ then exit
+ else
+ puts %{response was: #{resp}}
+ puts %{[please type to select: #{selections_available_(:strict)}]}
+ answer?('',:strict)
+ end
end
+ def response_short(resp)
+ case resp
+ when /^(?:y|yes)$/ then true
+ when /^(?:n|no)$/ then false
+ when /^(?:[qx]|quit|exit)$/ then exit
+ else
+ puts %{response was: #{resp}}
+ puts %{[please type to select: #{selections_available_(:short)}]}
+ answer?('',:short)
+ end
+ end
+ self
+ end
+ def answer?(ask,selections=:strict)
+ resp='redo'
+ print ask + %{PROCEED? [#{selections_available_(selections)}]: }
+ resp=File.new('/dev/tty').gets.strip
+ (selections==:strict) \
+ ? selection_options.response_strict(resp)
+ : selection_options.response_short(resp)
end
+ self
end
end
__END__