class_interface 0.1.3 → 1.0.0

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: c4663e879bc3f2eb287675c5f43d9bc02bb2ed55edf4762c01055cb1713ca88c
4
- data.tar.gz: 115024e4b3f42352884d455feedbd4fb5ae64e7a9b303d3f19dcabc432377ab9
3
+ metadata.gz: 3eabbe0ac8631de63b8e3e977b79b90f3ec76239801a5d1fa9928d95ed44a737
4
+ data.tar.gz: 472e2de7c4ae9b9551dbf696fd317d1a7b7d43999ba0b8b9378c301f74cd628b
5
5
  SHA512:
6
- metadata.gz: 763bce0e1b1cdbdd8757727c470fc480af32f8a4aa6ab83e8d1da9a4c8007aae458148aebea0d110fe403c2979ce9fe4c4cceb1d31ede7bbc6ab2ef949ae8632
7
- data.tar.gz: 55d527df06e8eedb0cdc257996b62945780372258f48233d0d26ce95bb3c7e0c1c33e1970a67f1dec010968571891c8af97963319f753eb0def4cb5acb51cf46
6
+ metadata.gz: 22d6e41200db86d91320068859bf396ae5e3546a318eee8096bfac6f0ce05d3cb846598bc4daa2b4f7f5def6f14a995f13e768637c3ed03173c9685590077a6d
7
+ data.tar.gz: 8f4cdc84cd6a8f5ffbaaeaf5e590283d12893f44470c2776c3cc83e2afa7919939fc60c8864a48ed77c36283e6e1a4649c1bc4dc1f2972bf2b67daf44bf04975
data/README.md CHANGED
@@ -1,9 +1,22 @@
1
- # Ruby gem class_interface
1
+ # class_interface
2
2
 
3
- Extends Ruby to support class interfaces.
3
+ Ruby gem to extend Ruby to support class interfaces you may know them from other programming languages like C++ or Java.
4
4
 
5
- That can be very handy in teams to declare requirements for specific types of classes.
5
+ Raises a variety of different exceptions when the requirements of the interface are not met.
6
6
 
7
+ That can be very handy in teams to declare requirements for specific types of classes.
8
+
9
+ # Contents
10
+
11
+ * [Installation](#installation)
12
+ * [Usage](#usage)
13
+ * [Documentation](#documentation)
14
+ * [Contributing](#contributing)
15
+
16
+
17
+
18
+
19
+ <a name="installation"></a>
7
20
  ## Installation
8
21
 
9
22
  Add this line to your application's Gemfile:
@@ -19,8 +32,12 @@ And then execute:
19
32
  Or install it yourself as:
20
33
 
21
34
  $ gem install class_interface
22
-
23
- ## Examples
35
+
36
+
37
+
38
+
39
+ <a name="usage"></a>
40
+ ## Usage
24
41
 
25
42
  ### Defining an interface
26
43
 
@@ -68,6 +85,11 @@ class MyImplementation
68
85
  end
69
86
  ```
70
87
 
88
+
89
+
90
+
91
+
92
+ <a name="documentation"></a>
71
93
  ## Documentation
72
94
  ```ruby
73
95
  #implements(InterfaceClassConstant)
@@ -78,16 +100,21 @@ _InterfaceClassConstant_ must be a valid InterfaceClassConstant or a String, con
78
100
  ### Methods
79
101
 
80
102
  All defined methods in the interface class must be implemented in the implementing class.
81
- The parameter count must be the same.
103
+ The parameter count must be the same. A distinction is made between static and dynamic methods.
82
104
 
83
105
  ### Constant Types
84
106
 
85
107
  All CONSTANTS defined in the interface class must be implemented in the implementing class.
86
- CONSTANTS of interfaces may be defined = nil, to allow all types of definitions in the implementing class.
108
+ CONSTANTS of interfaces may be defined with `nil`, to allow all types of definitions in the implementing class.
87
109
 
88
- To specify a type, assign its class constant, e.g. String, Array, ...
110
+ Otherwise to specify a type, assign its class constant, e.g. `String`, `Array`, `MyCustomClass`, ...
89
111
  If a specified type is defined, it is mandatory for the implementation to use that type.
90
112
 
113
+
114
+
115
+
116
+
117
+ <a name="contributing"></a>
91
118
  ## Contributing
92
119
 
93
120
  Bug reports and pull requests are welcome on GitHub at https://github.com/magynhard/class_interface. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
@@ -1,3 +1,3 @@
1
1
  module ClassInterface
2
- VERSION = '0.1.3'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: class_interface
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthäus Beyrle
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-20 00:00:00.000000000 Z
11
+ date: 2020-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  requirements: []
100
- rubygems_version: 3.1.3
100
+ rubygems_version: 3.0.8
101
101
  signing_key:
102
102
  specification_version: 4
103
103
  summary: Extends Ruby to support class interfaces