ramda-ruby 0.1.1 → 0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c368ef74f40f78f3e1d67b6663e30e664fedcadb
4
- data.tar.gz: 0c811702973651568960f00b3308b727bd839895
3
+ metadata.gz: e9fde33339db665f8cc1bd20ba439d490de4ced5
4
+ data.tar.gz: 89a420e74940dd7bf124ba9a1da690eefa7de2ea
5
5
  SHA512:
6
- metadata.gz: 5bc8bf53712b35c48a2eaf056cf166cfd1a7ec8b3b84ef1eed944dfa9f5e75d48834b28d14c3fc0e6a23d2521e3c586f257e7ab100e39e729b846d8c925f4043
7
- data.tar.gz: 2536d9295955f1f80f1f86254d6a7969b4d02b5ed7e3a55c810a7fff45d89660211536c184e60d267eceaa4c9b6cefdc01757f4dfda527a7af51e2f5d83db589
6
+ metadata.gz: 4cd815afc079d285f8485f3e4c62ec436a49b40f1c489bce0fc80b11fc0b8771ea23090c100431f2a4ba8f6da6c92be9e2a3f52aee74768e99031db58830854c
7
+ data.tar.gz: e71938b6211936c3880d60bc3119e84e11d1bbe3f16579b79c87cec63fe8f661a0682af9d3746dccf9056ae17c1ddca0bd22ea66138da08203f8dc42c772039c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Not Released
2
2
  ---------------
3
3
 
4
+ Release 0.1.4
5
+ ---------------
6
+
7
+ Added:
8
+
9
+ * last
10
+ * partition
11
+ * juxt
12
+ * slice
13
+
4
14
  Release 0.1.1
5
15
  ---------------
6
16
 
data/ROADMAP.md CHANGED
@@ -2,22 +2,6 @@
2
2
 
3
3
  * Find out suitable documentation format
4
4
 
5
- #### release 0.1.1
6
-
7
- * find_index
8
- * find_last
9
- * find_last_index
10
- * for_each
11
- * modulo
12
- * repeat
13
- * where
14
-
15
- #### release 0.1.4
16
-
17
- last
18
- partition
19
- slice
20
-
21
5
  ### release 0.2.0
22
6
 
23
7
  binary
data/docs/FUNCTIONS.md CHANGED
@@ -28,10 +28,14 @@
28
28
  * filter
29
29
  * find
30
30
  * find_index
31
+ * find_index
32
+ * find_last
31
33
  * find_last
32
34
  * find_last_index
35
+ * find_last_index
33
36
  * flatten
34
37
  * flip
38
+ * for_each
35
39
  * group_by
36
40
  * gt
37
41
  * gte
@@ -43,8 +47,11 @@
43
47
  * intersection
44
48
  * invoker
45
49
  * is_empty
50
+ * is_nil
46
51
  * join
52
+ * juxt
47
53
  * keys
54
+ * last
48
55
  * last_index_of
49
56
  * length
50
57
  * lt
@@ -55,6 +62,7 @@
55
62
  * memoize
56
63
  * merge
57
64
  * min
65
+ * modulo
58
66
  * multiply
59
67
  * n_ary
60
68
  * not
@@ -62,6 +70,7 @@
62
70
  * omit
63
71
  * once
64
72
  * or
73
+ * partition
65
74
  * pick
66
75
  * pick_all
67
76
  * pipe
@@ -76,7 +85,9 @@
76
85
  * reduce
77
86
  * reduce_right
78
87
  * reject
88
+ * repeat
79
89
  * reverse
90
+ * slice
80
91
  * sort
81
92
  * sort_by
82
93
  * split
@@ -93,6 +104,7 @@
93
104
  * uniq
94
105
  * use_with
95
106
  * values
107
+ * where
96
108
  * xprod
97
109
  * zip
98
110
  * zip_with
data/lib/ramda.rb CHANGED
@@ -25,6 +25,7 @@ module Ramda
25
25
  :flip,
26
26
  :identity,
27
27
  :invoker,
28
+ :juxt,
28
29
  :memoize,
29
30
  :n_ary,
30
31
  :once,
@@ -50,11 +51,14 @@ module Ramda
50
51
  :head,
51
52
  :index_of,
52
53
  :join,
54
+ :last,
53
55
  :last_index_of,
54
56
  :length,
57
+ :slice,
55
58
  :sort,
56
59
  :map,
57
60
  :nth,
61
+ :partition,
58
62
  :pluck,
59
63
  :prepend,
60
64
  :range,
@@ -103,6 +103,14 @@ module Ramda
103
103
  end.curry
104
104
  end
105
105
 
106
+ # juxt applies a list of functions to a list of values.
107
+ #
108
+ # [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])
109
+ #
110
+ curried_method(:juxt) do |fns, a, *bs|
111
+ fns.map { |fn| fn.call(a, *bs) }
112
+ end
113
+
106
114
  # Creates a new function that, when invoked, caches the result of calling
107
115
  # fn for a given argument set and returns the result. Subsequent calls to
108
116
  # the memoized fn with the same argument set will not result in an
data/lib/ramda/list.rb CHANGED
@@ -165,12 +165,12 @@ module Ramda
165
165
  # [a] -> a | NilClass
166
166
  # String -> String
167
167
  #
168
- curried_method(:head) do |x|
169
- case x
168
+ curried_method(:head) do |xs|
169
+ case xs
170
170
  when ::String
171
- x[0] || ''
171
+ xs[0] || ''
172
172
  else
173
- x[0]
173
+ xs[0]
174
174
  end
175
175
  end
176
176
 
@@ -201,6 +201,15 @@ module Ramda
201
201
  xs.rindex(x)
