mobile_devices 0.1.3 → 0.5.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.
data/lib/android.rb CHANGED
@@ -11,7 +11,7 @@ module MobileDevices
11
11
 
12
12
  def initialize(file)
13
13
  @_lookup = {}
14
- JSON.parse(File.read(file)).each do |row|
14
+ JSON.parse(File.read(file, encoding: Encoding::UTF_8)).each do |row|
15
15
  name = row[1]
16
16
  codename = row[2]
17
17
  @_lookup[codename] = name
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'mobile_devices'
3
- s.version = '0.1.3'
3
+ s.version = '0.5.0'
4
4
  s.licenses = ['MIT']
5
5
  s.summary = "Lookup iOS devices from device type, Android from Build.PRODUCT"
6
6
  s.description = "Turn names like iPhone6,2 and zerofltespr into iPhone 5S and Galaxy S6"
@@ -10,5 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.files = `git ls-files -z`.split("\x0")
11
11
  s.require_paths = ['.']
12
12
 
13
- s.add_runtime_dependency 'ios-devices', '~> 0.2.11'
13
+ s.add_runtime_dependency 'ios-devices', '~> 0.4.0'
14
+ s.add_development_dependency 'minitest', '~> 5.0'
15
+ s.required_ruby_version = '>= 3.1'
14
16
  end
@@ -0,0 +1,39 @@
1
+ require 'minitest/autorun'
2
+ require_relative '../mobile_devices'
3
+
4
+ class TestMobileDevices < Minitest::Test
5
+ def test_ios_lookup
6
+ assert_equal 'iPhone 5s', MobileDevices.get_name('iPhone6,2')
7
+ assert_equal 'iPhone 16 Pro Max', MobileDevices.get_name('iPhone17,2')
8
+ assert_equal 'iPad mini 6', MobileDevices.get_name('iPad14,1')
9
+ end
10
+
11
+ def test_android_lookup
12
+ assert_equal 'Galaxy S6', MobileDevices.get_name('zerofltespr')
13
+ assert_equal 'Pixel 9 Pro', MobileDevices.get_name('caiman')
14
+ assert_equal 'Galaxy S24 Ultra', MobileDevices.get_name('e3q')
15
+ end
16
+
17
+ def test_unknown_android_returns_nil
18
+ assert_nil MobileDevices.get_name('notarealdevice')
19
+ end
20
+
21
+ def test_android_names_are_utf8
22
+ name = MobileDevices.get_name('U380AA')
23
+ assert_equal 'AT&T Calypso® 4', name
24
+ assert_equal Encoding::UTF_8, name.encoding
25
+ end
26
+
27
+ # The data file contains non-ASCII bytes; loading must not depend on the
28
+ # process locale (LANG may be unset on servers and in containers).
29
+ def test_loads_under_ascii_default_external_encoding
30
+ original = Encoding.default_external
31
+ verbose, $VERBOSE = $VERBOSE, nil
32
+ Encoding.default_external = Encoding::US_ASCII
33
+ android = MobileDevices::Android.new(DEFAULT_DATA_FILE)
34
+ assert_equal 'Pixel 8 Pro', android.name('husky')
35
+ ensure
36
+ Encoding.default_external = original
37
+ $VERBOSE = verbose
38
+ end
39
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobile_devices
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Sanford
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-04 00:00:00.000000000 Z
11
+ date: 2026-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ios-devices
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.11
19
+ version: 0.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.2.11
26
+ version: 0.4.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
27
41
  description: Turn names like iPhone6,2 and zerofltespr into iPhone 5S and Galaxy S6
28
42
  email: matt@mzsanford.com
29
43
  executables: []
@@ -38,11 +52,12 @@ files:
38
52
  - lib/ios.rb
39
53
  - mobile_devices.gemspec
40
54
  - mobile_devices.rb
55
+ - test/test_mobile_devices.rb
41
56
  homepage: https://github.com/mzsanford/mobile_devices
42
57
  licenses:
43
58
  - MIT
44
59
  metadata: {}
45
- post_install_message:
60
+ post_install_message:
46
61
  rdoc_options: []
47
62
  require_paths:
48
63
  - "."
@@ -50,15 +65,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
50
65
  requirements:
51
66
  - - ">="
52
67
  - !ruby/object:Gem::Version
53
- version: '0'
68
+ version: '3.1'
54
69
  required_rubygems_version: !ruby/object:Gem::Requirement
55
70
  requirements:
56
71
  - - ">="
57
72
  - !ruby/object:Gem::Version
58
73
  version: '0'
59
74
  requirements: []
60
- rubygems_version: 3.0.1
61
- signing_key:
75
+ rubygems_version: 3.5.9
76
+ signing_key:
62
77
  specification_version: 4
63
78
  summary: Lookup iOS devices from device type, Android from Build.PRODUCT
64
79
  test_files: []