network-infra-utility 0.2.0 → 0.3.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
  SHA256:
3
- metadata.gz: e8a2b1b8402f7fdb0ba39e7a6d01b384d624e6906530a27c575ae6371bedabfd
4
- data.tar.gz: 7f0cb17756a53dcc31386fa5aebc786ba3640ca0cd86443c539237c41239d0b8
3
+ metadata.gz: bd7dc94d7118949c063f28f9cbb79bd568165a0f2cf02bf53f86e5c16b9fac82
4
+ data.tar.gz: bbf1b6992e88cd062e388720bdf745b31fdceeb6bf1abf0df5f6408274348df4
5
5
  SHA512:
6
- metadata.gz: 75901331bb496d6bbd54935256bf01990ddd2221b97415a9210a1133ba03516abbb6ebc4d4550197e17ebeee9593dc0920f90b146fd0ae7f546836bd9a92f4e0
7
- data.tar.gz: 66e83826b05f0029b781c93d03daf2f7faaf01058d1a404f34bf25a1bf2a68064c43ac95912148e1a9793d7ff05fd3fe80def8265d18f2aa71ceb69f9bc602ce
6
+ metadata.gz: f93ce6f933fdc094e01c34e6a5f8be9b8a61130312715a39ab2d7775aa865a3078453f5f66db5218c2de29aee913f964e4acd63be848b041bdc12f0f0a83609e
7
+ data.tar.gz: 57c4ebd8aa9ffaadad6916bd1eb5748bc627d44208d3c12570c15622ff248ea2d8ccfadd9e431f60d15ec3dccb520e8380ab8af55df017a7482ae57e7fba1963
data/CHANGELOG.md CHANGED
@@ -8,12 +8,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.3.0] - 2026-07-26
12
+
13
+ ### Added
14
+
15
+ - 新增 `geo-load` 命令行工具:GeoLite2 CSV → JSON 转换,支持 `geo-load [RAW_DIR] [DOC_DIR]` 双位置参数,RAW_DIR 省略时在当前目录自动查找,DOC_DIR 省略时默认 `./geodb/`,不存在的输出目录自动创建。支持 `--asn-only` / `--city-only` / `--country-only` 单选转换。
16
+ - 新增 `geo-get` 命令行工具:向运行中的 geo-api 服务查询单个 IP 归属信息,一次输入三接口齐查,支持 `--text` / `--json` 两种输出格式与 `--country` / `--city` / `--asn` 单接口选择。
17
+ - `geo-load` / `geo-get` 加入 gemspec executables,`gem install` 后自动进入 PATH。
18
+ - 新增 example 文档:`ip_usage.md`(IP 模块代码级用法)、`geo_commands_usage.md`(Geo 三命令的命令行用法与代码级用法)。
19
+
20
+ ## [0.2.0] - 2026-07-25
21
+
22
+ ### Added
23
+
24
+ - 新增 `IPv4` / `IPv6` / `IPv4Mask` / `IPv6Mask` 地址解析模块,提供地址分类、掩码运算、CIDR 展开、子网划分、区间相交判断等能力。
25
+ - 新增 `IP` 统一入口模块,提供 `v4` / `v6` / `range` / `cross` / `xross` 五个方法,按地址串自动分派 IPv4 / IPv6。
26
+ - 从原版 `network` gem(`utility/ipv4_address.rb` / `ipv6_address.rb`)迁移并重新编码。
27
+
28
+ ### Changed
29
+
30
+ - ⚠️ **部分 IP 转换含义发生变化**,与原版 `network` gem(`utility/ipv4_address.rb` / `ipv6_address.rb`)不兼容,升级时需注意:
31
+ - `+` / `-` 算术运算从**破坏性**(原版直接修改 `@number` 并 `generate` 覆写自身)改为**非破坏性**(返回新对象,原对象不变)。
32
+ - `&` 按位与的返回值从原版的 `IP.v4(...)` / `IP.v6(...)`(依赖 `module IP` 上下文)改为直接 `IPv4.new` / `IPv6.new`,不再隐式依赖 `IP` 模块。
33
+ - `range_with` 原版返回 `[网络地址+1, 广播地址]`(排除了网络地址),新版改为 `[网络地址, 广播地址]`(含两端完整的网段区间)。
34
+ - `delegation` 的子网生成从原版的 `clone` + 破坏性 `+` 改为非破坏性 `base + offset`,返回的结果是独立对象。
35
+ - 方法命名规范化:原版的 `is_class_a?` / `is_mask?` / `is_private?` 等 `is_` 前缀方法保留为别名,新增无前缀的 `class_a?` / `mask?` / `private?` 等作为主方法名。
36
+ - `is_another?` 重命名为 `special?`(保留 `is_another?` 别名)。
37
+ - `IPv6` 非法地址从 `raise` + 返回 `nil` 的混合行为统一为抛出异常并附带 IPAddr 错误信息。
38
+ - `generate` 中的 `formmat` → `format_parts`、`check` / `checks` → `valid?`,内部方法名规范化,外部接口不变。
39
+
40
+ ## [0.1.0] - 2026-07-24
41
+
11
42
  ### Added
12
43
 
13
44
  - 初始化 gem 骨架,按 document / service / support / tool 四层 require_paths 组织代码。
14
45
  - 配置 RSpec 原子能力测试(`spec/`)与功能用例(`example/`)双套结构。
15
46
  - 提供标准 gem 文件:gemspec / Gemfile / Rakefile / .rspec / bin/console / bin/setup 等。
16
-
17
- ## [0.1.0] - Unreleased
18
-
19
- - 项目初始化。
@@ -1,3 +1,4 @@
1
+
1
2
  # GeoAPI 测试用例
2
3
 
3
4
  > 接口服务文件:`api.rb`
data/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NetworkInfraUtility
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: network-infra-utility
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt