hetznercloud 1.5.3 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e82485e18ec51b75abdfc2225e7e587faccef06aff1d05d500b8ff8b7ba22921
4
- data.tar.gz: b8a93fc80f0ab613a5dda0b31653b744bcdcd9a3e240ec0442e0b1f0698c67ac
3
+ metadata.gz: c731cef3b6836c9ca0cd8c84020a0af9feb301b583fd6cc52cd764407b13be8b
4
+ data.tar.gz: a3be57a22b54d2d2bc5cb51c82a0051918b305ddbb1864511c4e32bc73d835c0
5
5
  SHA512:
6
- metadata.gz: 4ed29029191856a529ed17ffe9a596052091a06e7c2c49ed9930e0caa1b1659754036b172400dcb593d1159a7058d0362c08d5a2f33ed664306b1943db4eafb0
7
- data.tar.gz: 9d94e954c98652f5903195e400bebad25723bdccdd2ab85dbcefcd168a57dbfd0e1054f4a585f1e398b362f072e8b1072151fd44d4202f801e75514ea8915b04
6
+ metadata.gz: 7416bc30b965d8e88e02fdb4244755957fb773c67ef7fa11c5bd7162777ea347344fcca4e531c349fd43ba77233211ade1064ebd354ae19875e968e508f7524a
7
+ data.tar.gz: b4eeece8a36968d6bff1d37d320591428488293bad47a4b4a1ee6fdc9202a959f4c2840d5b89972fbc0f677045b921f70d9e06e9e53c5f2b864168a0e6e9a9b4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## HCloud v1.5.4 (2023-05-17)
4
+
5
+ - Allow defining attributes on the fly
6
+
3
7
  ## HCloud v1.5.3 (2023-05-09)
4
8
 
5
9
  - Add `included_traffic` attribute to `ServerType`
data/Gemfile CHANGED
@@ -6,7 +6,7 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  group :development, :test do
9
- gem "byebug", require: false
9
+ gem "debug", require: false
10
10
  gem "dotenv", require: false
11
11
  gem "ffaker", require: false
12
12
  gem "rake", require: false
data/README.md CHANGED
@@ -10,8 +10,6 @@ Unofficial Ruby integration with the [Hetzner Cloud API](https://docs.hetzner.cl
10
10
  Add this line to your application's Gemfile:
11
11
 
12
12
  ```ruby
13
- git_source(:github) { |repo| "https://github.com/#{repo}.git" }
14
-
15
13
  gem "hetznercloud"
16
14
  ```
17
15
 
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module HCloud
4
+ module DynamicAttributes
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ def method_missing(name, *args) # rubocop:disable Metrics/AbcSize
9
+ return super unless name.to_s.end_with?("=")
10
+
11
+ # Infer attribute name
12
+ attribute = name.to_s.chomp("=")
13
+
14
+ return super if attribute_names.include?(attribute)
15
+
16
+ warn "Unknown attribute: #{self.class.name}##{attribute}. Please file an issue at https://github.com/floriandejonckheere/hcloud/issues/new?title=Unknown+attribute+#{self.class.name}%23#{attribute}."
17
+
18
+ # Add definition to class singleton
19
+ self.class.attribute(name.to_s.chomp("=").to_sym, :string)
20
+
21
+ # Add definition to current instance
22
+ @attributes[name.to_s.chomp("=")] = self.class._default_attributes[name.to_s.chomp("=")].dup
23
+
24
+ # Set attribute
25
+ send(name, *args)
26
+ end
27
+
28
+ def respond_to_missing?(name, include_private = false)
29
+ name.to_s.end_with?("=") || super
30
+ end
31
+ end
32
+ end
33
+ end
@@ -6,6 +6,7 @@ module HCloud
6
6
  include ActiveModel::AttributeAssignment
7
7
 
8
8
  include Concerns
9
+ include DynamicAttributes
9
10
 
10
11
  def initialize(attributes = {})
11
12
  super()
@@ -4,7 +4,7 @@ module HCloud
4
4
  module Version
5
5
  MAJOR = 1
6
6
  MINOR = 5
7
- PATCH = 3
7
+ PATCH = 4
8
8
  PRE = nil
9
9
 
10
10
  VERSION = [MAJOR, MINOR, PATCH].compact.join(".")
@@ -12,6 +12,6 @@ module HCloud
12
12
  STRING = [VERSION, PRE].compact.join("-")
13
13
  end
14
14
 
15
- NAME = "hcloud"
15
+ NAME = "hetznercloud"
16
16
  VERSION = Version::STRING
17
17
  end
data/lib/hcloud.rb CHANGED
@@ -4,8 +4,6 @@ require "active_model"
4
4
  require "active_support/all"
5
5
  require "zeitwerk"
6
6
 
7
- require "byebug" if ENV["ENV"] == "development"
8
-
9
7
  module HCloud
10
8
  class << self
11
9
  # Code loader instance
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hetznercloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3
4
+ version: 1.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Dejonckheere
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-09 00:00:00.000000000 Z
11
+ date: 2023-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -87,6 +87,7 @@ files:
87
87
  - lib/hcloud/concerns/concerns.rb
88
88
  - lib/hcloud/concerns/creatable.rb
89
89
  - lib/hcloud/concerns/deletable.rb
90
+ - lib/hcloud/concerns/dynamic_attributes.rb
90
91
  - lib/hcloud/concerns/labelable.rb
91
92
  - lib/hcloud/concerns/meterable.rb
92
93
  - lib/hcloud/concerns/queryable.rb