torasup 0.0.15 → 0.1.0

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
  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