cloudcover 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2a63adaeeea97662bb92f5ff7a09b57982d3f101
4
- data.tar.gz: 112b8afe37e3998c86ed74c9c08280a75ed15980
3
+ metadata.gz: cc7a52c9efd426f2b7fd2438f68d3d9a588dde98
4
+ data.tar.gz: bede9c874d547cd617abf404c9662111137f541c
5
5
  SHA512:
6
- metadata.gz: 26f23e4d7d7ebed15e4a51c56d95f621833db58e4dfb4702db1ca4b9c575b000271f60918fdf5b758ca0193d3bad6c3f4067c80323218a2962935b4e71542e40
7
- data.tar.gz: a4c5482e7ebd9992ac1693f3e7d4c0635f50678ba88bcc29fe9158f51fe7b8a4aca64340602daaadedb0bf05fdbf0125a48509d86d3988ef11b2352d9ffcf2e9
6
+ metadata.gz: fe281b19166021c9ff8bb52c4ea45d3f17d797341001775646d37da3fb28429829a8179e4dc8ec2b8f979feb19203a982519310537fc4ea84cc902396b45edeb
7
+ data.tar.gz: c49f80a026335d4517bea20921f2bddb1ed61d48e8a6fe3cc22e87551030d8410d67ad930eaaba09e2d55179658509980c388fb1ed2adae81dca739d10e2e1d5
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ Gemfile.lock
1
2
  test.creds
2
3
  .DS_Store
3
4
  .idea
data/bin/cloudcover CHANGED
@@ -21,11 +21,11 @@ desc 'Simply verify that a set of credentials are valid to login to Okta. Return
21
21
  arg_name '[credential file path]'
22
22
  command 'simple-auth' do |c|
23
23
  c.switch [:f], :desc => 'Get credentials from file path specified as first argument (Useful for OpenVPN authentication)'
24
- c.switch [:radius], :desc => 'Return RADIUS style Accept/Reject Messages', :default_value => false
24
+ c.switch [:radius], :desc => 'Return RADIUS style Accept/Reject Messages', :negatable => false
25
25
  c.flag [:g, :group], :desc => 'Verify membership to the specified group during authentication', :default_value => false
26
26
  c.flag [:c, :context], :desc => 'Extra context for success/fail message', :default_value => false
27
27
 
28
- c.action do |global_options,options,args|
28
+ c.action do |global,options,args|
29
29
  if options[:f]
30
30
  raise CredentialFileError, "No readable credential file specified" unless File.readable?(args.first)
31
31
  end
@@ -38,8 +38,9 @@ end
38
38
  pre do |global,command,options,args|
39
39
  $verbose = global[:verbose] || global[:debug]
40
40
  $debug = global[:debug]
41
- $config_path = global[:config]
42
41
  $color = global[:color]
42
+ Cloudcover::Config.load(global[:config])
43
+ Cloudcover::Config.set_config_options(global)
43
44
  true
44
45
  end
45
46
 
@@ -5,7 +5,6 @@ module Cloudcover
5
5
 
6
6
  def initialize(opts,path)
7
7
  Output.say_debug("SimpleAuth class: #{self}")
8
- @config = Cloudcover::Config.config
9
8
  @okta = Cloudcover::Okta::Client.new
10
9
  @credentials = {}
11
10
  @opts = opts
@@ -82,7 +81,7 @@ module Cloudcover
82
81
  end
83
82
 
84
83
  def date_format
85
- @config.has_key?(:date_format) ? @config[:date_format] : "%a %b %e %H:%M:%S %Y"
84
+ Cloudcover::Config.date_format ? Cloudcover::Config.date_format : "%a %b %e %H:%M:%S %Y"
86
85
  end
87
86
 
88
87
  def group_id
@@ -1,36 +1,82 @@
1
1
  require 'yaml'
2
2
 
3
3
  module Cloudcover
4
- class Config
5
4
 
6
- def self.config
7
- self.new.load_config($config_path)
5
+ module PrivateAttrAccessor
6
+ def private_attr_accessor(*names)
7
+ private
8
+ attr_accessor *names
8
9
  end
10
+ end
9
11
 
