reductor 0.0.2 → 0.0.3

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: 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: