Module: Arisaid::Configurable
- Included in:
- Arisaid
- Defined in:
- lib/arisaid/configurable.rb
Constant Summary collapse
- OPTIONS_KEYS =
%i( debug read_only slack_team slack_token save_token conf_prefix exit_status )
Class Method Summary collapse
Instance Method Summary collapse
- #ask_slack_team ⇒ Object
- #ask_slack_token ⇒ Object
- #configure {|_self| ... } ⇒ Object
- #debug? ⇒ Boolean
- #options ⇒ Object
- #pit ⇒ Object
- #pit=(data) ⇒ Object
- #read_only? ⇒ Boolean
- #reset ⇒ Object
- #save_slack_token_by_pit(token) ⇒ Object
- #save_token? ⇒ Boolean
- #slack_team ⇒ Object
- #slack_team=(team) ⇒ Object
- #slack_token ⇒ Object
- #slack_token! ⇒ Object
- #slack_token_by_pit ⇒ Object
Class Method Details
.extended(base) ⇒ Object
18 19 20 |
# File 'lib/arisaid/configurable.rb', line 18 def self.extended(base) base.reset end |
Instance Method Details
#ask_slack_team ⇒ Object
58 59 60 61 |
# File 'lib/arisaid/configurable.rb', line 58 def ask_slack_team $stdout.print 'Slack Team: ' $stdin.gets.gsub(/\n/, '') end |
#ask_slack_token ⇒ Object
78 79 80 81 |
# File 'lib/arisaid/configurable.rb', line 78 def ask_slack_token $stdout.print 'Slack Token(https://api.slack.com/web): ' $stdin.noecho(&:gets).tap{ $stdout.print "\n" }.gsub(/\n/, '') end |
#configure {|_self| ... } ⇒ Object
34 35 36 |
# File 'lib/arisaid/configurable.rb', line 34 def configure yield self end |
#debug? ⇒ Boolean
38 39 40 |
# File 'lib/arisaid/configurable.rb', line 38 def debug? @debug ||= false end |
#options ⇒ Object
30 31 32 |
# File 'lib/arisaid/configurable.rb', line 30 def OPTIONS_KEYS.inject({}) { |o, k| o.merge!(k => send(k)) } end |
#pit ⇒ Object
91 92 93 |
# File 'lib/arisaid/configurable.rb', line 91 def pit Pit.get('arisaid') end |
#pit=(data) ⇒ Object
95 96 97 |
# File 'lib/arisaid/configurable.rb', line 95 def pit=(data) Pit.set('arisaid', data: data) end |
#read_only? ⇒ Boolean
42 43 44 |
# File 'lib/arisaid/configurable.rb', line 42 def read_only? @read_only ||= false end |
#reset ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/arisaid/configurable.rb', line 22 def reset self.debug = false self.read_only = true self.save_token = false self.conf_prefix = nil self.exit_status = 0 end |
#save_slack_token_by_pit(token) ⇒ Object
83 84 85 86 87 88 89 |
# File 'lib/arisaid/configurable.rb', line 83 def save_slack_token_by_pit(token) self.pit= if pit.is_a?(Hash) pit.merge(slack_team => token) else { slack_team => token } end end |
#save_token? ⇒ Boolean
46 47 48 |
# File 'lib/arisaid/configurable.rb', line 46 def save_token? @save_token ||= false end |
#slack_team ⇒ Object
50 51 52 |
# File 'lib/arisaid/configurable.rb', line 50 def slack_team ENV['BREACAN_TEAM'] ||= ask_slack_team end |
#slack_team=(team) ⇒ Object
54 55 56 |
# File 'lib/arisaid/configurable.rb', line 54 def slack_team=(team) ENV['BREACAN_TEAM'] = team end |
#slack_token ⇒ Object
63 64 65 |
# File 'lib/arisaid/configurable.rb', line 63 def slack_token ENV['BREACAN_ACCESS_TOKEN'] ||= slack_token! end |
#slack_token! ⇒ Object
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/arisaid/configurable.rb', line 67 def slack_token! token = slack_token_by_pit if token.nil? token = ask_slack_token save_slack_token_by_pit(token) if save_token? end token end |
#slack_token_by_pit ⇒ Object
99 100 101 |
# File 'lib/arisaid/configurable.rb', line 99 def slack_token_by_pit pit[slack_team] end |