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 )
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
17 18 19 |
# File 'lib/arisaid/configurable.rb', line 17 def self.extended(base) base.reset end |
Instance Method Details
#ask_slack_team ⇒ Object
56 57 58 59 |
# File 'lib/arisaid/configurable.rb', line 56 def ask_slack_team $stdout.print 'Slack Team: ' $stdin.gets.gsub(/\n/, '') end |
#ask_slack_token ⇒ Object
76 77 78 79 |
# File 'lib/arisaid/configurable.rb', line 76 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
32 33 34 |
# File 'lib/arisaid/configurable.rb', line 32 def configure yield self end |
#debug? ⇒ Boolean
36 37 38 |
# File 'lib/arisaid/configurable.rb', line 36 def debug? @debug end |
#options ⇒ Object
28 29 30 |
# File 'lib/arisaid/configurable.rb', line 28 def OPTIONS_KEYS.inject({}) { |o, k| o.merge!(k => send(k)) } end |
#pit ⇒ Object
89 90 91 |
# File 'lib/arisaid/configurable.rb', line 89 def pit Pit.get('arisaid') end |
#pit=(data) ⇒ Object
93 94 95 |
# File 'lib/arisaid/configurable.rb', line 93 def pit=(data) Pit.set('arisaid', data: data) end |
#read_only? ⇒ Boolean
40 41 42 |
# File 'lib/arisaid/configurable.rb', line 40 def read_only? @read_only end |
#reset ⇒ Object
21 22 23 24 25 26 |
# File 'lib/arisaid/configurable.rb', line 21 def reset self.debug = false self.read_only = true self.save_token = false self.conf_prefix = nil end |
#save_slack_token_by_pit(token) ⇒ Object
81 82 83 84 85 86 87 |
# File 'lib/arisaid/configurable.rb', line 81 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
44 45 46 |
# File 'lib/arisaid/configurable.rb', line 44 def save_token? @save_token end |
#slack_team ⇒ Object
48 49 50 |
# File 'lib/arisaid/configurable.rb', line 48 def slack_team ENV['BREACAN_TEAM'] ||= ask_slack_team end |
#slack_team=(team) ⇒ Object
52 53 54 |
# File 'lib/arisaid/configurable.rb', line 52 def slack_team=(team) ENV['BREACAN_TEAM'] = team end |
#slack_token ⇒ Object
61 62 63 |
# File 'lib/arisaid/configurable.rb', line 61 def slack_token ENV['BREACAN_ACCESS_TOKEN'] ||= slack_token! end |
#slack_token! ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/arisaid/configurable.rb', line 65 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
97 98 99 |
# File 'lib/arisaid/configurable.rb', line 97 def slack_token_by_pit pit[slack_team] end |