pioneer_ruby_sdk 1.0.0 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e909be278c86086ed47667127df968e8b75e1dc639dd718a1344b11e5ba96334
4
- data.tar.gz: a88077557732acb48a49354805fe4d08d2f2ea0ba4db82ca8771bd8c465b6672
3
+ metadata.gz: e95e45596e7e7c90a6e718e412191ea4868cfc700b4481116bcb26470ebb4418
4
+ data.tar.gz: 1dc70bede8bf710de8acce3400e441cc5da366113f90380296569c4da79a6330
5
5
  SHA512:
6
- metadata.gz: c31dfe2719112b871537b9b9e9649ce2b22775561bfe98964f123ab2014db724782433362075b7fb67089a730c7c4dc9813d0ef04bc1dda8f9b564b8b57c63bc
7
- data.tar.gz: 8347f79aa3645304ebd8f1748787704e833330968e083972fb8541e38d3b8e72361f204d83c805a56f03cb92ea2bfa364c47b841012b9add596d836dc95f1a8d
6
+ metadata.gz: 6574f8de533d0c54004c0977d233297017a822059f8793c6b9a1560209ea2d519a9ce7102685527c99ff7b665c15b0b876164a6919b4bee38ca4683f73370665
7
+ data.tar.gz: ea4379f0f47571dcc88dfc4d2dfd1f872882321bcab7f9580d76ddfc2ecd6ad24483f4af409328190b0a82b64395100fdca6709900e57d64b281954cf8a08732
@@ -1,4 +1,4 @@
1
- require_relative 'helper_methods/handle_undefined_feature.rb'
1
+ require_relative 'mod/handle_undefined_feature.rb'
2
2
 
3
3
  class Client_With_Context
4
4
  def initialize(context_obj)
@@ -10,7 +10,7 @@ class Client_With_Context
10
10
  def get_feature(key, default_value)
11
11
  feature_state = @client.get_feature_state(key)
12
12
  if !feature_state
13
- return handle_undefined_feature(key, default_value)
13
+ return HandleUndefinedFeature.handle(key, default_value)
14
14
  end
15
15
 
16
16
  return feature_state.strategy.calculate(@context)
@@ -1,7 +1,7 @@
1
1
  require 'ld-eventsource'
2
2
  require 'json'
3
3
  require_relative 'feature_state'
4
- require_relative 'helper_methods/handle_undefined_feature'
4
+ require_relative 'mod/handle_undefined_feature'
5
5
 
6
6
  # class for event source client instance
7
7
  class Event_Source_Client
@@ -15,7 +15,8 @@ class Event_Source_Client
15
15
  headers: { Authorization: @config[:sdk_key]}
16
16
  }
17
17
 
18
- sse_client = SSE::Client.new("localhost:3030/features", headers: options[:headers])
18
+ # this needs to make use of the constant based uri, not hardcoded
19
+ sse_client = SSE::Client.new(@config[:server_address], headers: options[:headers])
19
20
 
20
21
  @api_client = sse_client
21
22
  end
@@ -26,20 +27,13 @@ class Event_Source_Client
26
27
  end
27
28
 
28
29
  def handle_events
29
- event_type = nil
30
-
31
30
  @api_client.on_event do |event|
32
31
  data = JSON.parse(event[:data])
33
- event_type = data[:type]
34
- payload = data[:data]
35
- end
36
-
37
- puts event_type
38
- case event_type
39
- when "ALL_FEATURES"
40
- handle_all_features(payload)
41
- when "CREATE_CONNECTION"
42
- return
32
+ event_type = data['eventType']
33
+ if event_type == "ALL_FEATURES"
34
+ payload = data['payload']
35
+ handle_all_features(payload)
36
+ end
43
37
  end
44
38
  end
45
39
 
@@ -56,11 +50,11 @@ class Event_Source_Client
56
50
 
57
51
  all_features.each do |feature|
58
52
  modified_feature_state_params = {
59
- title: feature[:title],
60
- value: feature[:is_active],
61
- strategy: {percentage: feature[:rollout]}
53
+ title: feature['title'],
54
+ value: feature['is_active'],
55
+ strategy: {percentage: feature['rollout']}
62
56
  }
63
- feature_states[feature[:title]] = FeatureState.new(modified_feature_state_params)
57
+ feature_states[feature['title']] = FeatureState.new(modified_feature_state_params)
64
58
  end
65
59
 
66
60
  @features = feature_states
@@ -69,17 +63,16 @@ class Event_Source_Client
69
63
 
70
64
  def get_feature(key, default_value)
71
65
  feature_state = get_feature_state(key)
72
- if !feature_state
73
- handle_undefined_feature(key, default_value)
66
+ if feature_state.nil?
67
+ HandleUndefinedFeature.handle(key, default_value)
74
68
  return
75
69
  end
76
70
 
77
- value = feature_state[:value]
78
- return value
71
+ feature_state.value
79
72
  end
80
73
 
81
74
 
82
75
  def get_feature_state(key)
83
- return @features[:key]
76
+ return @features[key]
84
77
  end
85
78
  end
data/lib/feature_state.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require_relative 'strategy'
2
2
 
3
3
  class FeatureState
4
+ attr_reader :value
4
5
  def initialize(feature_state_object)
5
6
  @title = feature_state_object[:title],
6
7
  @value = feature_state_object[:value],
@@ -0,0 +1,9 @@
1
+ module HandleUndefinedFeature
2
+ def self.handle(key, default_value)
3
+ unless default_value.nil?
4
+ puts("Warning: Could not get #{key} from features, using provided default value!")
5
+ return default_value
6
+ end
7
+ raise("Error: #{key} does not exist, cannot get get feature!");
8
+ end
9
+ end
@@ -13,9 +13,9 @@ class Pioneer_Ruby_Sdk
13
13
  end
14
14
 
15
15
  def connect()
16
- @client = Event_Source_Client.new(@configs)
17
- @client.start()
18
- return self
16
+ @client = Event_Source_Client.new(@configs)
17
+ @client.start
18
+ self
19
19
  end
20
20
 
21
21
  def with_wait_for_data(time_out = 1, polling_attempts = 5)
@@ -47,4 +47,8 @@ class Pioneer_Ruby_Sdk
47
47
  def get_server_address()
48
48
  return @server_address
49
49
  end
50
- end
50
+
51
+ def get_feature(key, default_value)
52
+ @client.get_feature(key, default_value)
53
+ end
54
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pioneer_ruby_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Zheng
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2021-07-19 00:00:00.000000000 Z
14
+ date: 2021-07-21 00:00:00.000000000 Z
15
15
  dependencies: []
16
16
  description:
17
17
  email:
@@ -23,11 +23,12 @@ files:
23
23
  - lib/context.rb
24
24
  - lib/event_source_client.rb
25
25
  - lib/feature_state.rb
26
- - lib/helper_methods/handle_undefined_feature.rb
26
+ - lib/mod/handle_undefined_feature.rb
27
27
  - lib/pioneer_ruby_sdk.rb
28
28
  - lib/strategy.rb
29
29
  homepage:
30
- licenses: []
30
+ licenses:
31
+ - MIT
31
32
  metadata: {}
32
33
  post_install_message:
33
34
  rdoc_options: []
@@ -1,7 +0,0 @@
1
- def handle_undefined_feature(key, default_value)
2
- if !default_value.nil?
3
- puts("Warning: Could not get #{key} from features, using provided default value!")
4
- return default_value
5
- end
6
- raise("Error: #{key} does not exist, cannot get get feature!");
7
- end