Skip to content
This repository was archived by the owner on Oct 19, 2018. It is now read-only.

Commit 9287ae8

Browse files
committed
remove deprecated prop define methods
1 parent 1c5b888 commit 9287ae8

File tree

4 files changed

+17
-42
lines changed

4 files changed

+17
-42
lines changed

lib/react/component/class_methods.rb

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def deprecation_warning(message)
2828
end
2929

3030
def validator
31-
@validator ||= Validator.new(self)
31+
@validator ||= Validator.new(props_wrapper)
3232
end
3333

3434
def prop_types
@@ -59,10 +59,6 @@ def props_wrapper
5959
@props_wrapper ||= Class.new(PropsWrapper)
6060
end
6161

62-
def define_param(name, param_type)
63-
props_wrapper.define_param(name, param_type, self)
64-
end
65-
6662
def param(*args)
6763
if args[0].is_a? Hash
6864
options = args[0]
@@ -81,18 +77,6 @@ def param(*args)
8177
end
8278
end
8379

84-
def required_param(name, options = {})
85-
deprecation_warning "`required_param` is deprecated, use `param` instead."
86-
validator.requires(name, options)
87-
end
88-
89-
alias_method :require_param, :required_param
90-
91-
def optional_param(name, options = {})
92-
deprecation_warning "`optional_param` is deprecated, use `param param_name: default_value` instead."
93-
validator.optional(name, options)
94-
end
95-
9680
def collect_other_params_as(name)
9781
validator.allow_undefined_props = true
9882
define_method(name) do

lib/react/component/props_wrapper.rb

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,8 @@ module Component
33
class PropsWrapper
44
attr_reader :props
55

6-
def self.define_param(name, param_type, owner)
7-
owner.define_method("#{name}") do
8-
deprecated_params_method("#{name}", *args, &block)
9-
end
6+
def self.define_param(name, param_type)
107
if param_type == Observable
11-
owner.define_method("#{name}!") do |*args|
12-
deprecated_params_method("#{name}!", *args)
13-
end
148
define_method("#{name}") do
159
value_for(name)
1610
end

lib/react/validator.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
module React
2-
32
class Validator
43
attr_accessor :errors
5-
private :errors
4+
attr_reader :props_wrapper
5+
private :errors, :props_wrapper
66

7-
def initialize(component_class)
8-
@component_class = component_class
7+
def initialize(props_wrapper = Class.new(Component::PropsWrapper))
8+
@props_wrapper = props_wrapper
99
end
1010

1111
def self.build(&block)
@@ -70,7 +70,7 @@ def rules
7070

7171
def define_rule(name, options = {})
7272
rules[name] = coerce_native_hash_values(options)
73-
@component_class.define_param(name, options[:type]) unless name == :params
73+
props_wrapper.define_param(name, options[:type])
7474
end
7575

7676
def errors

spec/react/validator_spec.rb

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@
22

33
if opal?
44
describe React::Validator do
5-
before do
6-
stub_const 'Foo', Class.new(React::Component::Base)
7-
end
85
describe '#validate' do
96
describe "Presence validation" do
107
it "should check if required props provided" do
11-
validator = React::Validator.new(Foo).build do
8+
validator = React::Validator.new.build do
129
requires :foo
1310
requires :bar
1411
end
@@ -18,7 +15,7 @@
1815
end
1916

2017
it "should check if passed non specified prop" do
21-
validator = React::Validator.new(Foo).build do
18+
validator = React::Validator.new.build do
2219
optional :foo
2320
end
2421

@@ -29,7 +26,7 @@
2926

3027
describe "Type validation" do
3128
it "should check if passed value with wrong type" do
32-
validator = React::Validator.new(Foo).build do
29+
validator = React::Validator.new.build do
3330
requires :foo, type: String
3431
end
3532

@@ -39,7 +36,7 @@
3936

4037
it "should check if passed value with wrong custom type" do
4138
stub_const 'Bar', Class.new
42-
validator = React::Validator.new(Foo).build do
39+
validator = React::Validator.new.build do
4340
requires :foo, type: Bar
4441
end
4542

@@ -48,7 +45,7 @@
4845
end
4946

5047
it 'coerces native JS prop types to opal objects' do
51-
validator = React::Validator.new(Foo).build do
48+
validator = React::Validator.new.build do
5249
requires :foo, type: `{ x: 1 }`
5350
end
5451

@@ -57,7 +54,7 @@
5754
end
5855

5956
it 'coerces native JS values to opal objects' do
60-
validator = React::Validator.new(Foo).build do
57+
validator = React::Validator.new.build do
6158
requires :foo, type: Array[Fixnum]
6259
end
6360

@@ -66,7 +63,7 @@
6663
end
6764

6865
it "should support Array[Class] validation" do
69-
validator = React::Validator.new(Foo).build do
66+
validator = React::Validator.new.build do
7067
requires :foo, type: Array[Hash]
7168
end
7269

@@ -83,7 +80,7 @@
8380

8481
describe "Limited values" do
8582
it "should check if passed value is not one of the specified values" do
86-
validator = React::Validator.new(Foo).build do
83+
validator = React::Validator.new.build do
8784
requires :foo, values: [4,5,6]
8885
end
8986

@@ -96,7 +93,7 @@
9693
describe '#undefined_props' do
9794
let(:props) { { foo: 'foo', bar: 'bar', biz: 'biz', baz: 'baz' } }
9895
let(:validator) do
99-
React::Validator.new(Foo).build do
96+
React::Validator.new.build do
10097
requires :foo
10198
optional :bar
10299
end
@@ -115,7 +112,7 @@
115112

116113
describe "default_props" do
117114
it "should return specified default values" do
118-
validator = React::Validator.new(Foo).build do
115+
validator = React::Validator.new.build do
119116
requires :foo, default: 10
120117
requires :bar
121118
optional :lorem, default: 20

0 commit comments

Comments
 (0)