structurizr 1.0.0.pre.alpha.2 → 1.0.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe8a005a3c60de0672a5d97461b0ec492efc28cdd47b9ccce953adbb405b032a
4
- data.tar.gz: 2c7e7fa0f87ac51bdc9a78adb68be7c640b2f1f04e01b93d28912031a18de16d
3
+ metadata.gz: b856a2a1230dccd0f08fd9bc17eaf9d289891d7ea62cdf4ea226390b9da52669
4
+ data.tar.gz: 879236423d1c5f69412e2ea8db252556435b946c2cea5e54610df21df3ac77d7
5
5
  SHA512:
6
- metadata.gz: 20e3190211889b56a2a8721050c658253bcb6971a8a14ebf1baa7afecea7457437b8f964ed973678eccf84adad97dd8b50683433475056d201a0861b9836144d
7
- data.tar.gz: 04dc35d206db7f33cee95cbe3adb8668e8bd4536e1d550f69e4118a1d2575f2d24f362d030c263ae3b6e31d29fb7cdf6b1843e00f6d13ba1654ea1a5c964ff02
6
+ metadata.gz: 34db0dcacbed31c000f17333c64ec2998fade92124cbf8209b887117756f2b814508098a7bbfd480fe3b1b95f0d60f9bfbd1896b1e09c962b15d45e47b4362a2
7
+ data.tar.gz: 7734236fc2954909e02cd4be3186eeeb4b93f0255c80ca201a4b0a4ad55db8b6ad4304f5e1e1a12e57a514d6b85161110c32bd51591eda2885e22105396d94aa
@@ -0,0 +1,35 @@
1
+ name: ci
2
+
3
+ on: push
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby_version: [jruby]
11
+
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ with:
15
+ lfs: true
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: ${{ matrix.ruby_version }}
20
+ - name: Download CodeClimate reporter
21
+ run: |
22
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
23
+ chmod +x ./cc-test-reporter
24
+ ./cc-test-reporter before-build
25
+ env:
26
+ CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
27
+ - name: Build and test
28
+ run: |
29
+ make bundle
30
+ make test
31
+ - name: Report to CodeClimate
32
+ run: |
33
+ ./cc-test-reporter after-build --exit-code 0
34
+ env:
35
+ CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /tmp/
9
9
 
10
10
  Gemfile.lock
11
+ .rbnext/
data/.rubocop.yml CHANGED
@@ -1,6 +1,11 @@
1
+ require:
2
+ - ruby-next/rubocop
3
+
1
4
  AllCops:
2
5
  NewCops: enable
3
6
  TargetRubyVersion: 2.5
7
+ Exclude:
8
+ - 'lib/.rbnext/**/*'
4
9
 
5
10
  Style/Documentation:
6
11
  Enabled: false
data/Makefile CHANGED
@@ -1,12 +1,17 @@
1
- .PHONY: test setup bundle lint console download-jars
1
+ .PHONY: test transpile install setup bundle lint console download-jars build-gem build
2
2
 
3
3
  test:
4
4
  jruby -Itest -Ilib bin/test
5
5
 
6
- setup:
6
+ transpile:
7
+ ruby-next nextify ./lib
8
+
9
+ install:
7
10
  jruby -S gem install bundler
8
11
  jruby -S bundle install
9
12
 
13
+ setup: install transpile
14
+
10
15
  bundle:
11
16
  jruby -S bundle
12
17
 
@@ -25,3 +30,8 @@ download-jars:
25
30
  mvn dependency:get -Dartifact=com.structurizr:structurizr-core:LATEST -Ddest=./lib/structurizr/metal/jars/
26
31
  mvn dependency:get -Dartifact=com.structurizr:structurizr-graphviz:LATEST -Ddest=./lib/structurizr/metal/jars/
27
32
  mvn dependency:get -Dartifact=com.structurizr:structurizr-client:LATEST -Ddest=./lib/structurizr/metal/jars/
