reductor 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6a5a238cb24cc1f8de7500be93a91693486367ec
4
- data.tar.gz: ddeb998004dd0be173e73a358d9b11428431cd28
3
+ metadata.gz: 9dde906879143006942304767f5f824e78d04e2b
4
+ data.tar.gz: 72a82858450bf80dacabdd141885d96494da883c
5
5
  SHA512:
6
- metadata.gz: 32bc32f45554932f300f2893c701edc7ef1029d5e56bc3d49193577f8819fac8761ff1602a769348117ce826c897af56adc285f7e6d22bfc66a5b5ecf138f948
7
- data.tar.gz: eb5b6999b97240ad15f65212506cf125c4cd83ec65fd6d1292a783c740d8b5c3c554ade963ecd10dd11fd0a60c642103c5ddea33493e106da8889b5cfae08704
6
+ metadata.gz: 2fa1af943c38a7f83dbeba8726231756e343d234a8ae9abe0ee4b72eb26554576cf33edac1bed04597297d3dc2d3c97fe5999e0299710bfa86ae5d1253749a0b
7
+ data.tar.gz: 5fdcaa682a1573b20926b10bfc9d874afa48b934016d2a9cbcd5b86e7c723fd5e9d15fbff34925007ec215a30c2f0275ba7cbeb5fc7eaa2a4e21a4e33fcc74d1
@@ -6,7 +6,11 @@ class Reductor
6
6
  end
7
7
 
8
8
  def translated
9
- send(translation_type, field_name)
9
+ if translation_type.respond_to?(:call)
10
+ translation_type.call(field_name)
11
+ else
12
+ send(translation_type, field_name)
13
+ end
10
14
  end
11
15
 
12
16
  private
@@ -27,5 +31,9 @@ class Reductor
27
31
  "this.#{field_name} ? new Date(this.#{field_name}.getFullYear()) : this.#{field_name}"
28
32
  end
29
33
 
34
+ def presence(field_names)
35
+ [field_names].flatten.map{|e| "(this.#{e} ? true : false)" }.join(" && ")
36
+ end
37
+
30
38
  end
31
39
  end
@@ -14,8 +14,8 @@ class Reductor
14
14
  @as = options[:as]
15
15
  end
16
16
 
17
- def value_field_name
18
- @as || 'count';
17
+ def as
18
+ @as
19
19
  end
20
20
 
21
21
  def reduce
@@ -28,11 +28,11 @@ class Reductor
28
28
 
29
29
 
30
30
  def finalize
31
- %Q{
32
- function(key, values) {
33
- return { #{value_field_name}: values };
34
- }
35
- }
31
+ if as
32
+ "function(key, values) { return { #{as}: values }; }"
33
+ else
34
+ "function(key, values) { return values; }"
35
+ end
36
36
  end
37
37
 
38
38
  end
@@ -4,9 +4,9 @@ class Reductor
4
4
 
5
5
  def emit
6
6
  if fields.size > 1
7
- "emit({ #{fields.join(", ")} } , #{translated_sum_field});"
7
+ "emit({#{fields.join(", ")} }, #{translated_sum_field});"
8
8
  else
9
- "emit( #{fields.first.translated} , #{translated_sum_field});"
9
+ "emit(#{fields.first.translated}, #{translated_sum_field});"
10
10
  end
11
11
  end
12
12
 
@@ -16,7 +16,11 @@ class Reductor
16
16
 
17
17
  def sum field, options = {}
18
18
  @sum_field = field
19
- @sum_field_name = options[:as] || @sum_field
19
+ @as = options[:as]
20
+ end
21
+
22
+ def as
23
+ @as
20
24
  end
21
25
 
22
26
  def reduce
@@ -28,11 +32,11 @@ class Reductor
28
32
  end
29
33
 
30
34
  def finalize
31
- %Q{
32
- function(key, values) {
33
- return { #{@sum_field_name}: values };
34
- }
35
- }
35
+ if as
36
+ "function(key, values) { return { #{as}: values }; }"
37
+ else
38
+ "function(key, values) { return values; }"
39
+ end
36
40
  end
37
41
 
38
42
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'reductor'
3
- s.version = '0.0.2'
3
+ s.version = '0.0.3'
4
4
  s.date = '2013-07-12'
5
5
  s.summary = "Map-reduce with ease."
6
6
  s.description = "Collection of common map_reduce operations, implemented with mongoid."
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reductor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcin Stecki
@@ -49,4 +49,3 @@ signing_key:
49
49
  specification_version: 4
50
50
  summary: Map-reduce with ease.
51
51
  test_files: []
52
- has_rdoc: