# Umwelt Umwelt is a way to express domain knowledge in figurable format. It includes a language( collection of abstractions ), [umwelt.dev](http://umwelt.dev) for collaborative domain development, and this gem, as tool for generate code structure and specs from umwelt. The word `Umwelt` was borrowed from [Biosemiotics](https://en.wikipedia.org/wiki/Biosemiotics). In the semiotic theories of Jakob von Uexküll and Thomas A. Sebeok, umwelt (plural: umwelten; from the German Umwelt meaning "environment" or "surroundings") is the "biological foundations that lie at the very epicenter of the study of both communication and signification in the human [and non-human] animal".[1] The term is usually translated as "self-centered world". So, in our case umwelt is the world how it sees for our apps. At now, this is proof of concept and work still in progress. ## Installation > Add this line to your application's Gemfile: > ```ruby > gem 'umwelt' > ``` And then execute: $ git clone https://github.com/sovetnik/umwelt.git $ bundle $ bin/umwelt > Or install it yourself as: > $ gem install umwelt ## Usage Main executable is `umwelt` ```shell umwelt help Commands: umwelt clone PROJECT # Clone project from remote Umwelt(umwelt.dev) umwelt convey PHASE SEMANTIC # Convey Phase in Semantic from local Umwelt umwelt pull # Pull project from remote Umwelt umwelt version ``` In first release only one command is implemented: convey. This is main feature of gem, generate imprints os code and write it to files. Examples of source files in human-readable json in `spec/examples` so we can test this feature by calling convey with parameters. ```shell bin/umwelt convey 7 plain --source=spec/examples --target=target cd target ``` After that you can see generated files in target directory. ```shell Buildung phase: 7 with semantic plain... ... 10 files written succesfully ``` ## Development After checking out the repo, run `bin/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. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/sovetnik/umwelt. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). ## Code of Conduct Everyone interacting in the Umwelt project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/umwelt/blob/master/CODE_OF_CONDUCT.md).