Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ['3.1', '3.2', '3.3', '3.4']
ruby-version: ['3.2', '3.3', '3.4']

steps:
- uses: actions/checkout@v3
Expand Down
72 changes: 71 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,73 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.4.0] - 2026-06-15

Generated from [UML model 3.4.0](https://github.com/datafoodconsortium/data-model-uml/releases/tag/v3.4.0) using the [Connector codegen 1.2.0](https://github.com/datafoodconsortium/connector-codegen/releases/tag/v1.2.0).

To avoid name conflict with newer major versions, this version has been published as a new package https://rubygems.org/gems/datafoodconsortium-connector-v1.

The module name has been changed to DataFoodConsortium::ConnectorV1, the package files and folder were renamed to connector_v1.

**This version contains breaking changes introduced by the ontology, see below.**

### Added

Accessors and mutators:
- Add `Agent:socialMedias` setter.
- Add `Agent:websites` setter.
- Add `Agent:emails` setter.
- Add `Catalog:maintainers` setter and remover.
- Add `Catalog:items` setter.
- Add `CatalogItem:catalogs` setter and wrong remover.
- Add `CatalogItem:offers` setter and remover.
- Add `CustomerCategory:name` getter and setter.
- Add `DefinedProduct:partOrigin` setter.
- Add `DefinedProduct:natureOrigin` setter.
- Add `DefinedProduct:certifications` setter.
- Add `DefinedProduct:localizedProducts` accessors and mutators.
- Add `DefinedProduct:catalogItems` setter and remover.
- Add `DefinedProduct:images` adder, getter, setter and remover.
- Add `DefinedProduct:physicalCharacteristics` setter.
- Add `DefinedProduct:nutrientCharacteristics` setter.
- Add `DefinedProduct:allergenCharacteristics` setter.
- Add `DefinedProduct:claims` setter.
- Add `Enterprise:affiliates` accessors and mutators (affiliates).
- Add `Enterprise:technicalProducts` setter and remover.
- Add `Enterprise:catalogItems` setter and remover.
- Add `Enterprise:customerCategories` setter and remover.
- Add `Enterprise:suppliedProducts` setter and remover.
- Add `Order:lines` setter and remover.
- Add `Order:paymentMethod` getter and setter.
- Add `Person:affiliatedOrgs` setter.
- Add `SaleSession:offers` setter and remover.

New objects:
- Add `OpeningHoursSpecification`.

Tests:
- Add test for `Catalog`.
- Add test for `LocalizedProduct`.

### Fixed

- Fix `Agent:localizations` setter.
- Fix `Agent:phoneNumbers` setter.
- Fix `LocalizedProduct:theoreticalStocks` wrong type (now `ITheoreticalStock`).

### Changed

- `Address:country` is now a `ISKOSConcept` to reflect ontology v1.16 state (**breaking change**).
- Rename `hasIncome` -> `hasInput` and `hasOutcome` -> `hasOutput` in `PlannedTransformation` (**breaking change**).
- Rename `incomeOf` > `inputOf` in `PlannedConsumptionFlow` (**breaking change**).
- Rename `outcomeOf` -> `outpufOf` in `PlannedProductionFlow` (**breaking change**).
- Rename `PhysicalPlace:addresses` to `PhysicalPlace:address` (singular) to support correct cardinatility (**breaking change**).
- Rename `PhysicalPlace:mainContact` to `PhysicalPlace:mainContacts` (plural) to support correct cardinatility (**breaking change**).

### Removed

- Remove the `Quantity` class as there is no such class in the ontology. We should use `QuantitativeValue` (**breaking change**).

## [1.3.0] - 2025-12-17

This version has been generated using:
Expand Down Expand Up @@ -191,7 +258,10 @@ This version has been generated using the [code generator](https://github.com/da

- Initial version of this library.

[unreleased]: https://github.com/datafoodconsortium/connector-ruby/compare/v1.1.0...HEAD
[unreleased]: https://github.com/datafoodconsortium/connector-ruby/compare/v1.4.0...HEAD
[1.4.0]: https://github.com/datafoodconsortium/connector-ruby/compare/v1.3.0...v1.4.0
[1.3.0]: https://github.com/datafoodconsortium/connector-ruby/compare/v1.2.0...v1.3.0
[1.2.0]: https://github.com/datafoodconsortium/connector-ruby/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/datafoodconsortium/connector-ruby/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/datafoodconsortium/connector-ruby/compare/v1.0.0-alpha.13...v1.0.0
[1.0.0-alpha.13]: https://github.com/datafoodconsortium/connector-ruby/compare/v1.0.0-alpha.12...v1.0.0-alpha.13
Expand Down
40 changes: 33 additions & 7 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
datafoodconsortium-connector (1.3.0)
datafoodconsortium-connector-v1 (1.4.0.pre.beta8)
virtual_assembly-semantizer (~> 1.0, >= 1.0.5)

GEM
Expand All @@ -23,9 +23,9 @@ GEM
rexml (~> 3.2)
link_header (0.0.8)
logger (1.7.0)
multi_json (1.18.0)
multi_json (1.21.1)
ostruct (0.6.3)
rack (3.2.4)
rack (3.2.6)
rdf (3.3.4)
bcp47_spec (~> 0.2)
bigdecimal (~> 3.1, >= 3.1.5)
Expand All @@ -47,19 +47,45 @@ GEM
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.7)
rspec-mocks (3.13.8)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.6)
rspec-support (3.13.7)
virtual_assembly-semantizer (1.1.1)
json-ld (~> 3.2, >= 3.2.3)

