hetznercloud 1.5.3 → 1.5.4

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
  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