scale.rb 0.3.0 → 0.3.1

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: 2ce5a456e8313b36d61cbfbff272c86985a6dc240603b37d6e96bd1cc0f28a9b
4
- data.tar.gz: fda311dc30d0f8b31c62d9332bf241bab5b5646b6919fcb3b41814126692f469
3
+ metadata.gz: 861596854598a5ea2a2648cc9fe3b32915eeba97a372f2c49ba1839537cd6741
4
+ data.tar.gz: 222a2e692373bd1523f37927a304c12f2d24d252c428be3b6beb8b4dc52163c8
5
5
  SHA512:
6
- metadata.gz: 2d9d0c5ccc5cdc2e34515af88a64164678ce6f18a128f3e935906a362979ff6be7e83c0ea9ab17350acb3fb91e67766dbc3bc247fc733dd4310c9efb3aaf6857
7
- data.tar.gz: 9c0a9f424308e368dc886ad31f568b118fa5596d21b7d5cd9d79bbefcf41a8324c4d3f885f24334165cac769e33da988f2b1f03097a966f19003b7c027cd8ab3
6
+ metadata.gz: 68406b9ce9d33d5bf4513fc825f7e76b5e290f52a6b144893ff9df130e513ff01f20b647e51eab61efef2f15bb4b4be0db0b0a817cba465f268577199731f4d3
7
+ data.tar.gz: d0225db7a736a2909dd8e3967658b9fef543457e2eea479e09af8944161830fbad114782ec8fa0014e6a4df5f8599c3b128dcc16cc00c3518dcd836f1b6dd4ef
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- scale.rb (0.3.0)
4
+ scale.rb (0.3.1)
5
5
  base58
6
6
  blake2b_rs (~> 0.1.2)
7
7
  faye-websocket
data/lib/scale.rb CHANGED
@@ -44,7 +44,7 @@ module Scale
44
44
 
45
45
  module Types
46
46
  class << self
47
- attr_accessor :debug
47
+ attr_accessor :debug, :logger
48
48
  end
49
49
 
50
50
  def self.check_types
@@ -126,3 +126,4 @@ class ::Hash
126
126
  end
127
127
 
128
128
  Scale::Types.debug = false
129
+ Scale::Types.logger = Logger.new(STDOUT)
data/lib/scale/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Scale
2
- VERSION = "0.3.0".freeze
2
+ VERSION = "0.3.1".freeze
3
3
  end
@@ -122,8 +122,8 @@ class SubstrateClient
122
122
  block = self.chain_getBlock(block_hash)
123
123
  SubstrateClient::Helper.decode_block(block)
124
124
  rescue => ex
125
- puts ex.message
126
- puts ex.backtrace.join("\n\t")
125
+ Scale::Types.logger.error ex
126
+ Scale::Types.logger.error ex.backtrace.join("\n\t")
127
127
  end
128
128
 
129
129
  def get_block_events(block_hash=nil)
data/lib/type_builder.rb CHANGED
@@ -41,11 +41,12 @@ module Scale
41
41
  # 5. Struct, 6. Enum, 7. Set
42
42
  else
43
43
 
44
- if type_info["type"] == "struct"
44
+ type_info.transform_keys!(&:to_sym)
45
+ if type_info[:type] == "struct"
45
46
  build_struct(type_info)
46
- elsif type_info["type"] == "enum"
47
+ elsif type_info[:type] == "enum"
47
48
  build_enum(type_info)
48
- elsif type_info["type"] == "set"
49
+ elsif type_info[:type] == "set"
49
50
  build_set(type_info)
50
51
  else
51
52
  raise Scale::TypeBuildError.new("Failed to build a type from #{type_info}")
@@ -158,7 +159,7 @@ module Scale
158
159
 
159
160
  def build_struct(type_info)
160
161
  # items: {"a" => Type}
161
- items = type_info["type_mapping"].map do |item|
162
+ items = type_info[:type_mapping].map do |item|
162
163
  item_name = item[0]
163
164
  item_type = get(item[1])
164
165
  [item_name, item_type]
@@ -183,10 +184,10 @@ module Scale
183
184
 
184
185
  # not implemented: ["Compact", "Hex"]
185
186
  def build_enum(type_info)
186
- # type_info: [["Item1", "Compact"], [["Item2", "Hex"]]
187
- if type_info.has_key?("type_mapping")
187
+ # type_mapping: [["Item1", "Compact"], [["Item2", "Hex"]]
188
+ if type_info.has_key?(:type_mapping)
188
189
  # items: {a: Type}
189
- items = type_info["type_mapping"].map do |item|
190
+ items = type_info[:type_mapping].map do |item|
190
191
  item_name = item[0]
191
192
  item_type = get(item[1])
192
193
  [item_name.to_sym, item_type]
@@ -210,14 +211,14 @@ module Scale
210
211
  end
211
212
  end
212
213
 
213
- # [1, "hello"]
214
- if type_info.has_key?("value_list")
215
- type_name = "Enum#{type_info["value_list"].map {|value| value.to_s.camelize2}.join}"
214
+ # value_list: [1, "hello"]
215
+ if type_info.has_key?(:value_list)
216
+ type_name = "Enum#{type_info[:value_list].map {|value| value.to_s.camelize2}.join}"
216
217
 
217
218
  if !Scale::Types.const_defined?(type_name)
218
219
  klass = Class.new do
219
220
  include Scale::Types::Enum
220
- values *type_info["value_list"]
221
+ values *type_info[:value_list]
221
222
  end
222
223
  return Scale::Types.const_set type_name, klass
223
224
  else
@@ -237,12 +238,12 @@ module Scale
237
238
  # }
238
239
  # }
239
240
  def build_set(type_info)
240
- type_name = "Set#{type_info["value_list"].keys.map(&:camelize2).join("")}"
241
+ type_name = "Set#{type_info[:value_list].keys.map(&:camelize2).join("")}"
241
242
  if !Scale::Types.const_defined?(type_name)
242
- bytes_length = type_info["value_type"][1..].to_i / 8
243
+ bytes_length = type_info[:value_type][1..].to_i / 8
243
244
  klass = Class.new do
244
245
  include Scale::Types::Set
245
- items type_info["value_list"], bytes_length
246
+ items type_info[:value_list], bytes_length
246
247
  end
247
248
  return Scale::Types.const_set type_name, klass
248
249
  else
data/lib/type_registry.rb CHANGED
@@ -26,7 +26,7 @@ module Scale
26
26
  @types = default_types.merge(spec_types)
27
27
  rescue => ex
28
28
  # TODO: check different errors
29
- puts "There is no types json file named #{spec_name}"
29
+ Scale::Types.logger.error "There is no types json file named #{spec_name}"
30
30
  @types = default_types
31
31
  end
32
32
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scale.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wu Minzhe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-11 00:00:00.000000000 Z
11
+ date: 2021-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: blake2b_rs