Class: Sem::API::SharedConfig
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Sem::API::SharedConfig
- Extended by:
- Base
- Defined in:
- lib/sem/api/shared_config.rb
Instance Attribute Summary collapse
-
#org_name ⇒ Object
readonly
Returns the value of attribute org_name.
Class Method Summary collapse
Instance Method Summary collapse
- #add_config_file(args) ⇒ Object
- #add_env_var(args) ⇒ Object
- #delete! ⇒ Object
- #env_vars ⇒ Object
- #files ⇒ Object
- #full_name ⇒ Object
-
#initialize(org_name, shared_config) ⇒ SharedConfig
constructor
A new instance of SharedConfig.
- #remove_config_file(path) ⇒ Object
- #remove_env_var(name) ⇒ Object
- #update!(args) ⇒ Object
Methods included from Base
Constructor Details
#initialize(org_name, shared_config) ⇒ SharedConfig
Returns a new instance of SharedConfig.
37 38 39 40 41 |
# File 'lib/sem/api/shared_config.rb', line 37 def initialize(org_name, shared_config) @org_name = org_name super(shared_config) end |
Instance Attribute Details
#org_name ⇒ Object (readonly)
Returns the value of attribute org_name.
35 36 37 |
# File 'lib/sem/api/shared_config.rb', line 35 def org_name @org_name end |
Class Method Details
.all ⇒ Object
4 5 6 7 8 |
# File 'lib/sem/api/shared_config.rb', line 4 def self.all Sem::API::Org.all.pmap do |org| client.shared_configs.list_for_org(org.username).map { |config| new(org.username, config) } end.flatten end |
.create!(shared_config_srn, args = {}) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/sem/api/shared_config.rb', line 23 def self.create!(shared_config_srn, args = {}) org_name, shared_config_name = Sem::SRN.parse_shared_config(shared_config_srn) shared_config = client.shared_configs.create_for_org(org_name, args.merge(:name => shared_config_name)) if shared_config.nil? raise Sem::Errors::ResourceNotCreated.new("Shared Configuration", [org_name, shared_config_name]) end new(org_name, shared_config) end |
.find!(shared_config_srn) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/sem/api/shared_config.rb', line 10 def self.find!(shared_config_srn) org_name, shared_config_name = Sem::SRN.parse_shared_config(shared_config_srn) configs = client.shared_configs.list_for_org(org_name) config = configs.find { |c| c.name == shared_config_name } if config.nil? raise Sem::Errors::ResourceNotFound.new("Shared Configuration", [org_name, shared_config_name]) end new(org_name, config) end |
Instance Method Details
#add_config_file(args) ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/sem/api/shared_config.rb', line 47 def add_config_file(args) file = Sem::API::Base.client.config_files.create_for_shared_config(id, args) if file.nil? raise Sem::Errors::ResourceNotCreated.new("Configuration File", [org_name, path]) end Sem::API::File.new(file) end |
#add_env_var(args) ⇒ Object
67 68 69 70 71 72 73 74 75 |
# File 'lib/sem/api/shared_config.rb', line 67 def add_env_var(args) env_var = Sem::API::Base.client.env_vars.create_for_shared_config(id, args) if env_var.nil? raise Sem::Errors::ResourceNotCreated.new("Environment Variable", [org_name, args[:name]]) end Sem::API::EnvVar.new(env_var) end |
#delete! ⇒ Object
97 98 99 |
# File 'lib/sem/api/shared_config.rb', line 97 def delete! Sem::API::Base.client.shared_configs.delete(id) end |
#env_vars ⇒ Object
105 106 107 |
# File 'lib/sem/api/shared_config.rb', line 105 def env_vars Sem::API::Base.client.env_vars.list_for_shared_config(id).map { |env_var| Sem::API::EnvVar.new(env_var) } end |
#files ⇒ Object
101 102 103 |
# File 'lib/sem/api/shared_config.rb', line 101 def files Sem::API::Base.client.config_files.list_for_shared_config(id).map { |file| Sem::API::File.new(file) } end |
#full_name ⇒ Object
43 44 45 |
# File 'lib/sem/api/shared_config.rb', line 43 def full_name "#{org_name}/#{name}" end |
#remove_config_file(path) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/sem/api/shared_config.rb', line 57 def remove_config_file(path) file = files.find { |f| f.path == path } if file.nil? raise Sem::Errors::ResourceNotCreated.new("Configuration File", [org_name, path]) end Sem::API::Base.client.config_files.delete(file.id) end |
#remove_env_var(name) ⇒ Object
77 78 79 80 81 82 83 84 85 |
# File 'lib/sem/api/shared_config.rb', line 77 def remove_env_var(name) env_var = env_vars.find { |var| var.name == name } if env_var.nil? raise Sem::Errors::ResourceNotCreated.new("Environment Variable", [org_name, name]) end Sem::API::Base.client.env_vars.delete(env_var.id) end |
#update!(args) ⇒ Object
87 88 89 90 91 92 93 94 95 |
# File 'lib/sem/api/shared_config.rb', line 87 def update!(args) shared_config = Sem::API::Base.client.shared_configs.update(id, args) if shared_config.nil? raise Sem::Errors::ResourceNotUpdated.new("Shared Configuration", [org_name, name]) end self.class.new(org_name, shared_config) end |