10
- def load_config(file)
11
- Output.say_debug("Loading the config file from #{file}")
12
- raise MissingConfig, "Missing configuration file: #{file} Run 'cloudcover help'" unless File.exist?(file)
13
- @cloudcover_config = symbolize_keys(YAML.load_file(file)) rescue {}
14
- end
12
+ class Config
13
+
14
+ CONFIG_DEFAULTS = {
15
+ location: File.join(ENV['HOME'],'.cloudcover'),
16
+ cookie_location: File.join(ENV['HOME'],'.cloudcover_cookie'),
17
+ }
18
+
19
+ class << self
20
+ extend PrivateAttrAccessor
21
+ private_attr_accessor :config_data
22
+
23
+ def config
24
+ CONFIG_DEFAULTS.merge data
25
+ end
26
+
27
+ def load(path)
28
+ load_config(path)
29
+ config
30
+ end
31
+
32
+ def set_config_options(opts = {})
33
+ data.merge! opts
34
+ config
35
+ end
36
+
37
+ def data
38
+ self.config_data ||= load_config(CONFIG_DEFAULTS[:location])
39
+ end
40
+ private :data
41
+
42
+ def default_value(key)
43
+ CONFIG_DEFAULTS[key.to_sym]
44
+ end
45
+ private :default_value
46
+
47
+ def method_missing(method, args=false)
48
+ return data[method] if data[method]
49
+ return default_value(method) if default_value(method)
50
+ nil
51
+ end
52
+ private :method_missing
53
+
54
+ def load_config(file)
55
+ Output.say_debug("Loading the config file from #{file}")
56
+ raise MissingConfig, "Missing configuration file: #{file} Run 'cloudcover help'" unless File.exist?(file)
57
+ config_data = symbolize_keys(YAML.load_file(file)) rescue {}
58
+ end
59
+ private :load_config
15
60
 
16
- # We want all ouf our YAML loaded keys to be symbols
17
- # taken from http://devblog.avdi.org/2009/07/14/recursively-symbolize-keys/
18
- def symbolize_keys(hash)
19
- hash.inject({}){|result, (key, value)|
20
- new_key = case key
21
- when String then key.to_sym
22
- else key
23
- end
24
- new_value = case value
25
- when Hash then symbolize_keys(value)
26
- else value
61
+ # We want all ouf our YAML loaded keys to be symbols
62
+ # taken from http://devblog.avdi.org/2009/07/14/recursively-symbolize-keys/
63
+ def symbolize_keys(hash)
64
+ hash.inject({}){|result, (key, value)|
65
+ new_key = case key
66
+ when String then key.to_sym
67
+ else key
27
68
  end
28
- result[new_key] = new_value
29
- result
30
- }
69
+ new_value = case value
70
+ when Hash then symbolize_keys(value)
71
+ else value
72
+ end
73
+ result[new_key] = new_value
74
+ result
75
+ }
76
+ end
77
+ private :symbolize_keys
31
78
  end
32
79
 
33
80
  MissingConfig = Class.new(StandardError)
34
- MissingEnvironment = Class.new(StandardError)
35
81
  end
36
82
  end
@@ -5,13 +5,12 @@ module Cloudcover
5
5
  module Okta
6
6
  class Client
7
7
  include HTTParty
8
- debug_output if $debug
8
+ debug_output if Cloudcover::Config.debug
9
9
 
10
10
  attr_reader :headers
11
11
 
12
12
  def initialize
13
- @config = Cloudcover::Config.config
14
- self.class.base_uri "https://#{@config[:okta_domain]}.okta.com"
13
+ self.class.base_uri "https://#{Cloudcover::Config.okta_domain}.okta.com"
15
14
  @headers = {
16
15
  'Content-Type' => "application/json",
17
16
  'Accept' => "application/json",
@@ -1,3 +1,3 @@
1
1
  module Cloudcover
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudcover
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Krieger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-03 00:00:00.000000000 Z
11
+ date: 2016-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -146,7 +146,6 @@ files:
146
146
  - ".gitignore"
147
147
  - ".ruby-version"
148
148
  - Gemfile
149
- - Gemfile.lock
150
149
  - README.md
151
150
  - Rakefile
152
151
  - bin/cloudcover
@@ -185,4 +184,3 @@ specification_version: 4
185
184
  summary: Provides a simple interface for using Okta authentication in command line
186
185
  applications
187
186
  test_files: []
188
- has_rdoc:
data/Gemfile.lock DELETED
@@ -1,46 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- cloudcover (0.0.1)
5
- gli (~> 2.13.4)
6
- hashdiff
7
- highline
8
- http-cookie
9
- httparty
10
- minitar
11
- terminal-table
12
-
13
- GEM
14
- remote: https://rubygems.org/
15
- specs:
16
- domain_name (0.5.25)
17
- unf (>= 0.0.5, < 1.0.0)
18
- gli (2.13.4)
19
- hashdiff (0.2.3)
20
- highline (1.7.8)
21
- http-cookie (1.0.2)
22
- domain_name (~> 0.5)
23
- httparty (0.13.7)
24
- json (~> 1.8)
25
- multi_xml (>= 0.5.2)
26
- json (1.8.3)
27
- minitar (0.5.4)
28
- multi_xml (0.5.5)
29
- rake (10.4.2)
30
- rdoc (4.2.0)
31
- json (~> 1.4)
32
- terminal-table (1.5.2)
33
- unf (0.1.4)
34
- unf_ext
35
- unf_ext (0.0.7.1)
36
-
37
- PLATFORMS
38
- ruby
39
-
40
- DEPENDENCIES
41
- cloudcover!
42
- rake
43
- rdoc
44
-
45
- BUNDLED WITH
46
- 1.12.3