202
202
  end
203
203
 
204
+ curried_method(:last) do |xs|
205
+ case xs
206
+ when ::String
207
+ xs[-1] || ''
208
+ else
209
+ xs[-1]
210
+ end
211
+ end
212
+
204
213
  # Returns the number of elements in the array by returning list.length
205
214
  #
206
215
  # [a] -> Number
@@ -242,6 +251,16 @@ module Ramda
242
251
  end
243
252
  end
244
253
 
254
+ # Takes a predicate and a list or other Filterable object and returns
255
+ # the pair of filterable objects of the same type of elements which do
256
+ # and do not satisfy, the predicate, respectively.
257
+ #
258
+ # Filterable f => (a -> Boolean) -> f a -> [f a, f a]
259
+ #
260
+ curried_method(:partition) do |fn, xs|
261
+ R.juxt([filter, reject]).call(fn, xs)
262
+ end
263
+
245
264
  # Returns a new list by plucking the same named property off all objects
246
265
  # in the list supplied.
247
266
  #
@@ -332,6 +351,16 @@ module Ramda
332
351
  Array.new(n, a)
333
352
  end
334
353
 
354
+ # Returns the elements of the given list or string
355
+ # from fromIndex (inclusive) to toIndex (exclusive).
356
+ #
357
+ # Number -> Number -> [a] -> [a]
358
+ # Number -> Number -> String -> String
359
+ #
360
+ curried_method(:slice) do |from, to, xs|
361
+ xs[from...to]
362
+ end
363
+
335
364
  # Returns a copy of the list, sorted according to the comparator function,
336
365
  # which should accept two values at a time and return a negative number
337
366
  # if the first value is smaller, a positive number if it's larger, and
data/lib/ramda/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ramda
2
- VERSION = '0.1.1'.freeze
2
+ VERSION = '0.1.4'.freeze
3
3
  end
@@ -112,6 +112,13 @@ describe Ramda::Function do
112
112
  end
113
113
  end
114
114
 
115
+ context '#juxt' do
116
+ it 'from docs' do
117
+ get_range = r.juxt([->(*xs) { xs.min }, ->(*xs) { xs.max }])
118
+ expect(get_range.call(3, 4, 9, -3)).to eq([-3, 9])
119
+ end
120
+ end
121
+
115
122
  context '#memoize' do
116
123
  it 'from docs' do
117
124
  count = 0
@@ -221,6 +221,16 @@ describe Ramda::List do
221
221
  end
222
222
  end
223
223
 
224
+ context '#last' do
225
+ it 'from docs' do
226
+ expect(r.last(['fi', 'fo', 'fum'])).to eq('fum')
227
+ expect(r.last([])).to eq(nil)
228
+
229
+ expect(r.last('abc')).to eq('c')
230
+ expect(r.last('')).to eq('')
231
+ end
232
+ end
233
+
224
234
  context '#last_index_of' do
225
235
  it 'from docs' do
226
236
  expect(r.last_index_of(3, [-1, 3, 3, 0, 1, 2, 3, 4])).to be(6)
@@ -262,6 +272,16 @@ describe Ramda::List do
262
272
  end
263
273
  end
264
274
 
275
+ context '#partition' do
276
+ it 'from docs' do
277
+ expect(r.partition(R.contains('s'), ['sss', 'ttt', 'foo', 'bars']))
278
+ .to eq([['sss', 'bars'], ['ttt', 'foo']])
279
+
280
+ expect(r.partition(R.contains('s'), a: 'sss', b: 'ttt', foo: 'bars'))
281
+ .to eq([{ a: 'sss', foo: 'bars' }, { b: 'ttt' }])
282
+ end
283
+ end
284
+
265
285
  context '#pluck' do
266
286
  it 'from docs' do
267
287
  expect(r.pluck(:a).call([{ a: 1 }, { a: 2 }])).to eq([1, 2])
@@ -345,6 +365,15 @@ describe Ramda::List do
345
365
  end
346
366
  end
347
367
 
368
+ context '#slice' do
369
+ it 'from docs' do
370
+ expect(r.slice(1, 3, ['a', 'b', 'c', 'd'])).to eq(['b', 'c'])
371
+ expect(r.slice(0, -1, ['a', 'b', 'c', 'd'])).to eq(['a', 'b', 'c'])
372
+ expect(r.slice(-3, -1, ['a', 'b', 'c', 'd'])).to eq(['b', 'c'])
373
+ expect(r.slice(0, 3, 'ramda')).to eq('ram')
374
+ end
375
+ end
376
+
348
377
  context '#sort' do
349
378
  it 'from docs' do
350
379
  diff = ->(a, b) { a - b }
data/spec/ramda_spec.rb CHANGED
@@ -56,7 +56,9 @@ describe Ramda do
56
56
  r(:is_empty)
57
57
  r(:is_nil)
58
58
  r(:join)
59
+ r(:juxt)
59
60
  r(:keys)
61
+ r(:last)
60
62
  r(:last_index_of)
61
63
  r(:length)
62
64
  r(:lt)
@@ -75,6 +77,7 @@ describe Ramda do
75
77
  r(:omit)
76
78
  r(:once)
77
79
  r(:or)
80
+ r(:partition)
78
81
  r(:pick)
79
82
  r(:pick_all)
80
83
  r(:pipe)
@@ -91,6 +94,7 @@ describe Ramda do
91
94
  r(:reject)
92
95
  r(:repeat)
93
96
  r(:reverse)
97
+ r(:slice)
94
98
  r(:sort)
95
99
  r(:sort_by)
96
100
  r(:split)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ramda-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vadim Lazebny