ETL 1.1.0 → 1.1.1

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 (4) hide show
  1. data/lib/etl.rb +10 -0
  2. data/lib/etl/version.rb +1 -1
  3. data/spec/etl_spec.rb +88 -0
  4. metadata +1 -1
data/lib/etl.rb CHANGED
@@ -69,6 +69,8 @@ class ETL
69
69
  # for any given variable included in the method name's array
70
70
  (ORDERED_ETL_OPERATIONS - [:etl]).each do |method|
71
71
  define_method method do |*args, &block|
72
+ warn_args_will_be_deprecated_for method unless args.empty?
73
+
72
74
  if block
73
75
  instance_variable_set("@#{method}", block)
74
76
  else
@@ -79,6 +81,8 @@ class ETL
79
81
  end
80
82
 
81
83
  def etl *args, &block
84
+ warn_args_will_be_deprecated_for :etl unless args.empty?
85
+
82
86
  if block_given?
83
87
  @etl = block
84
88
  else
@@ -114,6 +118,8 @@ class ETL
114
118
  # for any given variable included in the method name's array
115
119
  ITERATOR_OPERATIONS.each do |method|
116
120
  define_method method do |*args, &block|
121
+ warn_args_will_be_deprecated_for method unless args.empty?
122
+
117
123
  if block
118
124
  instance_variable_set("@_#{method}_block", block)
119
125
  else
@@ -142,6 +148,10 @@ class ETL
142
148
 
143
149
  private
144
150
 
151
+ def warn_args_will_be_deprecated_for method
152
+ warn "DEPRECATED: passing arguments to ##{method} will be removed in an upcoming release and will raise an exception. Please remove this from your code."
153
+ end
154
+
145
155
  def iterate?
146
156
  ITERATOR_OPERATIONS.all? do |method|
147
157
  instance_variable_defined?("@_#{method}_block")
@@ -1,3 +1,3 @@
1
1
  class ETL
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
@@ -38,6 +38,94 @@ end
38
38
  describe ETL do
39
39
  let(:logger) { nil }
40
40
 
41
+ describe "deprecations" do
42
+ let(:etl) { described_class.new }
43
+
44
+ context "#ensure_destination" do
45
+ it "does not warn when no args are passed" do
46
+ etl.should_receive(:warn).never
47
+ etl.ensure_destination {}
48
+ end
49
+
50
+ it "warns when args are passed that this is deprecated" do
51
+ etl.should_receive(:warn).with("DEPRECATED: passing arguments to #ensure_destination will be removed in an upcoming release and will raise an exception. Please remove this from your code.")
52
+ etl.ensure_destination('some arg') {}
53
+ end
54
+ end
55
+
56
+ context "#before_etl" do
57
+ it "does not warn when no args are passed" do
58
+ etl.should_receive(:warn).never
59
+ etl.before_etl {}
60
+ end
61
+
62
+ it "warns when args are passed that this is deprecated" do
63
+ etl.should_receive(:warn).with("DEPRECATED: passing arguments to #before_etl will be removed in an upcoming release and will raise an exception. Please remove this from your code.")
64
+ etl.before_etl('some arg') {}
65
+ end
66
+ end
67
+
68
+ context "#start" do
69
+ it "does not warn when no args are passed" do
70
+ etl.should_receive(:warn).never
71
+ etl.start {}
72
+ end
73
+
74
+ it "warns when args are passed that this is deprecated" do
75
+ etl.should_receive(:warn).with("DEPRECATED: passing arguments to #start will be removed in an upcoming release and will raise an exception. Please remove this from your code.")
76
+ etl.start('some arg') {}
77
+ end
78
+ end
79
+
80
+ context "#step" do
81
+ it "does not warn when no args are passed" do
82
+ etl.should_receive(:warn).never
83
+ etl.step {}
84
+ end
85
+
86
+ it "warns when args are passed that this is deprecated" do
87
+ etl.should_receive(:warn).with("DEPRECATED: passing arguments to #step will be removed in an upcoming release and will raise an exception. Please remove this from your code.")
88
+ etl.step('some arg') {}
89
+ end
90
+ end
91
+
92
+ context "#stop" do
93
+ it "does not warn when no args are passed" do
94
+ etl.should_receive(:warn).never
95
+ etl.stop {}
96
+ end
97
+
98
+ it "warns when args are passed that this is deprecated" do
99
+ etl.should_receive(:warn).with("DEPRECATED: passing arguments to #stop will be removed in an upcoming release and will raise an exception. Please remove this from your code.")
100
+ etl.stop('some arg') {}
101
+ end
102
+ end
103
+
104
+ context "#etl" do
105
+ it "does not warn when no args are passed" do
106
+ etl.should_receive(:warn).never
107
+ etl.etl {}
108
+ end
109
+
110
+ it "warns when args are passed that this is deprecated" do
111
+ etl.should_receive(:warn).with("DEPRECATED: passing arguments to #etl will be removed in an upcoming release and will raise an exception. Please remove this from your code.")
112
+ etl.etl('some arg') {}
113
+ end
114
+ end
115
+
116
+ context "#after_etl" do
117
+ it "does not warn when no args are passed" do
118
+ etl.should_receive(:warn).never
119
+ etl.after_etl {}
120
+ end
121
+
122
+ it "warns when args are passed that this is deprecated" do
123
+ etl.should_receive(:warn).with("DEPRECATED: passing arguments to #after_etl will be removed in an upcoming release and will raise an exception. Please remove this from your code.")
124
+ etl.after_etl('some arg') {}
125
+ end
126
+ end
127
+ end
128
+
41
129
  describe ".connection=" do
42
130
  let(:class_level_connection) { stub('class_level_connection') }
43
131
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ETL
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: