authlete 1.0.21 → 1.2.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.
Files changed (161) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/Makefile +40 -0
  4. data/README.md +20 -20
  5. data/Rakefile +5 -0
  6. data/authlete.gemspec +2 -2
  7. data/lib/authlete.rb +28 -9
  8. data/lib/authlete/api.rb +153 -322
  9. data/lib/authlete/authentication-server.rb +230 -230
  10. data/lib/authlete/exception.rb +14 -15
  11. data/lib/authlete/model/base.rb +30 -0
  12. data/lib/authlete/model/client-extension.rb +17 -119
  13. data/lib/authlete/model/client.rb +203 -338
  14. data/lib/authlete/model/hashable.rb +13 -33
  15. data/lib/authlete/model/named-uri.rb +13 -74
  16. data/lib/authlete/model/pair.rb +13 -74
  17. data/lib/authlete/model/param-initializer.rb +45 -0
  18. data/lib/authlete/model/property.rb +15 -85
  19. data/lib/authlete/model/request/authentication-callback-request.rb +63 -55
  20. data/lib/authlete/model/request/authorization-fail-request.rb +14 -75
  21. data/lib/authlete/model/request/authorization-issue-request.rb +38 -119
  22. data/lib/authlete/model/request/authorization-request.rb +8 -73
  23. data/lib/authlete/model/request/backchannel-authentication-complete-request.rb +97 -0
  24. data/lib/authlete/model/request/backchannel-authentication-fail-request.rb +55 -0
  25. data/lib/authlete/model/request/backchannel-authentication-issue-request.rb +37 -0
  26. data/lib/authlete/model/request/backchannel-authentication-request.rb +63 -0
  27. data/lib/authlete/model/request/base.rb +26 -0
  28. data/lib/authlete/model/request/client-authorization-delete-request.rb +7 -93
  29. data/lib/authlete/model/request/client-authorization-get-list-request.rb +17 -89
  30. data/lib/authlete/model/request/client-authorization-update-request.rb +11 -86
  31. data/lib/authlete/model/request/client-registration-request.rb +49 -0
  32. data/lib/authlete/model/request/client-secret-update-request.rb +7 -89
  33. data/lib/authlete/model/request/developer-authentication-callback-request.rb +40 -43
  34. data/lib/authlete/model/request/device-authorization-request.rb +63 -0
  35. data/lib/authlete/model/request/device-complete-request.rb +99 -0
  36. data/lib/authlete/model/request/device-verification-request.rb +40 -0
  37. data/lib/authlete/model/request/granted-scopes-request.rb +8 -74
  38. data/lib/authlete/model/request/introspection-request.rb +24 -83
  39. data/lib/authlete/model/request/pushed-auth-req-request.rb +64 -0
  40. data/lib/authlete/model/request/revocation-request.rb +14 -88
  41. data/lib/authlete/model/request/standard-introspection-request.rb +8 -73
  42. data/lib/authlete/model/request/token-create-request.rb +52 -183
  43. data/lib/authlete/model/request/token-fail-request.rb +12 -74
  44. data/lib/authlete/model/request/token-issue-request.rb +22 -80
  45. data/lib/authlete/model/request/token-request.rb +44 -81
  46. data/lib/authlete/model/request/token-update-request.rb +35 -121
  47. data/lib/authlete/model/request/user-info-issue-request.rb +14 -80
  48. data/lib/authlete/model/request/user-info-request.rb +25 -70
  49. data/lib/authlete/model/response/access-token.rb +96 -0
  50. data/lib/authlete/model/response/authentication-callback-response.rb +24 -19
  51. data/lib/authlete/model/response/authorization-fail-response.rb +13 -15
  52. data/lib/authlete/model/response/authorization-issue-response.rb +29 -32
  53. data/lib/authlete/model/response/authorization-response.rb +97 -123
  54. data/lib/authlete/model/response/authorized-client-list-response.rb +37 -0
  55. data/lib/authlete/model/response/backchannel-authentication-complete-response.rb +143 -0
  56. data/lib/authlete/model/response/backchannel-authentication-fail-response.rb +47 -0
  57. data/lib/authlete/model/response/backchannel-authentication-issue-response.rb +63 -0
  58. data/lib/authlete/model/response/backchannel-authentication-response.rb +160 -0
  59. data/lib/authlete/model/response/client-list-response.rb +58 -0
  60. data/lib/authlete/model/response/client-registration-response.rb +50 -0
  61. data/lib/authlete/model/response/client-secret-refresh-response.rb +12 -12
  62. data/lib/authlete/model/response/client-secret-update-response.rb +12 -12
  63. data/lib/authlete/model/response/developer-authentication-callback-response.rb +24 -19
  64. data/lib/authlete/model/response/device-authorization-response.rb +134 -0
  65. data/lib/authlete/model/response/device-complete-response.rb +39 -0
  66. data/lib/authlete/model/response/device-verification-response.rb +96 -0
  67. data/lib/authlete/model/response/granted-scopes-get-response.rb +27 -19
  68. data/lib/authlete/model/response/introspection-response.rb +64 -58
  69. data/lib/authlete/model/response/pushed-auth-req-response.rb +59 -0
  70. data/lib/authlete/model/response/revocation-response.rb +12 -15
  71. data/lib/authlete/model/response/service-list-response.rb +54 -0
  72. data/lib/authlete/model/response/standard-introspection-response.rb +13 -15
  73. data/lib/authlete/model/response/token-create-response.rb +50 -55
  74. data/lib/authlete/model/response/token-fail-response.rb +14 -17
  75. data/lib/authlete/model/response/token-issue-response.rb +49 -62
  76. data/lib/authlete/model/response/token-list-response.rb +64 -0
  77. data/lib/authlete/model/response/token-response.rb +59 -79
  78. data/lib/authlete/model/response/token-update-response.rb +28 -23
  79. data/lib/authlete/model/response/user-info-issue-response.rb +16 -16
  80. data/lib/authlete/model/response/user-info-response.rb +48 -42
  81. data/lib/authlete/model/result.rb +14 -13
  82. data/lib/authlete/model/scope.rb +68 -158
  83. data/lib/authlete/model/service-owner.rb +32 -116
  84. data/lib/authlete/model/service.rb +672 -837
  85. data/lib/authlete/model/sns-credentials.rb +51 -124
  86. data/lib/authlete/model/tagged-value.rb +14 -69
  87. data/lib/authlete/utility.rb +70 -99
  88. data/lib/authlete/version.rb +3 -3
  89. data/test/authlete/model/request/test_authentication-callback-request.rb +100 -0
  90. data/test/authlete/model/request/test_authorization-fail-request.rb +67 -0
  91. data/test/authlete/model/request/test_authorization-issue-request.rb +94 -0
  92. data/test/authlete/model/request/test_authorization-request.rb +57 -0
  93. data/test/authlete/model/request/test_backchannel-authentication-complete-request.rb +102 -0
  94. data/test/authlete/model/request/test_backchannel-authentication-fail-request.rb +71 -0
  95. data/test/authlete/model/request/test_backchannel-authentication-issue-request.rb +57 -0
  96. data/test/authlete/model/request/test_backchannel-authentication-request.rb +75 -0
  97. data/test/authlete/model/request/test_client-authorization-delete-request.rb +57 -0
  98. data/test/authlete/model/request/test_client-authorization-get-list-request.rb +71 -0
  99. data/test/authlete/model/request/test_client-authorization-update-request.rb +63 -0
  100. data/test/authlete/model/request/test_client-registration-request.rb +68 -0
  101. data/test/authlete/model/request/test_device-authorization-request.rb +75 -0
  102. data/test/authlete/model/request/test_device-complete-request.rb +102 -0
  103. data/test/authlete/model/request/test_device-verification-request.rb +57 -0
  104. data/test/authlete/model/request/test_granted-scopes-request.rb +57 -0
  105. data/test/authlete/model/request/test_introspection-request.rb +79 -0
  106. data/test/authlete/model/request/test_pushed-auth-req-request.rb +75 -0
  107. data/test/authlete/model/request/test_revocation-request.rb +67 -0
  108. data/test/authlete/model/request/test_standard-introspection-request.rb +57 -0
  109. data/test/authlete/model/request/test_token-create-request.rb +110 -0
  110. data/test/authlete/model/request/test_token-fail-request.rb +63 -0
  111. data/test/authlete/model/request/test_token-issue-request.rb +70 -0
  112. data/test/authlete/model/request/test_token-request.rb +94 -0
  113. data/test/authlete/model/request/test_token-update-request.rb +82 -0
  114. data/test/authlete/model/request/test_user-info-issue-request.rb +67 -0
  115. data/test/authlete/model/request/test_user-info-request.rb +75 -0
  116. data/test/authlete/model/response/test_access-token.rb +101 -0
  117. data/test/authlete/model/response/test_authorization-fail-response.rb +68 -0
  118. data/test/authlete/model/response/test_authorization-issue-response.rb +92 -0
  119. data/test/authlete/model/response/test_authorization-response.rb +145 -0
  120. data/test/authlete/model/response/test_authorized-client-list-response.rb +83 -0
  121. data/test/authlete/model/response/test_backchannel-authentication-complete-response.rb +132 -0
  122. data/test/authlete/model/response/test_backchannel-authentication-fail-response.rb +68 -0
  123. data/test/authlete/model/response/test_backchannel-authentication-issue-response.rb +80 -0
  124. data/test/authlete/model/response/test_backchannel-authentication-response.rb +156 -0
  125. data/test/authlete/model/response/test_client-list-response.rb +79 -0
  126. data/test/authlete/model/response/test_client-secret-refresh-response.rb +68 -0
  127. data/test/authlete/model/response/test_client-secret-update-response.rb +68 -0
  128. data/test/authlete/model/response/test_device-authorization-response.rb +140 -0
  129. data/test/authlete/model/response/test_device-complete-response.rb +64 -0
  130. data/test/authlete/model/response/test_device-verification-response.rb +112 -0
  131. data/test/authlete/model/response/test_granted-scopes-get-response.rb +84 -0
  132. data/test/authlete/model/response/test_introspection-response.rb +127 -0
  133. data/test/authlete/model/response/test_pushed-auth-req-response.rb +76 -0
  134. data/test/authlete/model/response/test_revocation-response.rb +68 -0
  135. data/test/authlete/model/response/test_service-list-response.rb +72 -0
  136. data/test/authlete/model/response/test_standard-introspection-response.rb +68 -0
  137. data/test/authlete/model/response/test_token-create-response.rb +107 -0
  138. data/test/authlete/model/response/test_token-fail-response.rb +68 -0
  139. data/test/authlete/model/response/test_token-issue-response.rb +127 -0
  140. data/test/authlete/model/response/test_token-list-response.rb +84 -0
  141. data/test/authlete/model/response/test_token-response.rb +147 -0
  142. data/test/authlete/model/response/test_token-update-response.rb +87 -0
  143. data/test/authlete/model/response/test_user-info-issue-response.rb +68 -0
  144. data/test/authlete/model/response/test_user-info-response.rb +107 -0
  145. data/test/authlete/model/test_client-extension.rb +95 -0
  146. data/test/authlete/model/test_client.rb +461 -0
  147. data/test/authlete/model/test_named-uri.rb +85 -0
  148. data/test/authlete/model/test_pair.rb +85 -0
  149. data/test/authlete/model/test_property.rb +90 -0
  150. data/test/authlete/model/test_result.rb +68 -0
  151. data/test/authlete/model/test_scope.rb +106 -0
  152. data/test/authlete/model/test_service-owner.rb +80 -0
  153. data/test/authlete/model/test_service.rb +624 -0
  154. data/test/authlete/model/test_sns-credentials.rb +88 -0
  155. data/test/authlete/model/test_tagged-value.rb +83 -0
  156. data/test/authlete/test_exception.rb +70 -0
  157. metadata +173 -13
  158. data/lib/authlete/model/client-list.rb +0 -129
  159. data/lib/authlete/model/response/client-authorization-get-list-response.rb +0 -60
  160. data/lib/authlete/model/response/service-creatable-response.rb +0 -51
  161. data/lib/authlete/model/service-list.rb +0 -128
@@ -1,6 +1,6 @@
1
1
  # :nodoc:
2
2
  #
3
- # Copyright (C) 2014-2018 Authlete, Inc.
3
+ # Copyright (C) 2014-2020 Authlete, Inc.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -17,49 +17,29 @@
17
17
 
18
18
  module Authlete
19
19
  module Model
20
- class Hashable
20
+ module Hashable
21
+
21
22
  private
22
23
 
23
- def authlete_model_convert_key(key)
24
+ def to_hash_key(var)
25
+ var.to_s.delete("@").to_sym
24
26
  end
25
27
 
26
- def authelte_model_simple_attribute?(key)
28
+ def to_hash_value(key, var)
29
+ instance_variable_get(var)
27
30
  end
28
31
 
29
- def authlete_model_update(hash)
32
+ def to_key_value_pair(var)
33
+ key = to_hash_key(var)
34
+ value = to_hash_value(key, var)
35
+ [ key, value ]
30
36
  end
31
37
 
32
38
  public
33
39
 
34
- # Convert this object into a hash.
35
40
  def to_hash
36
- end
37
-
38
- # Set attribute values using the given hash.
39
- def update(hash = {})
40
- authlete_model_update(hash)
41
- end
42
-
43
- def [](key)
44
- key = authlete_model_convert_key(key)
45
-
46
- if respond_to?(key)
47
- send(key)
48
- else
49
- nil
50
- end
51
- end
52
-
53
- def []=(key, value)
54
- key = authlete_model_convert_key(key)
55
- method = "#{key}="
56
-
57
- if respond_to?(method)
58
- send(method, value)
59
- else
60
- nil
61
- end
41
+ Hash[ instance_variables.map { |var| to_key_value_pair(var) } ]
62
42
  end
63
43
  end
64
44
  end
65
- end
45
+ end
@@ -1,6 +1,6 @@
1
1
  # :nodoc:
2
2
  #
3
- # Copyright (C) 2014-2018 Authlete, Inc.
3
+ # Copyright (C) 2014-2020 Authlete, Inc.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -15,89 +15,28 @@
15
15
  # limitations under the License.
16
16
 
17
17
 
18
- require 'set'
19
-
20
-
21
18
  module Authlete
22
19
  module Model
23
- class NamedUri < Authlete::Model::Hashable
24
- include Authlete::Utility
25
- # The name of the URI. (String)
20
+ class NamedUri < Authlete::Model::Base
21
+ include Authlete::Model::Hashable
22
+
26
23
  attr_accessor :name
27
24
 
28
- # The value of the URI. (String)
29
25
  attr_accessor :uri
30
26
 
31
27
  private
32
28
 
33
- # String attributes.
34
- STRING_ATTRIBUTES = ::Set.new([ :name, :uri ])
35
-
36
- # The constructor
37
- def initialize(hash = nil)
38
- # Set default values to string attributes.
39
- STRING_ATTRIBUTES.each do |attr|
40
- send("#{attr}=", nil)
41
- end
42
-
43
- # Set attribute values using the given hash.
44
- authlete_model_update(hash)
45
- end
46
-
47
- def authlete_model_convert_key(key)
48
- key.to_sym
49
- end
50
-
51
- def authlete_model_simple_attribute?(key)
52
- STRING_ATTRIBUTES.include?(key)
29
+ def defaults
30
+ {
31
+ name: nil,
32
+ uri: nil
33
+ }
53
34
  end
