microsoft_kiota_serialization_json 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/CODEOWNERS +1 -0
- data/.github/dependabot.yml +12 -0
- data/.github/workflows/code-ql.yml +76 -0
- data/.github/workflows/conflicting-pr-label.yml +34 -0
- data/.github/workflows/projectsbot.yml +81 -0
- data/.github/workflows/release.yml +45 -0
- data/.github/workflows/ruby.yml +34 -0
- data/.gitignore +58 -0
- data/.rspec +3 -0
- data/CHANGELOG.md +18 -0
- data/CODE_OF_CONDUCT.md +9 -0
- data/Gemfile +5 -0
- data/LICENSE +21 -0
- data/README.md +53 -0
- data/Rakefile +8 -0
- data/SECURITY.md +41 -0
- data/SUPPORT.md +25 -0
- data/lib/microsoft_kiota_serialization_json/json_parse_node.rb +128 -0
- data/lib/microsoft_kiota_serialization_json/json_parse_node_factory.rb +23 -0
- data/lib/microsoft_kiota_serialization_json/json_serialization_writer.rb +228 -0
- data/lib/microsoft_kiota_serialization_json/json_serialization_writer_factory.rb +21 -0
- data/lib/microsoft_kiota_serialization_json/version.rb +5 -0
- data/lib/microsoft_kiota_serialization_json.rb +10 -0
- data/microsoft_kiota_serialization_json.gemspec +37 -0
- metadata +148 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0ba822cb4d35f1970449b0905e7ef8a8264fd5c9735c01a39fe8f7c23fc48e24
|
4
|
+
data.tar.gz: 609ac085e0bab75b312f22e60bf2315b07242c2cc5317e054ec731e0e47f35a9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d34cadd37ea2dedae24d3e2e71595e087655274d0f0217bed244fd7930f11e57d27a81edbb120aa8218c3aa9f96008a736d02e7101f13731477e2ccc5a650cfb
|
7
|
+
data.tar.gz: 4a8fa4d2d1d3bfeff833bfd1d1d58bed8e86c4b2f4fae2dc429f98794d348d6411d565d76b6760ab6f21121d9d6009326a098ba2472adfa7b34cb5d13eb2b30e
|
data/.github/CODEOWNERS
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
* @andrueastman @baywet @darrelmiller @zengin @MichaelMainer @ddyett @peombwa @nikithauc @ramsessanchez @calebkiage @Ndiritu @rkodev @gavinbarron
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# For most projects, this workflow file will not need changing; you simply need
|
2
|
+
# to commit it to your repository.
|
3
|
+
#
|
4
|
+
# You may wish to alter this file to override the set of languages analyzed,
|
5
|
+
# or to provide custom queries or build logic.
|
6
|
+
#
|
7
|
+
# ******** NOTE ********
|
8
|
+
# We have attempted to detect the languages in your repository. Please check
|
9
|
+
# the `language` matrix defined below to confirm you have the correct set of
|
10
|
+
# supported CodeQL languages.
|
11
|
+
#
|
12
|
+
name: "CodeQL"
|
13
|
+
|
14
|
+
on:
|
15
|
+
push:
|
16
|
+
branches: [ "master", main ]
|
17
|
+
pull_request:
|
18
|
+
# The branches below must be a subset of the branches above
|
19
|
+
branches: [ "master" ]
|
20
|
+
schedule:
|
21
|
+
- cron: '41 2 * * 0'
|
22
|
+
|
23
|
+
jobs:
|
24
|
+
analyze:
|
25
|
+
name: Analyze
|
26
|
+
runs-on: ubuntu-latest
|
27
|
+
permissions:
|
28
|
+
actions: read
|
29
|
+
contents: read
|
30
|
+
security-events: write
|
31
|
+
|
32
|
+
strategy:
|
33
|
+
fail-fast: false
|
34
|
+
matrix:
|
35
|
+
language: [ 'ruby' ]
|
36
|
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
37
|
+
# Use only 'java' to analyze code written in Java, Kotlin or both
|
38
|
+
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
|
39
|
+
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
40
|
+
|
41
|
+
steps:
|
42
|
+
- name: Checkout repository
|
43
|
+
uses: actions/checkout@v3
|
44
|
+
|
45
|
+
# Initializes the CodeQL tools for scanning.
|
46
|
+
- name: Initialize CodeQL
|
47
|
+
uses: github/codeql-action/init@v2
|
48
|
+
with:
|
49
|
+
languages: ${{ matrix.language }}
|
50
|
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
51
|
+
# By default, queries listed here will override any specified in a config file.
|
52
|
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
53
|
+
|
54
|
+
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
55
|
+
# queries: security-extended,security-and-quality
|
56
|
+
|
57
|
+
|
58
|
+
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
|
59
|
+
# If this step fails, then you should remove it and run the build manually (see below)
|
60
|
+
- name: Autobuild
|
61
|
+
uses: github/codeql-action/autobuild@v2
|
62
|
+
|
63
|
+
# ℹ️ Command-line programs to run using the OS shell.
|
64
|
+
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
65
|
+
|
66
|
+
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
67
|
+
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
68
|
+
|
69
|
+
# - run: |
|
70
|
+
# echo "Run, Build Application using script"
|
71
|
+
# ./location_of_script_within_repo/buildscript.sh
|
72
|
+
|
73
|
+
- name: Perform CodeQL Analysis
|
74
|
+
uses: github/codeql-action/analyze@v2
|
75
|
+
with:
|
76
|
+
category: "/language:${{matrix.language}}"
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# This is a basic workflow to help you get started with Actions
|
2
|
+
|
3
|
+
name: PullRequestConflicting
|
4
|
+
|
5
|
+
# Controls when the action will run. Triggers the workflow on push or pull request
|
6
|
+
# events but only for the master branch
|
7
|
+
on:
|
8
|
+
push:
|
9
|
+
branches: [ main ]
|
10
|
+
pull_request:
|
11
|
+
types: [synchronize]
|
12
|
+
branches: [ main ]
|
13
|
+
|
14
|
+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
15
|
+
jobs:
|
16
|
+
# This workflow contains a single job called "build"
|
17
|
+
build:
|
18
|
+
# The type of runner that the job will run on
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
|
21
|
+
# Steps represent a sequence of tasks that will be executed as part of the job
|
22
|
+
steps:
|
23
|
+
- name: check if prs are dirty
|
24
|
+
uses: eps1lon/actions-label-merge-conflict@releases/2.x
|
25
|
+
if: env.LABELING_TOKEN != '' && env.LABELING_TOKEN != null
|
26
|
+
id: check
|
27
|
+
with:
|
28
|
+
dirtyLabel: "conflicting"
|
29
|
+
repoToken: "${{ secrets.GITHUB_TOKEN }}"
|
30
|
+
continueOnMissingPermissions: true
|
31
|
+
commentOnDirty: 'This pull request has conflicting changes, the author must resolve the conflicts before this pull request can be merged.'
|
32
|
+
commentOnClean: 'Conflicts have been resolved. A maintainer will take a look shortly.'
|
33
|
+
env:
|
34
|
+
LABELING_TOKEN: ${{secrets.GITHUB_TOKEN }}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# This workflow is used to add new issues to GitHub Projects (Beta)
|
2
|
+
|
3
|
+
name: Add PR to project
|
4
|
+
on:
|
5
|
+
issues:
|
6
|
+
types: [opened]
|
7
|
+
jobs:
|
8
|
+
track_issue:
|
9
|
+
runs-on: ubuntu-latest
|
10
|
+
steps:
|
11
|
+
- name: Generate token
|
12
|
+
id: generate_token
|
13
|
+
uses: tibdex/github-app-token@021a2405c7f990db57f5eae5397423dcc554159c
|
14
|
+
with:
|
15
|
+
app_id: ${{ secrets.GRAPHBOT_APP_ID }}
|
16
|
+
private_key: ${{ secrets.GRAPHBOT_APP_PEM }}
|
17
|
+
|
18
|
+
- name: Get project data
|
19
|
+
env:
|
20
|
+
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
|
21
|
+
ORGANIZATION: microsoftgraph
|
22
|
+
PROJECT_NUMBER: 38
|
23
|
+
run: |
|
24
|
+
gh api graphql -f query='
|
25
|
+
query($org: String!, $number: Int!) {
|
26
|
+
organization(login: $org){
|
27
|
+
projectNext(number: $number) {
|
28
|
+
id
|
29
|
+
fields(first:20) {
|
30
|
+
nodes {
|
31
|
+
id
|
32
|
+
name
|
33
|
+
settings
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json
|
39
|
+
|
40
|
+
echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
|
41
|
+
echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
|
42
|
+
echo 'TRIAGE_OPTION_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Needs Triage 🔍") |.id' project_data.json) >> $GITHUB_ENV
|
43
|
+
|
44
|
+
- name: Add Issue to project
|
45
|
+
env:
|
46
|
+
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
|
47
|
+
ISSUE_ID: ${{ github.event.issue.node_id }}
|
48
|
+
run: |
|
49
|
+
item_id="$( gh api graphql -f query='
|
50
|
+
mutation($project:ID!, $issue:ID!) {
|
51
|
+
addProjectNextItem(input: {projectId: $project, contentId: $issue}) {
|
52
|
+
projectNextItem {
|
53
|
+
id
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
|
57
|
+
|
58
|
+
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
|
59
|
+
|
60
|
+
- name: Set Triage
|
61
|
+
env:
|
62
|
+
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
|
63
|
+
run: |
|
64
|
+
gh api graphql -f query='
|
65
|
+
mutation (
|
66
|
+
$project: ID!
|
67
|
+
$item: ID!
|
68
|
+
$status_field: ID!
|
69
|
+
$status_value: String!
|
70
|
+
) {
|
71
|
+
set_status: updateProjectNextItemField(input: {
|
72
|
+
projectId: $project
|
73
|
+
itemId: $item
|
74
|
+
fieldId: $status_field
|
75
|
+
value: $status_value
|
76
|
+
}) {
|
77
|
+
projectNextItem {
|
78
|
+
id
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=${{ env.TRIAGE_OPTION_ID }} --silent
|
@@ -0,0 +1,45 @@
|
|
1
|
+
name: Git Release
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- "v[0-9]+.[0-9]+.[0-9]+"
|
7
|
+
workflow_dispatch:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
Git_Release:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v3
|
14
|
+
- name: Github Release
|
15
|
+
uses: anton-yurchenko/git-release@v5.0
|
16
|
+
env:
|
17
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN}}
|
18
|
+
DRAFT_RELEASE: "false"
|
19
|
+
PRE_RELEASE: "false"
|
20
|
+
CHANGELOG_FILE: "CHANGELOG.md"
|
21
|
+
ALLOW_EMPTY_CHANGELOG: "true"
|
22
|
+
|
23
|
+
deploy_prod:
|
24
|
+
environment:
|
25
|
+
name: production_feeds
|
26
|
+
runs-on: ubuntu-latest
|
27
|
+
steps:
|
28
|
+
- uses: actions/checkout@v3
|
29
|
+
- uses: ruby/setup-ruby@v1
|
30
|
+
with:
|
31
|
+
ruby-version: '3.1'
|
32
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
33
|
+
bundler: 'latest'
|
34
|
+
cache-version: 1
|
35
|
+
- run: bundle exec rake
|
36
|
+
- name: Publish to RubyGems
|
37
|
+
run: |
|
38
|
+
mkdir -p $HOME/.gem
|
39
|
+
touch $HOME/.gem/credentials
|
40
|
+
chmod 0600 $HOME/.gem/credentials
|
41
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
42
|
+
gem build *.gemspec
|
43
|
+
gem push *.gem
|
44
|
+
env:
|
45
|
+
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
@@ -0,0 +1,34 @@
|
|
1
|
+
name: Ruby
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
push:
|
6
|
+
branches: [ main ]
|
7
|
+
pull_request:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
build:
|
11
|
+
strategy:
|
12
|
+
fail-fast: false
|
13
|
+
matrix:
|
14
|
+
os: [ubuntu-latest, macos-latest]
|
15
|
+
ruby-version: ['2.7', '3.0', '3.1', head, jruby, jruby-head, truffleruby, truffleruby-head]
|
16
|
+
runs-on: ${{ matrix.os }}
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v3
|
19
|
+
- uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: ${{ matrix.ruby-version }}
|
22
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
23
|
+
bundler: 'latest'
|
24
|
+
cache-version: 1
|
25
|
+
- name: Run tests
|
26
|
+
run: bundle exec rake
|
27
|
+
- name: Upload artifacts for ruby version 3 and ubuntu
|
28
|
+
if: ${{ matrix.os == 'ubuntu-latest' && matrix.ruby-version == '3.1'}}
|
29
|
+
uses: actions/upload-artifact@v3
|
30
|
+
with:
|
31
|
+
name: drop
|
32
|
+
path: |
|
33
|
+
./Gemfile.lock
|
34
|
+
./README.md
|
data/.gitignore
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
/.config
|
4
|
+
/coverage/
|
5
|
+
/InstalledFiles
|
6
|
+
/pkg/
|
7
|
+
/spec/reports/
|
8
|
+
/spec/examples.txt
|
9
|
+
/test/tmp/
|
10
|
+
/test/version_tmp/
|
11
|
+
/tmp/
|
12
|
+
|
13
|
+
# Used by dotenv library to load environment variables.
|
14
|
+
# .env
|
15
|
+
|
16
|
+
# Ignore Byebug command history file.
|
17
|
+
.byebug_history
|
18
|
+
|
19
|
+
## Specific to RubyMotion:
|
20
|
+
.dat*
|
21
|
+
.repl_history
|
22
|
+
build/
|
23
|
+
*.bridgesupport
|
24
|
+
build-iPhoneOS/
|
25
|
+
build-iPhoneSimulator/
|
26
|
+
|
27
|
+
## Specific to RubyMotion (use of CocoaPods):
|
28
|
+
#
|
29
|
+
# We recommend against adding the Pods directory to your .gitignore. However
|
30
|
+
# you should judge for yourself, the pros and cons are mentioned at:
|
31
|
+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
32
|
+
#
|
33
|
+
# vendor/Pods/
|
34
|
+
|
35
|
+
## Documentation cache and generated files:
|
36
|
+
/.yardoc/
|
37
|
+
/_yardoc/
|
38
|
+
/doc/
|
39
|
+
/rdoc/
|
40
|
+
|
41
|
+
## Environment normalization:
|
42
|
+
/.bundle/
|
43
|
+
/vendor/bundle
|
44
|
+
/lib/bundler/man/
|
45
|
+
|
46
|
+
# for a library or gem, you might want to ignore these files since the code is
|
47
|
+
# intended to run in multiple environments; otherwise, check them in:
|
48
|
+
Gemfile.lock
|
49
|
+
.ruby-version
|
50
|
+
.ruby-gemset
|
51
|
+
|
52
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
53
|
+
.rvmrc
|
54
|
+
|
55
|
+
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
56
|
+
# .rubocop-https?--*
|
57
|
+
|
58
|
+
.rspec_status
|
data/.rspec
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
|
+
|
8
|
+
## [Unreleased]
|
9
|
+
|
10
|
+
### Added
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
|
14
|
+
## [0.7.0] - 2022-12-30
|
15
|
+
|
16
|
+
### Added
|
17
|
+
|
18
|
+
- Initial public release of the package.
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
# Microsoft Open Source Code of Conduct
|
2
|
+
|
3
|
+
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
|
4
|
+
|
5
|
+
Resources:
|
6
|
+
|
7
|
+
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
|
8
|
+
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
|
9
|
+
- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) Microsoft Corporation.
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE
|
data/README.md
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# Kiota Json Serialization Library for Ruby
|
2
|
+
|
3
|
+
![Ruby](https://github.com/microsoft/kiota-serialization-json-ruby/actions/workflows/ruby.yml/badge.svg)
|
4
|
+
|
5
|
+
The Json Serialization Library for Ruby is the Ruby JSON serialization library implementation.
|
6
|
+
|
7
|
+
A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to a json serialization package to handle json payloads from an API endpoint.
|
8
|
+
|
9
|
+
Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).
|
10
|
+
|
11
|
+
## Using the Serialization JSON Library
|
12
|
+
|
13
|
+
## Installation
|
14
|
+
|
15
|
+
Add this line to your application's Gemfile:
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
gem "microsoft_kiota_serialization_json", "0.7.0"
|
19
|
+
```
|
20
|
+
|
21
|
+
And then execute:
|
22
|
+
|
23
|
+
```shell
|
24
|
+
bundle install
|
25
|
+
```
|
26
|
+
|
27
|
+
Or install it yourself as:
|
28
|
+
|
29
|
+
```shell
|
30
|
+
gem install microsoft_kiota_serialization_json --version "0.7.0"
|
31
|
+
```
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
This project welcomes contributions and suggestions. Most contributions require you to agree to a
|
36
|
+
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
|
37
|
+
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
|
38
|
+
|
39
|
+
When you submit a pull request, a CLA bot will automatically determine whether you need to provide
|
40
|
+
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
|
41
|
+
provided by the bot. You will only need to do this once across all repos using our CLA.
|
42
|
+
|
43
|
+
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
|
44
|
+
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
|
45
|
+
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
46
|
+
|
47
|
+
## Trademarks
|
48
|
+
|
49
|
+
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
|
50
|
+
trademarks or logos is subject to and must follow
|
51
|
+
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
|
52
|
+
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
|
53
|
+
Any use of third-party trademarks or logos are subject to those third-party's policies.
|
data/Rakefile
ADDED
data/SECURITY.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.8 BLOCK -->
|
2
|
+
|
3
|
+
## Security
|
4
|
+
|
5
|
+
Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
|
6
|
+
|
7
|
+
If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
|
8
|
+
|
9
|
+
## Reporting Security Issues
|
10
|
+
|
11
|
+
**Please do not report security vulnerabilities through public GitHub issues.**
|
12
|
+
|
13
|
+
Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
|
14
|
+
|
15
|
+
If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
|
16
|
+
|
17
|
+
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
|
18
|
+
|
19
|
+
Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
|
20
|
+
|
21
|
+
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
|
22
|
+
* Full paths of source file(s) related to the manifestation of the issue
|
23
|
+
* The location of the affected source code (tag/branch/commit or direct URL)
|
24
|
+
* Any special configuration required to reproduce the issue
|
25
|
+
* Step-by-step instructions to reproduce the issue
|
26
|
+
* Proof-of-concept or exploit code (if possible)
|
27
|
+
* Impact of the issue, including how an attacker might exploit the issue
|
28
|
+
|
29
|
+
This information will help us triage your report more quickly.
|
30
|
+
|
31
|
+
If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
|
32
|
+
|
33
|
+
## Preferred Languages
|
34
|
+
|
35
|
+
We prefer all communications to be in English.
|
36
|
+
|
37
|
+
## Policy
|
38
|
+
|
39
|
+
Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
|
40
|
+
|
41
|
+
<!-- END MICROSOFT SECURITY.MD BLOCK -->
|
data/SUPPORT.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# TODO: The maintainer of this repo has not yet edited this file
|
2
|
+
|
3
|
+
**REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project?
|
4
|
+
|
5
|
+
- **No CSS support:** Fill out this template with information about how to file issues and get help.
|
6
|
+
- **Yes CSS support:** Fill out an intake form at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). CSS will work with/help you to determine next steps.
|
7
|
+
- **Not sure?** Fill out an intake as though the answer were "Yes". CSS will help you decide.
|
8
|
+
|
9
|
+
*Then remove this first heading from this SUPPORT.MD file before publishing your repo.*
|
10
|
+
|
11
|
+
# Support
|
12
|
+
|
13
|
+
## How to file issues and get help
|
14
|
+
|
15
|
+
This project uses GitHub Issues to track bugs and feature requests. Please search the existing
|
16
|
+
issues before filing new issues to avoid duplicates. For new issues, file your bug or
|
17
|
+
feature request as a new Issue.
|
18
|
+
|
19
|
+
For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE
|
20
|
+
FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER
|
21
|
+
CHANNEL. WHERE WILL YOU HELP PEOPLE?**.
|
22
|
+
|
23
|
+
## Microsoft Support Policy
|
24
|
+
|
25
|
+
Support for this **PROJECT or PRODUCT** is limited to the resources listed above.
|
@@ -0,0 +1,128 @@
|
|
1
|
+
require 'time'
|
2
|
+
require 'date'
|
3
|
+
require 'json'
|
4
|
+
require 'uuidtools'
|
5
|
+
require 'microsoft_kiota_abstractions'
|
6
|
+
|
7
|
+
|
8
|
+
module MicrosoftKiotaSerializationJson
|
9
|
+
class JsonParseNode
|
10
|
+
include MicrosoftKiotaAbstractions::ParseNode
|
11
|
+
def initialize(node)
|
12
|
+
@current_node = node
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_string_value
|
16
|
+
@current_node.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_boolean_value
|
20
|
+
@current_node
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_number_value
|
24
|
+
@current_node.to_i
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_float_value
|
28
|
+
@current_node.to_f
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_guid_value
|
32
|
+
UUIDTools::UUID.parse(@current_node)
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_date_value
|
36
|
+
Date.parse(@current_node)
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_time_value()
|
40
|
+
Time.parse(@current_node)
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_date_time_value()
|
44
|
+
DateTime.parse(@current_node)
|
45
|
+
end
|
46
|
+
|
47
|
+
def get_duration_value()
|
48
|
+
MicrosoftKiotaAbstractions::ISODuration.new(@current_node)
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_collection_of_primitive_values(type)
|
52
|
+
@current_node.map do |x|
|
53
|
+
current_parse_node = JsonParseNode.new(x)
|
54
|
+
case type
|
55
|
+
when String
|
56
|
+
current_parse_node.get_string_value
|
57
|
+
when Float
|
58
|
+
current_parse_node.get_float_value
|
59
|
+
when Integer
|
60
|
+
current_parse_node.get_float_value
|
61
|
+
when "Boolean"
|
62
|
+
current_parse_node.get_float_value
|
63
|
+
when DateTime
|
64
|
+
current_parse_node.get_date_time_value
|
65
|
+
when Time
|
66
|
+
current_parse_node.get_time_value
|
67
|
+
when Date
|
68
|
+
current_parse_node.get_date_value
|
69
|
+
when MicrosoftKiotaAbstractions::ISODuration
|
70
|
+
current_parse_node.get_duration_value
|
71
|
+
when UUIDTools::UUID
|
72
|
+
current_parse_node.get_guid_value
|
73
|
+
else
|
74
|
+
current_parse_node.get_string_value
|
75
|
+
end
|
76
|
+
rescue StandardError => e
|
77
|
+
raise e.class, `Failed to fetch #{type} type`
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def get_collection_of_object_values(factory)
|
82
|
+
raise StandardError, 'Factory cannot be null' if factory.nil?
|
83
|
+
@current_node.map do |x|
|
84
|
+
current_parse_node = JsonParseNode.new(x)
|
85
|
+
current_parse_node.get_object_value(factory)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def get_object_value(factory)
|
90
|
+
raise StandardError, 'Factory cannot be null' if factory.nil?
|
91
|
+
item = factory.call(self)
|
92
|
+
assign_field_values(item)
|
93
|
+
item
|
94
|
+
rescue StandardError => e
|
95
|
+
raise e.class, 'Error during deserialization'
|
96
|
+
end
|
97
|
+
|
98
|
+
def assign_field_values(item)
|
99
|
+
fields = item.get_field_deserializers
|
100
|
+
@current_node.each do |k, v|
|
101
|
+
deserializer = fields[k]
|
102
|
+
if deserializer
|
103
|
+
deserializer.call(JsonParseNode.new(v))
|
104
|
+
elsif item.additional_data
|
105
|
+
item.additional_data[k] = v
|
106
|
+
else
|
107
|
+
item.additional_data = Hash.new(k => v)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def get_enum_values(_type)
|
113
|
+
raw_values = get_string_value
|
114
|
+
raw_values.split(',').map(&:strip)
|
115
|
+
end
|
116
|
+
|
117
|
+
def get_enum_value(type)
|
118
|
+
items = get_enum_values(type).map(&:to_sym)
|
119
|
+
items[0] if items.length.positive?
|
120
|
+
end
|
121
|
+
|
122
|
+
def get_child_node(name)
|
123
|
+
raise StandardError, 'Name cannot be null' if name.nil? || name.empty?
|
124
|
+
raw_value = @current_node[name]
|
125
|
+
return JsonParseNode.new(raw_value) if raw_value
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'microsoft_kiota_abstractions'
|
3
|
+
|
4
|
+
module MicrosoftKiotaSerializationJson
|
5
|
+
class JsonParseNodeFactory
|
6
|
+
include MicrosoftKiotaAbstractions::ParseNodeFactory
|
7
|
+
|
8
|
+
def get_valid_content_type
|
9
|
+
'application/json'
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_parse_node(content_type, content)
|
13
|
+
if !content_type
|
14
|
+
raise StandardError, 'content type cannot be undefined or empty'
|
15
|
+
elsif get_valid_content_type != content_type
|
16
|
+
raise StandardError, `expected a #{get_valid_content_type} content type`
|
17
|
+
end
|
18
|
+
raise StandardError, 'content cannot be undefined or empty' unless content
|
19
|
+
|
20
|
+
JsonParseNode.new(JSON.parse(content))
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,228 @@
|
|
1
|
+
require 'time'
|
2
|
+
require 'date'
|
3
|
+
require 'json'
|
4
|
+
require "uuidtools"
|
5
|
+
require 'microsoft_kiota_abstractions'
|
6
|
+
|
7
|
+
module MicrosoftKiotaSerializationJson
|
8
|
+
class JsonSerializationWriter
|
9
|
+
include MicrosoftKiotaAbstractions::SerializationWriter
|
10
|
+
@writer
|
11
|
+
|
12
|
+
def initialize()
|
13
|
+
@writer = Hash.new()
|
14
|
+
end
|
15
|
+
|
16
|
+
def writer
|
17
|
+
@writer
|
18
|
+
end
|
19
|
+
|
20
|
+
def write_string_value(key, value)
|
21
|
+
if !key && !value
|
22
|
+
raise StandardError, "no key or value included in write_string_value(key, value)"
|
23
|
+
end
|
24
|
+
if !key
|
25
|
+
return value.to_s
|
26
|
+
end
|
27
|
+
if !value
|
28
|
+
@writer[key] = nil
|
29
|
+
else
|
30
|
+
@writer[key] = value
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def write_boolean_value(key, value)
|
35
|
+
if !key && !value
|
36
|
+
raise StandardError, "no key or value included in write_boolean_value(key, value)"
|
37
|
+
end
|
38
|
+
if !key
|
39
|
+
return value
|
40
|
+
end
|
41
|
+
@writer[key] = value
|
42
|
+
end
|
43
|
+
|
44
|
+
def write_number_value(key, value)
|
45
|
+
if !key && !value
|
46
|
+
raise StandardError, "no key or value included in write_number_value(key, value)"
|
47
|
+
end
|
48
|
+
if !key
|
49
|
+
return value
|
50
|
+
end
|
51
|
+
@writer[key] = value
|
52
|
+
end
|
53
|
+
|
54
|
+
def write_float_value(key, value)
|
55
|
+
if !key && !value
|
56
|
+
raise StandardError, "no key or value included in write_float_value(key, value)"
|
57
|
+
end
|
58
|
+
if !key
|
59
|
+
return value
|
60
|
+
end
|
61
|
+
@writer[key] = value
|
62
|
+
end
|
63
|
+
|
64
|
+
def write_guid_value(key, value)
|
65
|
+
if !key && !value
|
66
|
+
raise StandardError, "no key or value included in write_guid_value(key, value)"
|
67
|
+
end
|
68
|
+
if !key
|
69
|
+
return value.to_s
|
70
|
+
end
|
71
|
+
if !value
|
72
|
+
@writer[key] = nil
|
73
|
+
else
|
74
|
+
@writer[key] = value.to_s
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def write_date_value(key, value)
|
79
|
+
if !key && !value
|
80
|
+
raise StandardError, "no key or value included in write_date_value(key, value)"
|
81
|
+
end
|
82
|
+
if !key
|
83
|
+
return value.strftime("%Y-%m-%d")
|
84
|
+
end
|
85
|
+
if !value
|
86
|
+
@writer[key] = nil
|
87
|
+
else
|
88
|
+
@writer[key] = value.strftime("%Y-%m-%d")
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def write_time_value(key, value)
|
93
|
+
if !key && !value
|
94
|
+
raise StandardError, "no key or value included in write_time_value(key, value)"
|
95
|
+
end
|
96
|
+
if !key
|
97
|
+
return value.strftime("%H:%M:%S%Z")
|
98
|
+
end
|
99
|
+
if !value
|
100
|
+
@writer[key] = nil
|
101
|
+
else
|
102
|
+
@writer[key] = value.strftime("%H:%M:%S%Z")
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def write_date_time_value(key, value)
|
107
|
+
if !key && !value
|
108
|
+
raise StandardError, "no key or value included in write_date_time_value(key, value)"
|
109
|
+
end
|
110
|
+
if !key
|
111
|
+
return value.strftime("%Y-%m-%dT%H:%M:%S%Z")
|
112
|
+
end
|
113
|
+
if !value
|
114
|
+
@writer[key] = nil
|
115
|
+
else
|
116
|
+
@writer[key] = value.strftime("%Y-%m-%dT%H:%M:%S%Z")
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def write_duration_value(key, value)
|
121
|
+
if !key && !value
|
122
|
+
raise StandardError, "no key or value included in write_duration_value(key, value)"
|
123
|
+
end
|
124
|
+
if !key
|
125
|
+
return value.string
|
126
|
+
end
|
127
|
+
if !value
|
128
|
+
@writer[key] = nil
|
129
|
+
else
|
130
|
+
@writer[key] = value.string
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
def write_collection_of_primitive_values(key, values)
|
135
|
+
if values
|
136
|
+
if !key
|
137
|
+
return values.map do |v|
|
138
|
+
self.write_any_value(nil, v)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
@writer[key] = values.map do |v|
|
142
|
+
self.write_any_value(key, v)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def write_collection_of_object_values(key, values)
|
148
|
+
if values
|
149
|
+
if !key
|
150
|
+
return values.map do |v|
|
151
|
+
self.write_object_value(nil, v)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
@writer[key] = values.map do |v|
|
155
|
+
self.write_object_value(nil, v).writer
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
def write_object_value(key, value)
|
161
|
+
if value
|
162
|
+
if !key
|
163
|
+
temp = JsonSerializationWriter.new()
|
164
|
+
value.serialize(temp)
|
165
|
+
return temp
|
166
|
+
end
|
167
|
+
begin
|
168
|
+
temp = JsonSerializationWriter.new()
|
169
|
+
value.serialize(temp)
|
170
|
+
@writer[key] = temp.writer
|
171
|
+
rescue StandardError => e
|
172
|
+
raise e.class, "no key or value included in write_boolean_value(key, value)"
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
def write_enum_value(key, values)
|
178
|
+
self.write_string_value(key, values.to_s)
|
179
|
+
end
|
180
|
+
|
181
|
+
def get_serialized_content()
|
182
|
+
return @writer.to_json #TODO encode to byte array to stay content type agnostic
|
183
|
+
end
|
184
|
+
|
185
|
+
def write_additional_data(value)
|
186
|
+
if !value
|
187
|
+
return
|
188
|
+
end
|
189
|
+
value.each do |x, y|
|
190
|
+
self.write_any_value(x,y)
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
def write_any_value(key, value)
|
195
|
+
if value
|
196
|
+
if !!value == value
|
197
|
+
return value
|
198
|
+
elsif value.instance_of? String
|
199
|
+
return self.write_string_value(key, value)
|
200
|
+
elsif value.instance_of? Integer
|
201
|
+
return self.write_number_value(key, value)
|
202
|
+
elsif value.instance_of? Float
|
203
|
+
return self.write_float_value(key, value)
|
204
|
+
elsif value.instance_of? DateTime
|
205
|
+
return self.write_date_time_value(key, value)
|
206
|
+
elsif value.instance_of? Time
|
207
|
+
return self.write_time_value(key, value)
|
208
|
+
elsif value.instance_of? Date
|
209
|
+
return self.write_date_value(key, value)
|
210
|
+
elsif value.instance_of? MicrosoftKiotaAbstractions::ISODuration
|
211
|
+
return self.write_duration_value(key, value)
|
212
|
+
elsif value.instance_of? Array
|
213
|
+
return self.write_collection_of_primitive_values(key, value)
|
214
|
+
elsif value.is_a? Object
|
215
|
+
return value.to_s
|
216
|
+
else
|
217
|
+
raise StandardError, "encountered unknown value type during serialization #{value.to_s}"
|
218
|
+
end
|
219
|
+
else
|
220
|
+
if key
|
221
|
+
@writer[key] = nil
|
222
|
+
else
|
223
|
+
raise StandardError, "no key included when writing json property"
|
224
|
+
end
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'microsoft_kiota_abstractions'
|
2
|
+
|
3
|
+
module MicrosoftKiotaSerializationJson
|
4
|
+
class JsonSerializationWriterFactory
|
5
|
+
include MicrosoftKiotaAbstractions::SerializationWriterFactory
|
6
|
+
|
7
|
+
def get_valid_content_type
|
8
|
+
'application/json'
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_serialization_writer(content_type)
|
12
|
+
if !content_type
|
13
|
+
raise StandardError, 'content type cannot be undefined or empty'
|
14
|
+
elsif get_valid_content_type != content_type
|
15
|
+
raise StandardError, `expected a #{get_valid_content_type} content type`
|
16
|
+
end
|
17
|
+
|
18
|
+
JsonSerializationWriter.new
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "microsoft_kiota_serialization_json/json_parse_node"
|
4
|
+
require_relative "microsoft_kiota_serialization_json/json_parse_node_factory"
|
5
|
+
require_relative "microsoft_kiota_serialization_json/json_serialization_writer"
|
6
|
+
require_relative "microsoft_kiota_serialization_json/json_serialization_writer_factory"
|
7
|
+
require_relative "microsoft_kiota_serialization_json/version"
|
8
|
+
|
9
|
+
module MicrosoftKiotaSerializationJson
|
10
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/microsoft_kiota_serialization_json/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "microsoft_kiota_serialization_json"
|
7
|
+
spec.version = MicrosoftKiotaSerializationJson::VERSION
|
8
|
+
spec.authors = 'Microsoft Corporation'
|
9
|
+
spec.email = 'graphsdkpub@microsoft.com'
|
10
|
+
spec.description = 'Implementation of Kiota Serialization interfaces for JSON'
|
11
|
+
spec.summary = 'Microsoft Kiota Serialization - Ruby serialization for building library agnostic http client'
|
12
|
+
spec.homepage = 'https://microsoft.github.io/kiota/'
|
13
|
+
spec.license = 'MIT'
|
14
|
+
spec.metadata = {
|
15
|
+
'bug_tracker_uri' => 'https://github.com/microsoft/kiota-serialization-json-ruby/issues',
|
16
|
+
'changelog_uri' => 'https://github.com/microsoft/kiota-serialization-json-ruby/blob/main/CHANGELOG.md',
|
17
|
+
'homepage_uri' => spec.homepage,
|
18
|
+
'source_code_uri' => 'https://github.com/microsoft/kiota-serialization-json-ruby',
|
19
|
+
'github_repo' => 'ssh://github.com/microsoft/kiota-serialization-json-ruby'
|
20
|
+
}
|
21
|
+
spec.required_ruby_version = ">= 2.7.0"
|
22
|
+
|
23
|
+
# Specify which files should be added to the gem when it is released.
|
24
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
27
|
+
end
|
28
|
+
spec.bindir = 'bin'
|
29
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ['lib']
|
31
|
+
|
32
|
+
spec.add_runtime_dependency 'microsoft_kiota_abstractions', '~> 0.12.0', '>= 0.12.0'
|
33
|
+
spec.add_runtime_dependency 'uuidtools'
|
34
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
35
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
36
|
+
spec.add_development_dependency 'rubocop'
|
37
|
+
end
|
metadata
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: microsoft_kiota_serialization_json
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.7.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Microsoft Corporation
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-12-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: microsoft_kiota_abstractions
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.12.0
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.12.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.12.0
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.12.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: uuidtools
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '13.0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '13.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rspec
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '3.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '3.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rubocop
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
description: Implementation of Kiota Serialization interfaces for JSON
|
90
|
+
email: graphsdkpub@microsoft.com
|
91
|
+
executables: []
|
92
|
+
extensions: []
|
93
|
+
extra_rdoc_files: []
|
94
|
+
files:
|
95
|
+
- ".github/CODEOWNERS"
|
96
|
+
- ".github/dependabot.yml"
|
97
|
+
- ".github/workflows/code-ql.yml"
|
98
|
+
- ".github/workflows/conflicting-pr-label.yml"
|
99
|
+
- ".github/workflows/projectsbot.yml"
|
100
|
+
- ".github/workflows/release.yml"
|
101
|
+
- ".github/workflows/ruby.yml"
|
102
|
+
- ".gitignore"
|
103
|
+
- ".rspec"
|
104
|
+
- CHANGELOG.md
|
105
|
+
- CODE_OF_CONDUCT.md
|
106
|
+
- Gemfile
|
107
|
+
- LICENSE
|
108
|
+
- README.md
|
109
|
+
- Rakefile
|
110
|
+
- SECURITY.md
|
111
|
+
- SUPPORT.md
|
112
|
+
- lib/microsoft_kiota_serialization_json.rb
|
113
|
+
- lib/microsoft_kiota_serialization_json/json_parse_node.rb
|
114
|
+
- lib/microsoft_kiota_serialization_json/json_parse_node_factory.rb
|
115
|
+
- lib/microsoft_kiota_serialization_json/json_serialization_writer.rb
|
116
|
+
- lib/microsoft_kiota_serialization_json/json_serialization_writer_factory.rb
|
117
|
+
- lib/microsoft_kiota_serialization_json/version.rb
|
118
|
+
- microsoft_kiota_serialization_json.gemspec
|
119
|
+
homepage: https://microsoft.github.io/kiota/
|
120
|
+
licenses:
|
121
|
+
- MIT
|
122
|
+
metadata:
|
123
|
+
bug_tracker_uri: https://github.com/microsoft/kiota-serialization-json-ruby/issues
|
124
|
+
changelog_uri: https://github.com/microsoft/kiota-serialization-json-ruby/blob/main/CHANGELOG.md
|
125
|
+
homepage_uri: https://microsoft.github.io/kiota/
|
126
|
+
source_code_uri: https://github.com/microsoft/kiota-serialization-json-ruby
|
127
|
+
github_repo: ssh://github.com/microsoft/kiota-serialization-json-ruby
|
128
|
+
post_install_message:
|
129
|
+
rdoc_options: []
|
130
|
+
require_paths:
|
131
|
+
- lib
|
132
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: 2.7.0
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - ">="
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
requirements: []
|
143
|
+
rubygems_version: 3.3.26
|
144
|
+
signing_key:
|
145
|
+
specification_version: 4
|
146
|
+
summary: Microsoft Kiota Serialization - Ruby serialization for building library agnostic
|
147
|
+
http client
|
148
|
+
test_files: []
|