PLATFORMS
ruby
x86_64-linux

DEPENDENCIES
datafoodconsortium-connector!
datafoodconsortium-connector-v1!
rspec

CHECKSUMS
bcp47_spec (0.2.1) sha256=3fd62edf96c126bd9624e4319ac74082a966081859d1ee0ef3c3041640a37810
bigdecimal (3.3.1) sha256=eaa01e228be54c4f9f53bf3cc34fe3d5e845c31963e7fcc5bedb05a4e7d52218
datafoodconsortium-connector-v1 (1.4.0.pre.beta8)
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
htmlentities (4.4.2) sha256=bbafbdf69f2eca9262be4efef7e43e6a1de54c95eb600f26984f71d2fe96c5c3
io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
json-canonicalization (1.0.0) sha256=d4848a8cca7534455c6721f2d9fc9e5e9adca49486864a898810024f67d59446
json-ld (3.3.2) sha256=b9531893bf5bdc01db428e96953845a23adb1097125ce918ae0f97c4a6e1ab27
link_header (0.0.8) sha256=15c65ce43b29f739b30d05e5f25c22c23797e89cf6f905dbb595fb4c70cb55f9
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
multi_json (1.21.1) sha256=e6126a31808e3b4d19f483c775ceac34df190dffa62adfb63a165ee14ba68080
ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
rack (3.2.6) sha256=5ed78e1f73b2e25679bec7d45ee2d4483cc4146eb1be0264fc4d94cb5ef212c2
rdf (3.3.4) sha256=a77fa0821e5b4e2bea9fdbb7c9d980564c89d27e81979690ce5c9e6bc80859c1
readline (0.0.4) sha256=6138eef17be2b98298b672c3ea63bf9cb5158d401324f26e1e84f235879c1d6a
reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
virtual_assembly-semantizer (1.1.1) sha256=a8ce46cd525ce7875a07da7f513c7045cb9c2ee6c32980f7245ffd0d718ba94f

BUNDLED WITH
2.6.9
4.0.3
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,3 +234,9 @@ To run them, just type `rspec`.
Contributions are welcome.