54
35
 
55
- def authlete_model_update(hash)
56
- return if hash.nil?
57
-
58
- hash.each do |key, value|
59
- key = authlete_model_convert_key(key)
60
-
61
- if authlete_model_simple_attribute?(key)
62
- send("#{key}=", value)
63
- end
64
- end
65
-
66
- self
67
- end
68
-
69
- public
70
-
71
- # Construct an instance from the given hash.
72
- #
73
- # If the given argument is nil or is not a Hash, nil is returned.
74
- # Otherwise, NamedUri.new(hash) is returned.
75
- def self.parse(hash)
76
- if hash.nil? or (hash.kind_of?(Hash) == false)
77
- return nil
78
- end
79
-
80
- Authlete::Model::NamedUri.new(hash)
81
- end
82
-
83
- # Set attribute values using the given hash.
84
- def update(hash)
85
- authlete_model_update(hash)
86
- end
87
-
88
- # Convert this object into a hash.
89
- def to_hash
90
- hash = {}
91
-
92
- instance_variables.each do |var|
93
- key = var.to_s.delete("@").to_sym
94
- val = instance_variable_get(var)
95
-
96
- hash[key] = val
97
- end
98
-
99
- hash
36
+ def set_params(hash)
37
+ @name = hash[:name]
38
+ @uri = hash[:uri]
100
39
  end
