quandl_operation 0.1.12 → 0.1.13

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.
data/UPGRADE.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.1.13
2
+
3
+ * add utilities to core_ext
4
+
5
+
1
6
  ## 0.1.12
2
7
 
3
8
  * Quandl::Operation::Collapse.perform will merge rows with nils
@@ -2,4 +2,10 @@ class Array
2
2
  def self.forwardable_methods
3
3
  [:reject, :keep_if, :permutation, :to_a, :cycle, :drop, :take_while, :map, :rotate, :each_slice, :pack, :select!, :combination, :repeated_combination, :shift, :select, :reverse!, :==, :clear, :rotate!, :inspect, :iter_for_each, :sort_by!, :compact!, :|, :copy_data_simple, :nitems, :zip, :take, :rassoc, :flatten!, :join, :compact, :[]=, :frozen?, :slice!, :drop_while, :reverse_each, :shuffle, :slice, :reverse, :insert, :uniq, :first, :count, :fetch, :hash, :to_ary, :find_index, :replace, :-, :product, :iter_for_reverse_each, :pop, :push, :sort, :fill, :uniq!, :length, :&, :flatten, :repeated_permutation, :[], :shuffle!, :sort!, :sample, :include?, :<<, :dimensions, :collect, :+, :rindex, :<=>, :eql?, :indices, :collect!, :iter_for_each_index, :iter_for_each_with_index, :index, :*, :indexes, :copy_data, :delete, :to_s, :assoc, :delete_at, :unshift, :delete_if, :empty?, :reject!, :last, :size, :concat, :map!, :at, :each_index, :transpose, :values_at, :each, :enum_cons, :group_by, :enum_with_index, :entries, :with_object, :chunk, :each_with_index, :min, :inject, :one?, :partition, :enum_slice, :none?, :max_by, :any?, :flat_map, :reduce, :each_entry, :find, :minmax_by, :collect_concat, :each_cons, :member?, :max, :sort_by, :detect, :all?, :minmax, :grep, :each_with_object, :find_all]
4
4
  end
5
+ def average
6
+ self.sum / self.count
7
+ end
8
+ def extract_options
9
+ last.is_a?(::Hash) ? last : {}
10
+ end
5
11
  end
@@ -26,4 +26,30 @@ class Date
26
26
  end
27
27
  end
28
28
 
29
+ def ranging_until( date )
30
+ self..date
31
+ end
32
+
33
+ def occurrences_of_frequency_ahead( occurrences, freq )
34
+ occurrences_of_frequency_ago( occurrences.to_i * -1, freq )
35
+ end
36
+
37
+ def occurrences_of_frequency_ago( occurrences, freq )
38
+ occurrences_of_frequency( occurrences, freq )
39
+ end
40
+
41
+ def occurrences_of_frequency( occurrences, freq )
42
+ # ensure occurrences is an integer
43
+ occurrences = occurrences.to_i
44
+ case freq.try(:to_sym)
45
+ when :weekly then self - occurrences.weeks
46
+ when :monthly then self - occurrences.months
47
+ when :quarterly then self - ( occurrences * 3 ).months
48
+ when :annual then self - occurrences.years
49
+ when :annually then self - occurrences.years
50
+ else
51
+ self - occurrences
52
+ end
53
+ end
54
+
29
55
  end
@@ -0,0 +1,8 @@
1
+ class String
2
+
3
+ def numeric?
4
+ return true if self =~ /^\d+$/
5
+ true if Float(self) rescue false
6
+ end
7
+
8
+ end
@@ -17,10 +17,39 @@ class Time
17
17
 
18
18
  end
19
19
 
20
+ def week_from_beginning_to_end
21
+ (self.beginning_of_week .. self.end_of_week)
22
+ end
23
+ def this_week?
24
+ self.week_from_beginning_to_end.cover?(Time.now)
25
+ end
26
+
27
+ def month_from_beginning_to_end
28
+ (self.beginning_of_month .. self.end_of_month)
29
+ end
30
+ def this_month?
31
+ self.month_from_beginning_to_end.cover?(Time.now)
32
+ end
33
+
34
+ def round(seconds = 60)
35
+ Time.at((self.to_f / seconds).round * seconds)
36
+ end
37
+
38
+ def floor(seconds = 60)
39
+ Time.at((self.to_f / seconds).floor * seconds)
40
+ end
41
+
20
42
  def microseconds
21
43
  (self.to_f * 1000.0).to_i
22
44
  end
23
45
 
46
+ def self.elapsed(message=nil, &block)
47
+ timer = Time.now
48
+ result = block.call
49
+ puts "#{message} (#{timer.elapsed.microseconds}ms)"
50
+ result
51
+ end
52
+
24
53
  def elapsed
25
54
  elapsed_since(Time.now)
26
55
  end
@@ -1,5 +1,5 @@
1
1
  module Quandl
2
2
  module Operation
3
- VERSION = "0.1.12"
3
+ VERSION = "0.1.13"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quandl_operation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-24 00:00:00.000000000 Z
12
+ date: 2013-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -146,6 +146,7 @@ files:
146
146
  - lib/quandl/operation/core_ext/array.rb
147
147
  - lib/quandl/operation/core_ext/date.rb
148
148
  - lib/quandl/operation/core_ext/float.rb
149
+ - lib/quandl/operation/core_ext/string.rb
149
150
  - lib/quandl/operation/core_ext/time.rb
150
151
  - lib/quandl/operation/parse.rb
151
152
  - lib/quandl/operation/transform.rb