torasup 0.0.15 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02c09491e5cda23554f00cc013fded14e8d838c6
4
- data.tar.gz: a6ff34c7db89102b4a78c409becdeff38d7551e0
3
+ metadata.gz: 5383412630638aec5f64180496cc1e120e16896f
4
+ data.tar.gz: a3e569658c46e1d0d080de3473f67bc83e679f07
5
5
  SHA512:
6
- metadata.gz: 20ab556f408911e118d895335f3bf2759ca688a42972152f7ba52c834b34dd43d2b885845e36d260f7616cce3d7528a98d27f376889d3ab506a75bd9cfcc9bd0
7
- data.tar.gz: 54263d8a2b91be632769031b7ac8d5f937c4db7751d4671f8b6466b527f0124f893f5837f51da0cbc2813ca8ad6979341fb1855a0d40c3ae463cd7a31103ce3e
6
+ metadata.gz: 274e51bffadf55b2f54dd8b7685f2d723dfa1adfb95bfd3f531549ee93e452fb8eb2e5bf3798ca6409cc34a9305572927fb63d27a94d8f71061509c287519df5
7
+ data.tar.gz: e8bb07f93569f4094923ed9c89d44506cd94813ae22225c37f161afe6bc88fe5e6f0dd1973cd82d6dff7161a47e98be81c5f3a291c4adfad9b7b9277058ed837
data/lib/torasup.rb CHANGED
@@ -28,9 +28,12 @@ module Torasup
28
28
  end
29
29
 
30
30
  def load_pstn_data!
31
- @pstn_data = load_yaml_file(File.join(File.dirname(__FILE__), 'torasup/data/pstn.yaml')).deeper_merge(
32
- load_yaml_file(configuration.custom_pstn_data_file)
33
- )
31
+ @pstn_data = load_yaml_file(File.join(File.dirname(__FILE__), 'torasup/data/pstn.yaml'))
32
+ configuration.custom_pstn_data_files.compact.each do |pstn_data_file|
33
+ @pstn_data.deeper_merge!(
34
+ load_yaml_file(pstn_data_file)
35
+ )
36
+ end
34
37
  load_pstn_prefixes!
35
38
  end
36
39
 
@@ -1,6 +1,6 @@
1
1
  class Configuration
2
2
  DEFAULT_COUNTRIES = ["US", "GB", "AU", "IT", "RU", "NO"]
3
- attr_accessor :registered_operators, :default_countries, :custom_pstn_data_file
3
+ attr_accessor :registered_operators, :default_countries, :custom_pstn_data_files
4
4
 
5
5
  def initialize
6
6
  @default_countries = DEFAULT_COUNTRIES
@@ -12,7 +12,8 @@ class Configuration
12
12
  end
13
13
 
14
14
  def custom_pstn_data_file=(value)
15
- @custom_pstn_data_file = value
15
+ @custom_pstn_data_files ||= []
16
+ value ? (@custom_pstn_data_files << value) : @custom_pstn_data_files.clear
16
17
  Torasup.load_pstn_data!
17
18
  end
18
19
 
@@ -29,4 +30,8 @@ class Configuration
29
30
  def registered_operators
30
31
  @registered_operators ||= {}
31
32
  end
33
+
34
+ def custom_pstn_data_files
35
+ (@custom_pstn_data_files ||= []).compact
36
+ end
32
37
  end
@@ -1,3 +1,3 @@
1
1
  module Torasup
2
- VERSION = "0.0.15"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,6 @@
1
+ ---
2
+ kh:
3
+ operators:
4
+ hello:
5
+ metadata:
6
+ my_custom_property_2: hello-foo-2
@@ -25,9 +25,14 @@ module PstnHelpers
25
25
  end
26
26
  end
27
27
 
28
- def configure_with_custom_data
29
- Torasup.configure do |config|
30
- config.custom_pstn_data_file = File.join(File.dirname(__FILE__), "../support", "/custom_pstn.yaml")
28
+ def configure_with_custom_data(options = {})
29
+ custom_data_files = ["custom_pstn.yaml"]
30
+ custom_data_files << "custom_pstn_2.yaml" if options[:multiple_files]
31
+
32
+ custom_data_files.each do |custom_data_file|
33
+ Torasup.configure do |config|
34
+ config.custom_pstn_data_file = File.join(File.dirname(__FILE__), "../support", "/#{custom_data_file}")
35
+ end
31
36
  end
32
37
  end
33
38
  end
@@ -61,16 +61,38 @@ describe Torasup do
61
61
  end
62
62
 
63
63
  describe "#custom_pstn_data_file=('path_to_yaml_file.yaml')" do
64
- before do
64
+ def setup_expectations
65
65
  allow(Torasup).to receive(:load_pstn_data!)
66
+ expect(Torasup).to receive(:load_pstn_data!)
66
67
  end
67
68
 
68
- it "should set a custom pstn data file and reload the data" do
69
- Torasup.configure do |config|
70
- expect(Torasup).to receive(:load_pstn_data!)
71
- expect(config.custom_pstn_data_file).to be_nil
72
- config.custom_pstn_data_file = "foo.yaml"
73
- expect(config.custom_pstn_data_file).to eq("foo.yaml")
69
+ def setup_scenario
70
+ setup_expectations
71
+ end
72
+
73
+ before do
74
+ setup_scenario
75
+ end
76
+
77
+ context "setting a custom pstn data file" do
78
+ it "should set a custom pstn data file and reload the data" do
79
+ Torasup.configure do |config|
80
+ expect(config.custom_pstn_data_files).to eq([])
81
+ config.custom_pstn_data_file = "foo.yaml"
82
+ expect(config.custom_pstn_data_files).to eq(["foo.yaml"])
83
+ end
84
+ end
85
+ end
86
+
87
+ context "setting the custom pstn data file to nil" do
88
+ it "should clear the pstn data files and reload the data" do
89
+ Torasup.configure do |config|
90
+ expect(config.custom_pstn_data_files).to eq([])
91
+ config.custom_pstn_data_file = "foo.yaml"
92
+ expect(config.custom_pstn_data_files).to eq(["foo.yaml"])
93
+ config.custom_pstn_data_file = nil
94
+ expect(config.custom_pstn_data_files).to eq([])
95
+ end
74
96
  end
75
97
  end
76
98
  end
@@ -82,11 +82,27 @@ module Torasup
82
82
 
83
83
  context "using overridden data" do
84
84
  before do
85
- configure_with_custom_data
85
+ configure_with_custom_data(configuration_options)
86
86
  end
87
87
 
88
- it_should_behave_like "an operator" do
89
- let(:options) { { :with_custom_pstn_data => true } }
88
+ context "with a single configuration file" do
89
+ let(:configuration_options) { {} }
90
+
91
+ it_should_behave_like "an operator" do
92
+ let(:options) { { :with_custom_pstn_data => true } }
93
+ end
94
+ end
95
+
96
+ context "with multiple configuration files" do
97
+ let(:configuration_options) { {:multiple_files => true} }
98
+
99
+ def assert_overridden_data!
100
+ torasup_number = Torasup::PhoneNumber.new("85515234567")
101
+ operator = torasup_number.operator
102
+ expect(operator.my_custom_property_2).to eq("hello-foo-2")
103
+ end
104
+
105
+ it { assert_overridden_data! }
90
106
  end
91
107
  end
92
108
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torasup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Wilkie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-29 00:00:00.000000000 Z
11
+ date: 2016-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: countries
@@ -105,6 +105,7 @@ files:
105
105
  - lib/torasup/version.rb
106
106
  - spec/spec_helper.rb
107
107
  - spec/support/custom_pstn.yaml
108
+ - spec/support/custom_pstn_2.yaml
108
109
  - spec/support/custom_pstn_spec.yaml
109
110
  - spec/support/pstn_helpers.rb
110
111
  - spec/support/pstn_spec.yaml
@@ -134,13 +135,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
135
  version: '0'
135
136
  requirements: []
136
137
  rubyforge_project:
137
- rubygems_version: 2.4.5.1
138
+ rubygems_version: 2.5.2
138
139
  signing_key:
139
140
  specification_version: 4
140
141
  summary: '"Retuns metadata about a phone number such as operator, area code and more"'
141
142
  test_files:
142
143
  - spec/spec_helper.rb
143
144
  - spec/support/custom_pstn.yaml
145
+ - spec/support/custom_pstn_2.yaml
144
146
  - spec/support/custom_pstn_spec.yaml
145
147
  - spec/support/pstn_helpers.rb
146
148
  - spec/support/pstn_spec.yaml