class_interface 0.1.3 → 1.0.0

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