class Activerse::Dsl
Public Class Methods
new(hash = {})
click to toggle source
# File lib/activerse/dsl.rb, line 3 def initialize(hash = {}) @credentials = hash @current_keys = [] end
Private Instance Methods
ask(question, echo: true)
click to toggle source
# File lib/activerse/dsl.rb, line 35 def ask question, echo: true print question + " " if Activerse::Configs.strip_whitespaces return gets.chomp.strip else return gets.chomp end end
ask_and_set(key, question, *args)
click to toggle source
# File lib/activerse/dsl.rb, line 44 def ask_and_set key, question, *args last = @current_keys.inject(@credentials) { |structure, s_key| structure[s_key] ||= {} } last_value = last[key.to_sym].nil? ? "" : last[key.to_sym] response = ask("#{question} (#{last_value})", *args) last[key.to_sym] = response.blank? ? last_value : response end
default(key, to: set key, to: to if get(key).nil?)
click to toggle source
# File lib/activerse/dsl.rb, line 51 def default key, to: set key, to: to if get(key).nil? end
get(key)
click to toggle source
# File lib/activerse/dsl.rb, line 30 def get key last = @current_keys.inject(@credentials) { |structure, s_key| structure[s_key] ||= {} } last[key.to_sym] end
save_to_database(model, with: {})
click to toggle source
# File lib/activerse/dsl.rb, line 55 def save_to_database model, with: {} model.create!(with) set model.to_s.underscore.to_sym, to: true end
section(title, sym = nil, &block)
click to toggle source
# File lib/activerse/dsl.rb, line 9 def section title, sym = nil, &block guess = `tput cols`.to_i guess == 0 ? 80 : guess puts " #{title.to_s} ".center(guess, '=') @current_keys.push sym.nil? ? title.parameterize.underscore.to_sym : sym.to_sym instance_eval(&block) @current_keys.pop puts '-' * guess end
set(key, to: nil)
click to toggle source
# File lib/activerse/dsl.rb, line 25 def set key, to: nil last = @current_keys.inject(@credentials) { |structure, s_key| structure[s_key] ||= {} } last[key.to_sym] = to end
subsection(name, &block)
click to toggle source
# File lib/activerse/dsl.rb, line 19 def subsection name, &block @current_keys.push name.to_sym instance_eval(&block) @current_keys.pop end