procer 0.1 → 0.1.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.
Files changed (2) hide show
  1. checksums.yaml +4 -4
  2. metadata +27 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a3d342db7f48f642cbf023a55a7a508012471e015805d96a9e3583871116f80
4
- data.tar.gz: 4119f171e84df62fc7497554af445ae492aa985b26d74a51372b9a94548a574e
3
+ metadata.gz: d3839f7c654ff0e80881ead31ea6a4ddfb75969f07ed640e79a51034c5002298
4
+ data.tar.gz: 1e992239045802735804b40e628f23c0cbf3c84c67d1e90662e2b22963daf0d6
5
5
  SHA512:
6
- metadata.gz: 744015e76d9cb4ff18d0ee8463ad7b135af4b0fd1058a312089fc9f62034b6d350913c177cc2720b5082c01b911cd2fd98d9df132c76a930c414b1d402f24313
7
- data.tar.gz: 650405168717419f3a6740b14afea0f825740a7a2f7bb98337becd9b636b55bf7e62aa1ef51b8ef5183a6dc1a67d5d477cbcf24ea386259de4e0ec132735abda
6
+ metadata.gz: f398b858c487391979c4d8b32470187a4dc3cb612d5c14ee2cd875f6de7995479ea98f7239834868cbe525160b816fb3b8e9a23cc20f2f58f9942cb447196a7f
7
+ data.tar.gz: 76d5eabd79f9eae5a4a23bbf5ed66dc4f0b612904de27e1cd48d4f76532ae520d9c9742008e7309f8711abee5bf7f3e11e68574b6bb51a7655147546622782cf
metadata CHANGED
@@ -1,42 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: procer
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesús Gómez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-01 00:00:00.000000000 Z
11
+ date: 2023-03-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: "# Procer\n\nA reasonable good default `to_proc` method for all objects.\n\nWhe
13
+ description: "# Procer\n\n**NOTE: Experimental. Use it to experience what a default
14
+ `to_proc`\ncould have been. For production code, I recommend an explicit\ntransformation,
15
+ like the one provided by the gem `jgomo3-func`**.\n\nA reasonable good default `to_proc`
16
+ method for all objects.\n\nInstall with:\n\n```\ngem install procer\n```\n\nWhen
14
17
  you require Procer, all objects will have a default `to_proc`\nmethod which will
15
18
  try to call one of the following methods, in the\ngiven order:\n\n - `call`\n -
16
- `[]`\n - `===`\n \n Many methods which receive a block, can benefit greatlly from
19
+ `[]`\n - `===`\n \n Many methods which receive a block, can benefit greatly from
17
20
  this\n because you can now pass an object to perform the block role.\n \n Think
18
- of the Enumerable module and all it's methods.\n \n Many objects define `===`, but
19
- not `to_proc`. So they will be nicelly\n usable in a `case/when` expression, but
21
+ of the Enumerable module and all its methods.\n \n Many objects define `===`, but
22
+ not `to_proc`. So they will be nicely\n usable in a `case/when` expression, but
20
23
  not in other contexts.\n \n This is the case of classes and ranges, which you can
21
24
  use in\n `case/when` expressions, but they don't define `to_proc`.\n \n Now they
22
25
  do define `to_proc` so they are useful in those contexts.\n \n Examples:\n \n ```ruby\n
23
26
  require 'procer'\n \n[1, 2, '3', '4', 5, 6].filter(&Numeric)\n# => [1, 2, 5, 6]\n\n[-10,
24
27
  100, -2, 3, 20, -33].filter(&(0..50))\n# => [3, 20]\n```\n\nAlso, Hashes already
25
- implement `to_proc` and that is really useful\nwith enumerator. We can use it as
26
- a transformation table with `map`:\n\n```ruby\n\ntable = {\n 1 => 'one',\n 2 =>
27
- 'two',\n 3 => 'three'\n}\n\n[3, 1, 2].map(&table)\n# => ['three, 'one, 'two']\n```\n\nSadly,
28
- Arrays, even when they have the same interface as hashes as a\nfunction of indices,
29
- don't implement `to_proc` and so they can't be used\nin the same way. Until now.\n\n```ruby\ntable
30
- = ['zero', 'one', 'two']\n[2, 0, 1].map(&table)\n# => ['two', 'zero', 'one']\n```\n\nAlternativaly
31
- you could have use `values_at`:\n\n```ruby\ntable.values_at([3, 1, 2]) # In the
28
+ implement `to_proc` and that is useful\nwith Enumerator. We can use it as a transformation
29
+ table with `map`:\n\n```ruby\n\ntable = {\n 1 => 'one',\n 2 => 'two',\n 3 =>
30
+ 'three'\n}\n\n[3, 1, 2].map(&table)\n# => ['three, 'one, 'two']\n```\n\nSadly, Arrays,
31
+ even when they have the same interface as hashes as a\nfunction of indices, don't
32
+ implement `to_proc` and so they can't be used\nin the same way. Until now.\n\n```ruby\ntable
33
+ = ['zero', 'one', 'two']\n[2, 0, 1].map(&table)\n# => ['two', 'zero', 'one']\n```\n\nAlternatively,
34
+ you could have used `values_at`:\n\n```ruby\ntable.values_at([3, 1, 2]) # In the
32
35
  Hash example\ntable.values_at([2, 0, 1]) # In the Array example\n```\n\nBut the
33
36
  map solution is more generic and `table` can be anything that\nimplements `to_proc`
34
- and not something that necesarilly implement\n`values_at`.\n\nNotice that if the
35
- object implements `[]` that will triumph over\n`===`. It was expected when I tried
36
- to use Integers as the object, as\nthey implement `[]` as a way to access it's binary
37
- form:\n\n```ruby\n5 # b101\n[5[2], 5[1], 5[0]] # [1, 0, 1]\n```\n\nSo the proc will
38
- work like that:\n\n```ruby\n[2, 4, 5].map(&5)\n# Actual => [1, 0, 0]\n# I was expecting
39
- => [false, false, true]\n```\n"
37
+ and not something that necessarily implements\n`values_at`.\n\nNotice that if the
38
+ object implements `[]` that will triumph over\n`===`. It was unexpected when I
39
+ tried to use Integers as the object, as\nthey implement `[]` as a way to access
40
+ their binary form:\n\n```ruby\n5 # b101\n[5[2], 5[1], 5[0]] # [1, 0, 1]\n```\n\nSo
41
+ the proc will work like that:\n\n```ruby\n[2, 4, 5].map(&5)\n# Actual => [1, 0,
42
+ 0]\n# I was expecting => [false, false, true]\n```\n"
40
43
  email: jgomo3@gmail.com
41
44
  executables: []
42
45
  extensions: []
@@ -46,7 +49,10 @@ files:
46
49
  homepage: https://github.com/jgomo3/procer/
47
50
  licenses:
48
51
  - MIT
49
- metadata: {}
52
+ metadata:
53
+ 'Intended Audience :: Programmers': classifier
54
+ 'Intended Audience :: Developers': classifier
55
+ 'Topic :: Programming :: Experimental': classifier
50
56
  post_install_message:
51
57
  rdoc_options: []
52
58
  require_paths:
@@ -62,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
68
  - !ruby/object:Gem::Version
63
69
  version: '0'
64
70
  requirements: []
65
- rubygems_version: 3.2.3
71
+ rubygems_version: 3.1.4
66
72
  signing_key:
67
73
  specification_version: 4
68
74
  summary: Provides a reasonable good default `to_proc` method to all objects