33
+
34
+ build-gem:
35
+ gem build
36
+
37
+ build: transpile build-gem
data/README.md CHANGED
@@ -3,11 +3,13 @@
3
3
  [![Test Coverage](https://api.codeclimate.com/v1/badges/b75e8c130fc8b3bf54b5/test_coverage)](https://codeclimate.com/github/Morozzzko/structurizr-ruby/test_coverage)[![Maintainability](https://api.codeclimate.com/v1/badges/b75e8c130fc8b3bf54b5/maintainability)](https://codeclimate.com/github/Morozzzko/structurizr-ruby/maintainability)
4
4
 
5
5
 
6
- `structurizr-ruby` brings the [C4 model](https://c4model.com) to Ruby. It piggybacks on top of [Java's API](https://github.com/structurizr/java) for [Structurizr](https://structurizr.com), which is a powerful tool for incorporating C4 model into your software architecture process.
6
+ `structurizr-ruby` brings the [C4 model](https://c4model.com) to Ruby. It piggybacks on top of [Java's API](https://github.com/structurizr/java) for [Structurizr](https://structurizr.com), which is a powerful tool for incorporating C4 model into your software architecture process.
7
7
 
8
8
  The primary goal is to enable better introspection & scripting for workspaces defined by Structurizr DSL.
9
9
 
10
- As a bonus, this library provides a complete integration to build Structurizr workspace from Ruby. However, it doesn't make much sense since there's Structurizr DSL.
10
+ Number 1 feature of this library is actually a runnable `REPL` which allows a flexible introspection. You can run it via `structurizr-repl <workspace.json>`.
11
+
12
+ As a bonus, this library provides a complete integration to build Structurizr workspace from Ruby. However, it doesn't make much sense since there's [Structurizr DSL](https://structurizr.com/help/dsl). However, it's still a bit useful if you're using [DSL's scripting feature](https://github.com/structurizr/dsl/blob/master/docs/language-reference.md#scripts), you might find this library a bit useful.
11
13
 
12
14
  If you've met something which doesn't have a nice Ruby DSL, you can always use [`Structurizr::Metal`](/lib/structurizr/metal.rb) to access Java classes and methods. Please don't forget to [submit issue or a pull-request](#Contributing) which describes your use-case and the missing features.
13
15
 
@@ -37,6 +39,8 @@ Before you start, you need to `require` the necessary files:
37
39
  require 'structurizr'
38
40
  ```
39
41
 
42
+ If you have a `workspace.json`, you can run an interactive REPL to read values from it: `structurizr-repl workspace.json`
43
+
40
44
  ## Development
41
45
 
42
46
  After checking out the repo, run `make setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/exe/structurizr-repl CHANGED
@@ -3,8 +3,9 @@
3
3
 
4
4
  require 'structurizr'
5
5
  require 'structurizr/repl'
6
+ require 'ruby-next/pry'
6
7
 
7
- application = Structurizr::REPL::Application.new
8
+ application = Structurizr::REPL::Application.new(ARGV)
8
9
 
9
10
  application.parse_workspace_path!
10
11
  application.prepare_context!
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Structurizr
4
- VERSION = '1.0.0-alpha.2'
4
+ VERSION = '1.0.0.rc.1'
5
5
  end
data/lib/structurizr.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'ruby-next/language/setup'
4
+ RubyNext::Language.setup_gem_load_path
5
+
3
6
  require 'structurizr/version'
4
7
  require 'structurizr/model_item'
5
8
  require 'structurizr/workspace'
data/structurizr.gemspec CHANGED
@@ -19,13 +19,14 @@ Gem::Specification.new do |spec|
19
19
  # Specify which files should be added to the gem when it is released.
20
20
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
21
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|.github)/}) }
22
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
23
23
  end
24
24
  spec.bindir = 'exe'
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ['lib']
27
27
 
28
28
  spec.add_dependency 'pry'
29
+ spec.add_dependency 'ruby-next'
29
30
  spec.add_development_dependency 'minitest'
30
31
  spec.add_development_dependency 'rubocop'
31
32
  spec.add_development_dependency 'rubocop-minitest'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: structurizr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.alpha.2
4
+ version: 1.0.0.rc.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor S. Morozov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-04 00:00:00.000000000 Z
11
+ date: 2022-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ name: ruby-next
34
+ prerelease: false
35
+ type: :runtime
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  requirement: !ruby/object:Gem::Requirement
29
43
  requirements:
@@ -89,6 +103,7 @@ extensions: []
89
103
  extra_rdoc_files: []
90
104
  files:
91
105
  - ".gitattributes"
106
+ - ".github/workflows/ci.yml"
92
107
  - ".gitignore"
93
108
  - ".jrubyrc"
94
109
  - ".reek.yml"