The Pull Requests should be made on our [source code generator repository](https://github.com/datafoodconsortium/connector-codegen-ruby) as the code hosted on this repository is generated.

To make the lockfile (*Gemfile.lock*), type `bundler lock`.

To generate the *.gem*, type `gem build connector_v1.gemspec`.

To push the generated gem to rubygem.org, type `gem push -k dfc datafoodconsortium-connector-<...>.gem` where *dfc* is your credential key.
12 changes: 6 additions & 6 deletions connector.gemspec → connector_v1.gemspec
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
Gem::Specification.new do |s|
s.name = "datafoodconsortium-connector"
s.version = "1.3.0"
s.summary = "Data Food Consortium connector"
s.name = "datafoodconsortium-connector-v1"
s.version = "1.4.0-beta8"
s.summary = "Data Food Consortium connector version 1 (legacy)"
s.description = "A library to easily integrate the DFC standard within your application."
s.authors = ["Maxime Lecoq", "Maikel Linke"]
s.email = "maxime@lecoqlibre.fr"
s.files = Dir["lib/**/*.*"]
s.homepage = "https://github.com/datafoodconsortium/connector-ruby/"
s.homepage = "https://github.com/datafoodconsortium/connector-ruby/releases/tag/v1.4.0"
s.license = "MIT"

s.metadata = {
"changelog_uri" =>
"https://github.com/datafoodconsortium/connector-ruby/blob/main/CHANGELOG.md",
"https://github.com/datafoodconsortium/connector-ruby/releases/tag/v1.4.0/blob/main/CHANGELOG.md",
"source_code_uri" =>
"https://github.com/datafoodconsortium/connector-ruby/",
"https://github.com/datafoodconsortium/connector-ruby/releases/tag/v1.4.0/",
}

s.add_runtime_dependency "virtual_assembly-semantizer", "~> 1.0", ">= 1.0.5"
Expand Down
59 changes: 0 additions & 59 deletions lib/datafoodconsortium/connector.rb

This file was deleted.

59 changes: 59 additions & 0 deletions lib/datafoodconsortium/connector_v1.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
module DataFoodConsortium
module ConnectorV1
require 'datafoodconsortium/connector_v1/connector'
require 'datafoodconsortium/connector_v1/json_ld_serializer'
require 'datafoodconsortium/connector_v1/skos_parser_element'
require 'datafoodconsortium/connector_v1/skos_parser'
require 'datafoodconsortium/connector_v1/agent.rb'
require 'datafoodconsortium/connector_v1/customer_category.rb'
require 'datafoodconsortium/connector_v1/enterprise.rb'
require 'datafoodconsortium/connector_v1/person.rb'
require 'datafoodconsortium/connector_v1/phone_number.rb'
require 'datafoodconsortium/connector_v1/social_media.rb'
require 'datafoodconsortium/connector_v1/address.rb'
require 'datafoodconsortium/connector_v1/allergen_characteristic.rb'
require 'datafoodconsortium/connector_v1/characteristic.rb'
require 'datafoodconsortium/connector_v1/nutrient_characteristic.rb'
require 'datafoodconsortium/connector_v1/opening_hours_specification.rb'
require 'datafoodconsortium/connector_v1/physical_characteristic.rb'
require 'datafoodconsortium/connector_v1/quantitative_value.rb'
require 'datafoodconsortium/connector_v1/defined_product.rb'
require 'datafoodconsortium/connector_v1/flow.rb'
require 'datafoodconsortium/connector_v1/localized_product.rb'
require 'datafoodconsortium/connector_v1/physical_product.rb'
require 'datafoodconsortium/connector_v1/planned_consumption_flow.rb'
require 'datafoodconsortium/connector_v1/planned_local_consumption_flow.rb'
require 'datafoodconsortium/connector_v1/planned_local_production_flow.rb'
require 'datafoodconsortium/connector_v1/planned_local_transformation.rb'
require 'datafoodconsortium/connector_v1/planned_production_flow.rb'
require 'datafoodconsortium/connector_v1/planned_transformation.rb'
require 'datafoodconsortium/connector_v1/realized_consumption_flow.rb'
require 'datafoodconsortium/connector_v1/realized_production_flow.rb'
require 'datafoodconsortium/connector_v1/realized_transformation.rb'
require 'datafoodconsortium/connector_v1/supplied_product.rb'
require 'datafoodconsortium/connector_v1/technical_product.rb'
require 'datafoodconsortium/connector_v1/catalog.rb'
require 'datafoodconsortium/connector_v1/catalog_item.rb'
require 'datafoodconsortium/connector_v1/delivery_option.rb'
require 'datafoodconsortium/connector_v1/offer.rb'
require 'datafoodconsortium/connector_v1/order.rb'
require 'datafoodconsortium/connector_v1/order_line.rb'
require 'datafoodconsortium/connector_v1/payment_method.rb'
require 'datafoodconsortium/connector_v1/physical_place.rb'
require 'datafoodconsortium/connector_v1/pickup_option.rb'
require 'datafoodconsortium/connector_v1/price.rb'
require 'datafoodconsortium/connector_v1/product_batch.rb'
require 'datafoodconsortium/connector_v1/real_stock.rb'
require 'datafoodconsortium/connector_v1/sale_session.rb'
require 'datafoodconsortium/connector_v1/shipping_option.rb'
require 'datafoodconsortium/connector_v1/theoretical_stock.rb'
require 'datafoodconsortium/connector_v1/virtual_place.rb'
require 'datafoodconsortium/connector_v1/skos_concept.rb'

def self.semantic_types
constants.map(&method(:const_get)).select do |c|
c.constants.include?(:SEMANTIC_TYPE)
end
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

require "virtual_assembly/semantizer"

class DataFoodConsortium::Connector::Address
class DataFoodConsortium::ConnectorV1::Address
include VirtualAssembly::Semantizer::SemanticObject

SEMANTIC_TYPE = "dfc-b:Address".freeze
Expand All @@ -37,7 +37,7 @@ class DataFoodConsortium::Connector::Address
# @return [String]
attr_accessor :city

# @return [String]
# @return [ISKOSConcept]
attr_accessor :country

# @return [Real]
Expand All @@ -53,7 +53,7 @@ class DataFoodConsortium::Connector::Address
# @param street [String]
# @param postalCode [String]
# @param city [String]
# @param country [String]
# @param country [ISKOSConcept]
# @param latitude [Real]
# @param longitude [Real]
# @param region [String]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

require "virtual_assembly/semantizer"

class DataFoodConsortium::Connector::Agent
class DataFoodConsortium::ConnectorV1::Agent
include VirtualAssembly::Semantizer::SemanticObject

SEMANTIC_TYPE = "dfc-b:Agent".freeze
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

require "datafoodconsortium/connector/characteristic"
require "datafoodconsortium/connector_v1/characteristic"


require "virtual_assembly/semantizer"

class DataFoodConsortium::Connector::AllergenCharacteristic < DataFoodConsortium::Connector::Characteristic
class DataFoodConsortium::ConnectorV1::AllergenCharacteristic < DataFoodConsortium::ConnectorV1::Characteristic

SEMANTIC_TYPE = "dfc-b:AllergenCharacteristic".freeze

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

require "virtual_assembly/semantizer"

class DataFoodConsortium::Connector::Catalog
class DataFoodConsortium::ConnectorV1::Catalog
include VirtualAssembly::Semantizer::SemanticObject

SEMANTIC_TYPE = "dfc-b:Catalog".freeze
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

require "virtual_assembly/semantizer"

class DataFoodConsortium::Connector::CatalogItem
class DataFoodConsortium::ConnectorV1::CatalogItem
include VirtualAssembly::Semantizer::SemanticObject

SEMANTIC_TYPE = "dfc-b:CatalogItem".freeze
Expand Down
Loading
Loading