<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kerem Bozdas</title>
    <description>The latest articles on DEV Community by Kerem Bozdas (@krmbzds).</description>
    <link>https://dev.to/krmbzds</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F90428%2F465378c8-1f9c-4ec0-9f4e-c46c9d361d34.jpg</url>
      <title>DEV Community: Kerem Bozdas</title>
      <link>https://dev.to/krmbzds</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/krmbzds"/>
    <language>en</language>
    <item>
      <title>New Release: turkish_id v1.7.0</title>
      <dc:creator>Kerem Bozdas</dc:creator>
      <pubDate>Sun, 10 Nov 2024 15:15:21 +0000</pubDate>
      <link>https://dev.to/krmbzds/new-release-turkishid-v170-7go</link>
      <guid>https://dev.to/krmbzds/new-release-turkishid-v170-7go</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This version of &lt;code&gt;turkish_id&lt;/code&gt; adds support for querying the government registry for blue card holders. Read more on RubyDoc: &lt;a href="https://www.rubydoc.info/gems/turkish_id/TurkishId:foreigner_registered%3F" rel="noopener noreferrer"&gt;#foreigner_registered?&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Turkish ID 🔖
&lt;/h2&gt;

&lt;p&gt;This gem provides methods to validate Turkish Identification Numbers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;Add this line to your application's Gemfile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'turkish_id'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then execute:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ bundle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Or install it yourself as:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ gem install turkish_id
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Validating ID Numbers
&lt;/h4&gt;

&lt;p&gt;Create a new instance:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;identity_number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TurkishId&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10000000146&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;code&gt;valid?&lt;/code&gt; method to check validity:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;identity_number&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;valid?&lt;/span&gt;  &lt;span class="c1"&gt;#=&amp;gt; true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Querying the Government Registry
&lt;/h3&gt;

&lt;p&gt;Create a new instance:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;identity_number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TurkishId&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10000000146&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;code&gt;registered?&lt;/code&gt; method to query the government registry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;identity_number&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;registered?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Ahmet"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Yılmaz"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1987&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;#=&amp;gt; false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is also a convenience method called &lt;code&gt;not_in_registry?&lt;/code&gt; which is the logical equivalent of &lt;code&gt;!registered?&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;foreigner_registered?&lt;/code&gt; method to query the foreigner registry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;identity_number&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;foreigner_registered?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Yukihiro"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Matsumoto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1965&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;#=&amp;gt; false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is also a convenience method called &lt;code&gt;foreigner_not_in_registry?&lt;/code&gt; which is the logical equivalent of &lt;code&gt;!foreigner_registered?&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Generating Relatives
&lt;/h3&gt;

&lt;p&gt;You can generate ID numbers for your younger or elder relatives.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;me&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TurkishId&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10000000146&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Calling &lt;code&gt;younger_relative&lt;/code&gt; or &lt;code&gt;elder_relative&lt;/code&gt; will return an Enumerable class.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;me&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;elder_relative&lt;/span&gt;  &lt;span class="c1"&gt;#=&amp;gt; #&amp;lt;Enumerator:0x00007f9e629032d0&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can perform standard Enumerable operations on it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;me&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;elder_relative&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;first&lt;/span&gt;  &lt;span class="c1"&gt;#=&amp;gt; 10003000082&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;times&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
 &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;me&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;elder_relative&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="c1"&gt;#=&amp;gt; 10035998982&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; 10005999902&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; 10008999848&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;me&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;elder_relative&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;take&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;#=&amp;gt; [10003000082, 10005999902, 10008999848, 10011999774, 10014999610]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And so on.&lt;/p&gt;

&lt;h3&gt;
  
  
  CLI (Command Line Interface)
&lt;/h3&gt;

&lt;p&gt;You can use the CLI for quick lookups:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;turkish_id 10000000078  &lt;span class="c"&gt;#=&amp;gt; true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The executable terminates with a proper &lt;a href="https://en.wikipedia.org/wiki/Exit_status" rel="noopener noreferrer"&gt;exit status&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;turkish_id 10000000078  &lt;span class="c"&gt;#=&amp;gt; true&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$?&lt;/span&gt;                 &lt;span class="c"&gt;#=&amp;gt; 0&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;turkish_id 10000000079  &lt;span class="c"&gt;#=&amp;gt; false&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$?&lt;/span&gt;                 &lt;span class="c"&gt;#=&amp;gt; 1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run &lt;code&gt;turkish_id --help&lt;/code&gt; to learn more:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Usage
  turkish_id ID_NUMBER [GIVEN_NAME SURNAME YEAR_OF_BIRTH]

Description
  turkish_id validates Turkish identity numbers.
  Only providing ID_NUMBER performs numerical validation (offline).
  Providing all arguments will query government registry (online).

Examples
  turkish_id 10000000078
  turkish_id 10000000146 Ahmet Yılmaz 1984
  turkish_id 10005999902 "Ayşe Nur" Yılmaz 1996
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Anatomy of the Turkish ID Number
&lt;/h3&gt;

&lt;p&gt;The Turkish Identification Number consists of &lt;code&gt;11&lt;/code&gt; digits.&lt;/p&gt;

&lt;p&gt;There are three conditions for a valid identification number:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;d1 &amp;gt; 0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;d10 == ((d1 + d3 + d5 + d7 + d9) * 7 - (d2 + d4 + d6 + d8)) mod 10&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;d11 == (d1 + d2 + d3 + d4 + d5 + d6 + d8 + d9 + d10) mod 10&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Where &lt;code&gt;dn&lt;/code&gt; refers to the &lt;code&gt;n-th&lt;/code&gt; digit of the identification number.&lt;/p&gt;

&lt;p&gt;Remember that a valid identification number does not imply the existence of an ID. It could only be used as a preliminary check e.g. before querying a government website. This is very similar to credit card validation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Support
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Ruby Versions Tested Against
&lt;/h4&gt;

&lt;p&gt;This gem is used in production and tested against the following Ruby versions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;code&gt;3.3.5&lt;/code&gt; (stable)&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;3.2.6&lt;/code&gt; (stable)&lt;/li&gt;
&lt;li&gt;⏳ &lt;code&gt;3.1.6&lt;/code&gt; (security maintenance)&lt;/li&gt;
&lt;li&gt;🪦 &lt;code&gt;3.0.7&lt;/code&gt; (end of life)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Development
&lt;/h3&gt;

&lt;p&gt;After checking out the repo, run &lt;code&gt;bin/setup&lt;/code&gt; to install dependencies. Then, run &lt;code&gt;rake spec&lt;/code&gt; to run the tests. You can also run &lt;code&gt;bin/console&lt;/code&gt; for an interactive prompt that will allow you to experiment.&lt;/p&gt;

&lt;p&gt;To install this gem onto your local machine, run &lt;code&gt;bundle exec rake install&lt;/code&gt;. To release a new version, update the version number in &lt;code&gt;version.rb&lt;/code&gt;, and then run &lt;code&gt;bundle exec rake release&lt;/code&gt;, which will create a git tag for the version, push git commits and tags, and push the &lt;code&gt;.gem&lt;/code&gt; file to &lt;a href="https://rubygems.org" rel="noopener noreferrer"&gt;rubygems.org&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contributing
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://github.com/krmbzds/turkish_id/fork" rel="noopener noreferrer"&gt;Fork the repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Create your feature branch (&lt;code&gt;git checkout -b my-new-feature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Commit your changes (&lt;code&gt;git commit -am 'Add some feature'&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Push to the branch (&lt;code&gt;git push origin my-new-feature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Create new Pull Request&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Donations ❤️
&lt;/h4&gt;

&lt;p&gt;You can donate me at &lt;a href="https://liberapay.com/krmbzds/donate" rel="noopener noreferrer"&gt;Liberapay&lt;/a&gt;. Thanks! ☕️&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it any good?
&lt;/h2&gt;

&lt;p&gt;Yes.&lt;/p&gt;




&lt;p&gt;Since you made it this far.. 🤓&lt;/p&gt;

&lt;p&gt;Don't forget to ⭐️ my &lt;a href="https://github.com/krmbzds/turkish_id" rel="noopener noreferrer"&gt;repository&lt;/a&gt; if you like it!&lt;/p&gt;

&lt;p&gt;Bug reports and pull requests are welcome! ♥️&lt;/p&gt;

&lt;p&gt;Happy Hacking,&lt;br&gt;
Kerem&lt;/p&gt;




&lt;p&gt;Photo Courtesy of &lt;a href="https://unsplash.com/@umitokan" rel="noopener noreferrer"&gt;Umit Okan&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>opensource</category>
      <category>rails</category>
    </item>
    <item>
      <title>New Release: viabtc v0.4.0</title>
      <dc:creator>Kerem Bozdas</dc:creator>
      <pubDate>Thu, 14 Feb 2019 18:15:45 +0000</pubDate>
      <link>https://dev.to/krmbzds/new-release-viabtc-v040-3i9l</link>
      <guid>https://dev.to/krmbzds/new-release-viabtc-v040-3i9l</guid>
      <description>&lt;h1&gt;
  
  
  &lt;a href="https://github.com/krmbzds/viabtc"&gt;ViaBTC&lt;/a&gt; 📈
&lt;/h1&gt;

&lt;p&gt;An HTTP client to interface with the open-source &lt;a href="https://github.com/viabtc/viabtc_exchange_server"&gt;ViaBTC Exchange Server&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Interested in creating a cryptocurrency exchange? This gem can help you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;Add &lt;code&gt;viabtc&lt;/code&gt; to your Gemfile and run &lt;code&gt;bundle&lt;/code&gt; OR install it yourself with &lt;code&gt;gem install viabtc&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

&lt;p&gt;If using &lt;strong&gt;Rails&lt;/strong&gt;, create a file named &lt;code&gt;viabtc.rb&lt;/code&gt; under &lt;code&gt;config/initializers&lt;/code&gt; and add the following block of code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;ViaBTC&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;http_base_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'http://localhost:18080'&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;If not, add it anywhere in your code that runs before a new client is initialized. Read more at: 📖&lt;a href="https://github.com/krmbzds/viabtc/wiki/Configuration"&gt;Configuration Wiki&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;Create a new instance:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;viabtc_http_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;ViaBTC&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Make an API request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;viabtc_http_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;market_status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;market: &lt;/span&gt;&lt;span class="s1"&gt;'ETHBTC'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;#=&amp;gt; {"error"=&amp;gt;nil, "result"=&amp;gt;{"low"=&amp;gt;"0", "period"=&amp;gt;86400, "last"=&amp;gt;"0", "high"=&amp;gt;"0", "open"=&amp;gt;"0", "volume"=&amp;gt;"0", "close"=&amp;gt;"0", "deal"=&amp;gt;"0"}, "id"=&amp;gt;0}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Support
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Ruby Versions Tested Against
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;code&gt;2.6.1&lt;/code&gt; (stable)&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;2.5.3&lt;/code&gt; (stable)&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;2.4.5&lt;/code&gt; (stable)&lt;/li&gt;
&lt;li&gt;⏳ &lt;code&gt;2.3.8&lt;/code&gt; (security maintenance phase)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ViaBTC Exchange Server API Support
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;API Method&lt;/th&gt;
&lt;th&gt;Corresponding Methods&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;balance.query&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#balance&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;balance.update&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;#withdraw&lt;/code&gt; &lt;code&gt;#deposit&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;balance.history&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#balance_history&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;asset.list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#asset_list&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;asset.summary&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#asset_summary&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.put_limit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;#limit_sell&lt;/code&gt; &lt;code&gt;#limit_buy&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.put_market&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;#market_sell&lt;/code&gt; &lt;code&gt;#market_buy&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.cancel&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#cancel_order&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.deals&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#order_deals&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.book&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;#sell_orders&lt;/code&gt; &lt;code&gt;#buy_orders&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.depth&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#order_depth&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.pending&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#pending_orders&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.pending_detail&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#pending_order_details&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.finished&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;#finished_orders&lt;/code&gt; &lt;code&gt;#finished_sell_orders&lt;/code&gt; &lt;code&gt;#finished_buy_orders&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;order.finished_detail&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#finished_order_detail&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;market.last&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#market_last&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;market.deals&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#market_deals&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;market.user_deals&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#user_executed_orders&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;market.kline&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#market_kline&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;market.status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#market_status&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;market.status_today&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#market_status_today&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;market.list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#market_list&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;market.summary&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#market_summary&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Development
&lt;/h2&gt;

&lt;p&gt;After checking out the repo, run &lt;code&gt;bin/setup&lt;/code&gt; to install dependencies. Then, run &lt;code&gt;rake spec&lt;/code&gt; to run the tests. You can also run &lt;code&gt;bin/console&lt;/code&gt; for an interactive prompt that will allow you to experiment.&lt;/p&gt;

&lt;p&gt;To install this gem onto your local machine, run &lt;code&gt;bundle exec rake install&lt;/code&gt;. To release a new version, update the version number in &lt;code&gt;version.rb&lt;/code&gt;, and then run &lt;code&gt;bundle exec rake release&lt;/code&gt;, which will create a git tag for the version, push git commits and tags, and push the &lt;code&gt;.gem&lt;/code&gt; file to &lt;a href="https://rubygems.org"&gt;RubyGems&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://github.com/krmbzds/viabtc/fork"&gt;Fork the repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Switch to develop branch (&lt;code&gt;git checkout develop&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Create your feature branch (&lt;code&gt;git checkout -b my-new-feature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Commit your changes (&lt;code&gt;git commit -am 'Add some feature'&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Push to the branch (&lt;code&gt;git push origin my-new-feature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Create new Pull Request&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Donations ❤️
&lt;/h3&gt;

&lt;p&gt;You can donate me at &lt;a href="https://liberapay.com/krmbzds/donate"&gt;Librepay&lt;/a&gt;. Thanks! ☕️&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it any good?
&lt;/h2&gt;

&lt;p&gt;Yes.&lt;/p&gt;




&lt;p&gt;Since you made it this far.. 🤓&lt;/p&gt;

&lt;p&gt;Don't forget to ⭐️ my &lt;a href="https://github.com/krmbzds/viabtc"&gt;repository&lt;/a&gt; if you like it!&lt;/p&gt;

&lt;p&gt;Bug reports and pull requests are welcome! ♥️&lt;/p&gt;

&lt;p&gt;Happy Hacking,&lt;br&gt;
Kerem&lt;/p&gt;




&lt;p&gt;Photo Courtesy of &lt;a href="https://unsplash.com/@chrisliverani"&gt;Chris Liverani&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>opensource</category>
      <category>cryptocurrency</category>
      <category>rails</category>
    </item>
    <item>
      <title>New Release: Tate v1.0.0</title>
      <dc:creator>Kerem Bozdas</dc:creator>
      <pubDate>Thu, 27 Sep 2018 15:19:36 +0000</pubDate>
      <link>https://dev.to/krmbzds/new-release-tate-v100-2ki3</link>
      <guid>https://dev.to/krmbzds/new-release-tate-v100-2ki3</guid>
      <description>&lt;p&gt;💎 Just released a major update for tate! (v1.0.0) 💎&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Release highlights:&lt;/strong&gt;&lt;br&gt;
👉 Custom filter support&lt;br&gt;
👉 Support for 11 new languages&lt;br&gt;
👉 Improved command line tool&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/krmbzds/tate"&gt;Check it out!&lt;/a&gt;&lt;/p&gt;


&lt;h1&gt;
  
  
  Tate ✍️
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Tate&lt;/strong&gt; converts accented characters and transliterates non-latin scripts to their closest ASCII equivalent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tate&lt;/strong&gt; is a productivity tool, it behaves like a standard Unix application and can be chained with other Unix commands. It reads from standard input and writes to standard output. You can use it either as a commandline utility or a library.&lt;/p&gt;
&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;Let's say you have a French sentence with a lot of weird characters and you want to convert it into ASCII in the most representative way. You can use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'Le cœur de la crémiére'&lt;/span&gt; | tate  &lt;span class="c"&gt;#=&amp;gt; Le coeur de la cremiere&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or some Bulgarian text you can't read:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'Здравей!'&lt;/span&gt; | tate &lt;span class="nt"&gt;--lang&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;bg&lt;/span&gt;  &lt;span class="c"&gt;#=&amp;gt; Zdravey!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set language using &lt;code&gt;lang&lt;/code&gt; option for custom filters, e.g. German:&lt;/p&gt;

&lt;pre&gt;
echo 'Von gro&lt;b&gt;ß&lt;/b&gt;en Bl&lt;b&gt;ö&lt;/b&gt;cken haut man gro&lt;b&gt;ß&lt;/b&gt;e St&lt;b&gt;ü&lt;/b&gt;cke.' | tate --lang=de
&lt;/pre&gt;

&lt;p&gt;Letters ö, ü and ß will be transliterated based on German transliteration rules:&lt;/p&gt;

&lt;pre&gt;
Von gro&lt;b&gt;ss&lt;/b&gt;en Bl&lt;b&gt;oe&lt;/b&gt;cken haut man grosse St&lt;b&gt;ue&lt;/b&gt;cke.
&lt;/pre&gt;

&lt;p&gt;Language specific punctuation will be converted to closest ASCII equivalent.&lt;/p&gt;

&lt;p&gt;For example, in Catalan, notice how the quotes (cometes franceses) and the interpunct (punt volat) are transliterated:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;«Dóna amor que seràs feliç!». Això, il·lús company geniüt, ja és un lluït rètol blavís d’onze kWh.
"Dona amor que seras felic!". Aixo, il-lus company geniut, ja es un lluit retol blavis d'onze kWh.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;Add this line to your application's Gemfile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'tate'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;bundle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or install it yourself as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;tate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;h3 id="library"&gt;
  Ruby Library
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'tate'&lt;/span&gt;
&lt;span class="no"&gt;Tate&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;transliterate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Zəfər'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;language&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'az'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;#=&amp;gt; Zefer&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3 id="commandline"&gt;
  Commandline Utility
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Usage: tate [options]
-l, --lang=[LANGUAGE]            Set language for custom filters
-h, --help                       Show this message
-v, --version                    Show version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Interactive Mode
&lt;/h4&gt;

&lt;p&gt;If you call &lt;code&gt;tate&lt;/code&gt; without providing any arguments, it will expect you to provide input using standard input (keyboard). After you are done typing you can use &lt;code&gt;cmd + D&lt;/code&gt; to trigger &lt;code&gt;EOL (End of Line)&lt;/code&gt; and the result will printed in the next line.&lt;/p&gt;

&lt;h4&gt;
  
  
  Standard Streams
&lt;/h4&gt;

&lt;p&gt;You can pipe the output of another command into tate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl gov.bg/bg | tate &lt;span class="nt"&gt;--lang&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;bg&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Language Support
&lt;/h2&gt;

&lt;p&gt;There are custom filters for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Azeri, Bulgarian, Catalan, French, German, Hungarian, Polish, Romanian, Spanish, and Vietnamese.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The following languages are known to work (w/o custom filters):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Croatian, Czech, Danish, Esperanto, Estonian, Finnish, Icelandic, Latvian, Lithuania, Norwegian, Portuguese, Scottish, Slovak, Slovenian, Swedish, Turkish, and Welsh.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What's next?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Russian, Irish, Arabic, and Yoruba.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Is it any good?
&lt;/h2&gt;

&lt;p&gt;Yes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Donations
&lt;/h3&gt;

&lt;p&gt;You can donate me at &lt;a href="https://liberapay.com/krmbzds/donate"&gt;Librepay&lt;/a&gt;. Thanks! ☕️&lt;/p&gt;

&lt;h2&gt;
  
  
  Trivia
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;tate&lt;/strong&gt; is short for &lt;strong&gt;t&lt;/strong&gt; ransliter &lt;strong&gt;ate&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Nobody has time to type transliterate in the terminal. 🤷‍♂️&lt;/p&gt;




&lt;p&gt;Since you made it this far.. 🤓&lt;/p&gt;

&lt;p&gt;Don't forget to ⭐️ my &lt;a href="https://github.com/krmbzds/tate"&gt;repository&lt;/a&gt; if you like it!&lt;/p&gt;

&lt;p&gt;Bug reports and pull requests are welcome! ♥️&lt;/p&gt;

&lt;p&gt;Happy Hacking,&lt;br&gt;
Kerem&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>ascii</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