101
40
  end
102
41
  end
103
- end
42
+ end
@@ -1,6 +1,6 @@
1
1
  # :nodoc:
2
2
  #
3
- # Copyright (C) 2014-2018 Authlete, Inc.
3
+ # Copyright (C) 2014-2020 Authlete, Inc.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -15,89 +15,28 @@
15
15
  # limitations under the License.
16
16
 
17
17
 
18
- require 'set'
19
-
20
-
21
18
  module Authlete
22
19
  module Model
23
- class Pair < Authlete::Model::Hashable
24
- include Authlete::Utility
25
- # The key of this pair. (String)
20
+ class Pair < Authlete::Model::Base
21
+ include Authlete::Model::Hashable
22
+
26
23
  attr_accessor :key
27
24
 
28
- # The value of this pair. (String)
29
25
  attr_accessor :value
30
26
 
31
27
  private
32
28
 
33
- # String attributes.
34
- STRING_ATTRIBUTES = ::Set.new([ :key, :value ])
35
-
36
- # The constructor
37
- def initialize(hash = nil)
38
- # Set default values to string attributes.
39
- STRING_ATTRIBUTES.each do |attr|
40
- send("#{attr}=", nil)
41
- end
42
-
43
- # Set attribute values using the given hash.
44
- authlete_model_update(hash)
45
- end
46
-
47
- def authlete_model_convert_key(key)
48
- key.to_sym
49
- end
50
-
51
- def authlete_model_simple_attribute?(key)
52
- STRING_ATTRIBUTES.include?(key)
29
+ def defaults
30
+ {
31
+ key: nil,
32
+ value: nil
33
+ }
53
34
  end
54
35
 
55
- def authlete_model_update(hash)
56
- return if hash.nil?
57
-
58
- hash.each do |key, value|
59
- key = authlete_model_convert_key(key)
60
-
61
- if authlete_model_simple_attribute?(key)
62
- send("#{key}=", value)
63
- end
64
- end
65
-
66
- self
67
- end
68
-
69
- public
70
-
71
- # Construct an instance from the given hash.
72
- #
73
- # If the given argument is nil or is not a Hash, nil is returned.
74
- # Otherwise, Pair.new(hash) is returned.
75
- def self.parse(hash)
76
- if hash.nil? or (hash.kind_of?(Hash) == false)
77
- return nil
78
- end
79
-
80
- Authlete::Model::Pair.new(hash)
81
- end
82
-
83
- # Set attribute values using the given hash.
84
- def update(hash)
85
- authlete_model_update(hash)
86
- end
87
-
88
- # Convert this object into a hash.
89
- def to_hash
90
- hash = {}
91
-
92
- instance_variables.each do |var|
93
- key = var.to_s.delete("@").to_sym
94
- val = instance_variable_get(var)
95
-
96
- hash[key] = val
97
- end
98
-
99
- hash
36
+ def set_params(hash)
37
+ @key = hash[:key]
38
+ @value = hash[:value]
100
39
  end
101
40
  end
102
41
  end
