cc 1.1.2 → 1.1.4

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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/cc.rb +2 -1
  3. data/enum.rb +30 -0
  4. data/logic.rb +13 -0
  5. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3869f70e806964db2179a8fb62a1a3a99ea12b8bcf4cfdd23839a8c39696abe6
4
- data.tar.gz: 401539656a9286404eadd220a1f7c235497d226b89f38783a09fb51ae50d3a5f
3
+ metadata.gz: c35c12b969222418912303a9bd84312b4b3e3a93823b1bee849ccd085b6e98ba
4
+ data.tar.gz: 73b5414aba0e02166ed99390133872382ed96d7efd1cd08f63abce2cd4726e69
5
5
  SHA512:
6
- metadata.gz: fc5e432507e0b46f503428a95c7fe102a120e2eee6e3b3eebe05d5689a7632f658c18188b1878a15e3b4e3cbaf55cc4849e280ab3c0547cde37d6faa36d8b089
7
- data.tar.gz: 6bbdd308bcb395c0d3c27db4f46bd403a95743326ba6ccb8ca07b0ca1a225ead5d48e881863fe272dd06c9d9f2f4e7ea09fb6da45a331482a8859c4523c1405a
6
+ metadata.gz: 8488d76dd5383695efc48e55afc03ea20634312e0be1a98597468c47f28f48b25afe748e6c3029ac5a21fd37824571d8ed2e9d188994e66dc3ea65ee665ce5f4
7
+ data.tar.gz: 4f5f1c3ea756d171ccdbaf97c43d96f189cfe531f351eee9a74f7e3850a6d4d0cfa4754f2656ccc0943ae85d2d2442dbf1e36c1f1907e8734a2f1f6d598af073
data/cc.rb CHANGED
@@ -13,7 +13,8 @@ $modlist = [
13
13
  'number',
14
14
  'regexp',
15
15
  'string',
16
- 'tree'
16
+ 'tree',
17
+ 'logic'
17
18
  ]
18
19
 
19
20
  module CC
data/enum.rb CHANGED
@@ -45,3 +45,33 @@ module Enumerable
45
45
  alias :unfold_head :add_head
46
46
  alias :unfold_tail :add_tail
47
47
  end
48
+
49
+ class Hash
50
+ def project *keys
51
+ new_proj = {}
52
+ keys.each do|key| new_proj[key] = self[key] end
53
+ return new_proj
54
+ end
55
+
56
+ def serialize *keys
57
+ return keys.map{|key|self[key]}
58
+ end
59
+ end
60
+
61
+ class Array
62
+ def mapping keys=[]
63
+ head = keys.empty? ? self[0] : keys
64
+ return nil unless head.instance_of?(Array)
65
+ new_records = []
66
+ self.each do|items|
67
+ return nil unless items.instance_of?(Array)
68
+ new_map = {}
69
+ next if items == keys
70
+ head.each_with_index do|field,index|
71
+ new_map[field] = items[index]
72
+ end
73
+ new_records << new_map
74
+ end
75
+ return new_records
76
+ end
77
+ end
data/logic.rb ADDED
@@ -0,0 +1,13 @@
1
+ #coding:utf-8
2
+
3
+ ############################################################################################################
4
+ # HOW TO USE #
5
+ ############################################################################################################
6
+
7
+ =begin
8
+ p (1..9).map{|i|flag{[i>3, i%2==0]}}
9
+ =end
10
+
11
+ def flag op=true, &conds
12
+ [(conds||lambda{}).call,[]].flatten(1).reduce(op){|f,c|op==:or ? (f || c) : (f && c)}
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt
@@ -28,6 +28,7 @@ files:
28
28
  - exception.rb
29
29
  - file.rb
30
30
  - kernel.rb
31
+ - logic.rb
31
32
  - monkey-patch.rb
32
33
  - number.rb
33
34
  - regexp.rb