lib/bebox/wizards/role_wizard.rb in bebox-0.0.1 vs lib/bebox/wizards/role_wizard.rb in bebox-0.1.0

- old
+ new

@@ -1,20 +1,21 @@ -require 'bebox/role' module Bebox class RoleWizard include Bebox::Logger + include Bebox::WizardsHelper + # Create a new role def create_new_role(project_root, role_name) # Check if the role name is valid return error "The role name can only contain:\n \n* Lowercase letters \n* Numbers \n* Underscores \n* Must begin with an Lowercase letter \n* Can not be any of: #{Bebox::RESERVED_WORDS.join(', ')} - \n\nNo changes were made." unless Bebox::Role.valid_name?(role_name) + \n\nNo changes were made." unless valid_puppet_class_name?(role_name) # Check if the role exist return error("The '#{role_name}' role already exist. No changes were made.") if role_exists?(project_root, role_name) # Role creation role = Bebox::Role.new(role_name, project_root) role.create @@ -25,29 +26,28 @@ def remove_role(project_root) # Choose a role from the availables roles = Bebox::Role.list(project_root) # Get a role if exist. if roles.count > 0 - role_name = choose_role(roles, 'Choose the role to remove:') + role_name = choose_option(roles, 'Choose the role to remove:') else return error "There are no roles to remove. No changes were made." end # Ask for deletion confirmation - return warn('No changes were made.') unless confirm_role_deletion? + return warn('No changes were made.') unless confirm_action?('Are you sure that you want to delete the role?') # Role deletion role = Bebox::Role.new(role_name, project_root) role.remove ok 'Role removed!.' end # Add a profile to a role def add_profile(project_root) roles = Bebox::Role.list(project_root) profiles = Bebox::Profile.list(project_root) - role = choose_role(roles, 'Choose an existing role:') - require 'bebox/wizards/profile_wizard' - profile = Bebox::ProfileWizard.new.choose_profile(profiles, 'Choose the profile to add:') + role = choose_option(roles, 'Choose an existing role:') + profile = choose_option(profiles, 'Choose the profile to add:') if Bebox::Role.profile_in_role?(project_root, role, profile) return warn("Profile '#{profile}' already in the Role '#{role}'. No changes were made.") else Bebox::Role.add_profile(project_root, role, profile) return ok("Profile '#{profile}' added to Role '#{role}'.") @@ -56,42 +56,22 @@ # Remove a profile in a role def remove_profile(project_root) roles = Bebox::Role.list(project_root) profiles = Bebox::Profile.list(project_root) - role = choose_role(roles, 'Choose an existing role:') - require 'bebox/wizards/profile_wizard' - profile = Bebox::ProfileWizard.new.choose_profile(profiles, 'Choose the profile to remove:') + role = choose_option(roles, 'Choose an existing role:') + profile = choose_option(profiles, 'Choose the profile to remove:') if Bebox::Role.profile_in_role?(project_root, role, profile) Bebox::Role.remove_profile(project_root, role, profile) return ok("Profile '#{profile}' removed from Role '#{role}'.") else return warn("Profile '#{profile}' is not in the Role '#{role}'. No changes were made.") end end - # Asks to choose an existing role - def choose_role(roles, question) - choose do |menu| - menu.header = title(question) - roles.each do |box| - menu.choice(box.split('/').last) - end - end - end - # Check if there's an existing role in the project def role_exists?(project_root, role_name) Dir.exists?("#{project_root}/puppet/roles/#{role_name}") - end - - # Ask for confirmation of role deletion - def confirm_role_deletion? - quest 'Are you sure that you want to delete the role?' - response = ask(highline_quest('(y/n)')) do |q| - q.default = "n" - end - return response == 'y' ? true : false end end end \ No newline at end of file