103
- end
42
+ end
@@ -0,0 +1,45 @@
1
+ # :nodoc:
2
+ #
3
+ # Copyright (C) 2014-2020 Authlete, Inc.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+
18
+ module Authlete
19
+ module ParamInitializer
20
+
21
+ private
22
+
23
+ def initialize(hash = {})
24
+ set_params( merge_hash(hash) )
25
+ end
26
+
27
+ def merge_hash(hash)
28
+ hash.kind_of?(Hash) ? defaults.merge( normalize_hash_key(hash) ) : defaults
29
+ end
30
+
31
+ def normalize_hash_key(hash)
32
+ Hash[ hash.map{ |(k, v)| [ k.to_sym, v ] } ]
33
+ end
34
+
35
+ #
36
+ # Override this method.
37
+ #
38
+ def set_params(hash); end
39
+
40
+ #
41
+ # Override this method.
42
+ #
43
+ def defaults; end
44
+ end
45
+ end
@@ -1,6 +1,6 @@
1
1
  # :nodoc:
2
2
  #
3
- # Copyright (C) 2014-2018 Authlete, Inc.
3
+ # Copyright (C) 2014-2020 Authlete, Inc.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -15,102 +15,32 @@
15
15
  # limitations under the License.
16
16
 
17
17
 
18
- require 'set'
19
-
20
-
21
18
  module Authlete
22
19
  module Model
23
- class Property < Authlete::Model::Hashable
24
- include Authlete::Utility
25
- # The key part. (String)
20
+ class Property < Authlete::Model::Base
21
+ include Authlete::Model::Hashable
22
+
26
23
  attr_accessor :key
27
24
 
28
- # The value part. (String)
29
25
  attr_accessor :value
30
26
 
31
- # The flag to indicate whether this property hidden from or visible
32
- # to client applications. (Boolean)
33
27
  attr_accessor :hidden
34
28
 
35
29
  private
36
30
 
37
- # Boolean attributes.
38
- BOOLEAN_ATTRIBUTES = ::Set.new([ :hidden ])
39
-
40
- # String attributes.
41
- STRING_ATTRIBUTES = ::Set.new([ :key, :value ])
42
-
43
- # The constructor
44
- def initialize(hash = nil)
45
- # Set default values to boolean attributes.
46
- BOOLEAN_ATTRIBUTES.each do |attr|
47
- send("#{attr}=", false)
48
- end
49
-
50
- # Set default values to string attributes.
51
- STRING_ATTRIBUTES.each do |attr|
52
- send("#{attr}=", nil)
53
- end
54
-
55
- # Set attribute values using the given hash.
56
- authlete_model_update(hash)
31
+ def defaults
32
+ {
33
+ key: nil,
34
+ value: nil,
35
+ hidden: false
36
+ }
57
37
  end
58
38
 
59
- def authlete_model_convert_key(key)
60
- key.to_sym
61
- end
62
-
63
- def authlete_model_simple_attribute?(key)
64
- BOOLEAN_ATTRIBUTES.include?(key) or
65
- STRING_ATTRIBUTES.include?(key)
66
- end
67
-
68
- def authlete_model_update(hash)
69
- return if hash.nil?
70
-
71
- hash.each do |key, value|
72
- key = authlete_model_convert_key(key)
73
-
74
- if authlete_model_simple_attribute?(key)
75
- send("#{key}=", value)
76
- end
77
- end
78
-
79
- self
80
- end
81
-
82
- public
83
-
84
- # Construct an instance from the given hash.
85
- #
86
- # If the given argument is nil or is not a Hash, nil is returned.
87
- # Otherwise, Property.new(hash) is returned.
88
- def self.parse(hash)
89
- if hash.nil? or (hash.kind_of?(Hash) == false)
90
- return nil
91
- end
92
-
93
- Authlete::Model::Property.new(hash)
94
- end
95
-
96
- # Set attribute values using the given hash.
97
- def update(hash)
98
- authlete_model_update(hash)
99
- end
100
-
101
- # Convert this object into a hash.
102
- def to_hash
103
- hash = {}
104
-
105
- instance_variables.each do |var|
106
- key = var.to_s.delete("@").to_sym
107
- val = instance_variable_get(var)
108
-
109
- hash[key] = val
110
- end
111
-
112
- hash
39
+ def set_params(hash)
40
+ @key = hash[:key]
41
+ @value = hash[:value]
42
+ @hidden = hash[:hidden]
113
43
  end
114
44
  end
115
45
  end
116
- end
46
+ end