Scaffold fiken gem: gemspec, dev tooling, rubocop, and CI
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
ruby: ["3.1", "3.2", "3.3"]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: ${{ matrix.ruby }}
|
||||||
|
bundler-cache: true
|
||||||
|
- run: bundle exec rspec
|
||||||
|
- run: bundle exec rubocop
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
/.bundle/
|
||||||
|
/vendor/bundle/
|
||||||
|
/pkg/
|
||||||
|
/tmp/
|
||||||
|
/coverage/
|
||||||
|
*.gem
|
||||||
|
Gemfile.lock
|
||||||
|
.rspec_status
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
AllCops:
|
||||||
|
TargetRubyVersion: 3.1
|
||||||
|
NewCops: enable
|
||||||
|
SuggestExtensions: false
|
||||||
|
|
||||||
|
Style/Documentation:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/StringLiterals:
|
||||||
|
EnforcedStyle: double_quotes
|
||||||
|
|
||||||
|
Metrics/MethodLength:
|
||||||
|
Max: 20
|
||||||
|
|
||||||
|
Metrics/BlockLength:
|
||||||
|
Exclude:
|
||||||
|
- "spec/**/*"
|
||||||
|
- "*.gemspec"
|
||||||
|
|
||||||
|
Metrics/AbcSize:
|
||||||
|
Max: 25
|
||||||
|
|
||||||
|
Metrics/ParameterLists:
|
||||||
|
CountKeywordArgs: false
|
||||||
|
|
||||||
|
Naming/PredicateMethod:
|
||||||
|
AllowedMethods:
|
||||||
|
- delete
|
||||||
|
- delete_path
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
- Initial work toward a resource-oriented Ruby client for the Fiken API v2.
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
gemspec
|
||||||
|
|
||||||
|
group :development, :test do
|
||||||
|
gem "rake", "~> 13.0"
|
||||||
|
gem "rspec", "~> 3.13"
|
||||||
|
gem "rubocop", "~> 1.60"
|
||||||
|
gem "vcr", "~> 6.2"
|
||||||
|
gem "webmock", "~> 3.19"
|
||||||
|
end
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2026 Runar Ingebrigtsen
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "rspec/core/rake_task"
|
||||||
|
require "rubocop/rake_task"
|
||||||
|
|
||||||
|
RSpec::Core::RakeTask.new(:spec)
|
||||||
|
RuboCop::RakeTask.new
|
||||||
|
|
||||||
|
task default: %i[spec rubocop]
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "fiken"
|
||||||
|
require "irb"
|
||||||
|
|
||||||
|
IRB.start(__FILE__)
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
bundle install
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require_relative "lib/fiken/version"
|
||||||
|
|
||||||
|
Gem::Specification.new do |spec|
|
||||||
|
spec.name = "fiken"
|
||||||
|
spec.version = Fiken::VERSION
|
||||||
|
spec.authors = ["Runar Ingebrigtsen"]
|
||||||
|
spec.email = ["runar@rin.no"]
|
||||||
|
|
||||||
|
spec.summary = "Ruby client for the Fiken API v2"
|
||||||
|
spec.description = "A resource-oriented Ruby client for the Fiken accounting API (v2), " \
|
||||||
|
"with personal-token and OAuth2 authentication, pagination, and error handling."
|
||||||
|
spec.homepage = "https://github.com/runari/fiken"
|
||||||
|
spec.license = "MIT"
|
||||||
|
spec.required_ruby_version = ">= 3.1"
|
||||||
|
|
||||||
|
spec.metadata["homepage_uri"] = spec.homepage
|
||||||
|
spec.metadata["source_code_uri"] = spec.homepage
|
||||||
|
spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/CHANGELOG.md"
|
||||||
|
spec.metadata["rubygems_mfa_required"] = "true"
|
||||||
|
|
||||||
|
spec.files = Dir["lib/**/*.rb", "README.md", "CHANGELOG.md", "LICENSE.txt"]
|
||||||
|
spec.require_paths = ["lib"]
|
||||||
|
|
||||||
|
spec.add_dependency "faraday", "~> 2.0"
|
||||||
|
spec.add_dependency "faraday-multipart", "~> 1.0"
|
||||||
|
spec.add_dependency "faraday-retry", "~> 2.0"
|
||||||
|
end
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Fiken
|
||||||
|
VERSION = "0.1.0"
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user