usiri 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bffa41986da1febf0093238fbdf6b6e663438a9a
4
- data.tar.gz: da5bfee35f6fd518106e1be981385ef0e00d502b
3
+ metadata.gz: 2c411920ad5ebcedbde652445b481525178895c9
4
+ data.tar.gz: af91e7d0b876bf56a343aaf14c0880e10df42bf6
5
5
  SHA512:
6
- metadata.gz: aae629ee9171f942bcd0575d01fd5f2900e0b8c22aecc8e6c78c548039871d651f21b0fc713c7c84e952cfbc7172c9153b44bd2f396df283f0f53252c681e256
7
- data.tar.gz: d574af8ea13cd59d7065bd3310f07fc352ff60cfe34d94e43a645335f8b011e5fceacc808cc0223c53b8e51ceea57165c9d6f9f6b0e9101858ec811732ff2243
6
+ metadata.gz: 3dc13f909a2786ad06dc98f4b862b7aa205af91c196422b4e010ed1a6583df030720562037244ca03de2c0ea8894a42406a9383c25e22e48893e2ebf9647f65d
7
+ data.tar.gz: 4d3a26d0feffc329d891d312d79a9dfb18e006b1711497e2a23d6983f9847dc38386e42d958b84e75dd0d830d443a2917e3714a293f793168a3972f3be26ebaa
data/README.md CHANGED
@@ -1 +1,10 @@
1
- # usiri
1
+ # usiri
2
+ usiri [chaguo]
3
+
4
+ -j, --jina JINA jina itayotumwika kutengeneza siri
5
+ -s, --siti SITI siti itayotumwika kutengeneza siri
6
+ -a, --alama [AINA] aina ya alama | moja katita [yoyote ,safi ,bila]
7
+ -u, --urefu UREFU urefu wa siri. msingi: 23, wastan wa chini: 16, wastan wa ju: 88
8
+ -t, --toleo TOLEO toleo itayotumwika kutengeneza siri. msingi: 1.0
9
+ -m Oneysha mesegi hii
10
+ -T Oneysha toleo ya programu hii
data/lib/usiri.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  require 'digest'
2
2
  require 'clipboard'
3
+ require 'usiri/IT'
3
4
  require 'usiri/msaidizi'
4
-
5
+ require 'usiri/mwisho'
5
6
 
6
7
  module Usiri
7
8
  extend self
@@ -33,7 +34,8 @@ module Usiri
33
34
  tokeo = badilisha_maalama tokeo, kutoka, hashi
34
35
  end
35
36
 
36
- copi_ila_ubao tokeo
37
+ copi_kwenye_ubao tokeo
38
+ kwaheri
37
39
  end
38
40
 
39
41
  def tengeneza_id
@@ -55,7 +57,7 @@ module Usiri
55
57
  end
56
58
 
57
59
  def ina_alama? neno
58
- neno.match? ALAMA_REGEX
60
+ neno.match? REGEX[:alama]
59
61
  end
60
62
 
61
63
  def ni_alama? chr
@@ -76,7 +78,7 @@ module Usiri
76
78
  end
77
79
 
78
80
  def maalama
79
- @alama == ALAMA_MSINGI ? alama_yoyote : alama_safi
81
+ @alama == MSINGI[:alama] ? alama_yoyote : alama_safi
80
82
  end
81
83
 
82
84
  def ju_chini
@@ -115,8 +117,12 @@ module Usiri
115
117
  herufu_tokeo.join
116
118
  end
117
119
 
118
- def copi_ila_ubao siri
120
+ def copi_kwenye_ubao siri
119
121
  Clipboard.copy siri
120
- puts MAELEZO[:siri_copiwa]
122
+ end
123
+
124
+ def kwaheri
125
+ IT.ondoa_line paka=1
126
+ puts MAELEZO[:siri_copiwa] + MAELEZO[:kwaheri]
121
127
  end
122
128
  end
data/lib/usiri/IT.rb ADDED
@@ -0,0 +1,14 @@
1
+ require 'io/console'
2
+
3
+ module IT
4
+ extend self
5
+ def letas ondoa = false
6
+ jibu = STDIN.noecho(&:gets)
7
+ ondoa_line if ondoa
8
+ jibu
9
+ end
10
+
11
+ def ondoa_line paka = 0
12
+ print "\r" + ("\e[A") * paka.abs() +"\e[J"
13
+ end
14
+ end
@@ -36,37 +36,36 @@ class ChaguoCLI
36
36
  private
37
37
  def chaguo_jina mfasili
38
38
  mfasili.on("-j", "--jina JINA", MAELEZO[:jina]) do |jina|
39
- raise kosa jina if jina.match? CHAGUO_CLI_REGEX
39
+ raise kosa jina if jina.match? REGEX[:chaguo_cli]
40
40
  @jina = jina
41
41
  end
42
42
  end
43
43
 
44
44
  def chaguo_siti mfasili
45
45
  mfasili.on("-s", "--siti SITI", MAELEZO[:siti]) do |siti|
46
- raise kosa siti if siti.match? CHAGUO_CLI_REGEX
46
+ raise kosa siti if siti.match? REGEX[:chaguo_cli]
47
47
  @siti = siti
48
48
  end
49
49
  end
50
50
 
51
51
  def chaguo_alama mfasili
52
- mfasili.on("-a", "--alama [AINA]", AINA_MAALAMA,
53
- MAELEZO[:alama]) do |alama|
52
+ mfasili.on("-a", "--alama [AINA]", AINA_MAALAMA, MAELEZO[:alama]) do |alama|
54
53
  if AINA_MAALAMA.include? alama
55
54
  @alama = alama
56
55
  else
57
- @alama = ALAMA_MSINGI
56
+ @alama = MSINGI[:alama]
58
57
  end
59
58
  end
60
59
  end
61
60
 
62
61
  def chaguo_urefu mfasili
63
- mfasili.on("-u", "--urefu UREFU", UREFU_REGEX, MAELEZO[:urefu]) do |urefu|
62
+ mfasili.on("-u", "--urefu UREFU", REGEX[:urefu], MAELEZO[:urefu]) do |urefu|
64
63
  @urefu = urefu.to_i
65
64
  end
66
65
  end
67
66
 
68
67
  def chaguo_toleo mfasili
69
- mfasili.on("-t", "--toleo TOLEO", TOLEO_REGEX, MAELEZO[:toleo]) do |toleo|
68
+ mfasili.on("-t", "--toleo TOLEO", REGEX[:toleo], MAELEZO[:toleo]) do |toleo|
70
69
  @toleo = toleo
71
70
  end
72
71
  end
@@ -1,6 +1,7 @@
1
1
  require 'optparse'
2
2
  require 'usiri/chaguo_cli'
3
3
  require 'usiri/muombi'
4
+ require 'usiri/mwisho'
4
5
 
5
6
  module Msaidizi
6
7
  extend self
@@ -47,6 +48,11 @@ module Msaidizi
47
48
  end
48
49
 
49
50
  def omba_chaguo_kama_hazipo chaguo_asili
50
- Muombi.new chaguo_asili
51
+ begin
52
+ Muombi.new chaguo_asili
53
+ rescue SystemExit, Interrupt
54
+ puts MAELEZO[:kwaheri]
55
+ exit
56
+ end
51
57
  end
52
58
  end
@@ -7,10 +7,10 @@ module Muhakikisha
7
7
  end
8
8
 
9
9
  def urefu u
10
- u.match? UREFU_REGEX
10
+ u.match? REGEX[:urefu]
11
11
  end
12
12
 
13
13
  def toleo t
14
- t.match? TOLEO_REGEX
14
+ t.match? REGEX[:toleo]
15
15
  end
16
16
  end
data/lib/usiri/muombi.rb CHANGED
@@ -1,27 +1,58 @@
1
- require 'io/console'
2
1
  require "inquirer"
3
- require "usiri/mwisho"
4
2
  require "usiri/muhakikisha"
3
+ require "usiri/it"
4
+ require "usiri/mwisho"
5
5
 
6
6
  class Muombi
7
7
  attr_accessor :jina, :siti, :siri, :alama, :urefu, :toleo
8
8
 
9
9
  def initialize(chaguo_asili)
10
- @jina = leta_chaguo chaguo_asili, :jina, 'JINA_USIRI'
11
- @siti = leta_chaguo chaguo_asili, :siti
12
- @siri = leta_chaguo chaguo_asili, :siri
13
- @alama = leta_chaguo chaguo_asili, :alama
14
- @urefu = leta_chaguo(chaguo_asili, :urefu).to_i
15
- @toleo = leta_chaguo chaguo_asili, :toleo
10
+ karibu
11
+ leta_chaguo_id chaguo_asili
12
+ leta_chaguo_siri chaguo_asili
16
13
  end
17
14
 
18
15
  private
19
- def leta_chaguo chaguo_asili, chaguo, jina_env = nil
16
+ def karibu
17
+ puts MAELEZO[:karibu]
18
+ end
19
+
20
+ def leta_chaguo_id chaguo_asili
21
+ [:jina, :siti, :siri].each do |chaguo|
22
+ setti_chaguo chaguo, leta_chaguo(chaguo_asili, chaguo, ENVI[chaguo])
23
+ end
24
+ end
25
+
26
+ def leta_chaguo_siri chaguo_asili
27
+ hazijasetiwa = [];
28
+
29
+ MSINGI.each do |jina_chaguo, thamani|
30
+ if chaguo_haijasetiwa? chaguo_asili, jina_chaguo
31
+ hazijasetiwa.push jina_chaguo
32
+ else
33
+ thamani = leta_chaguo chaguo_asili, jina_chaguo
34
+ setti_chaguo jina_chaguo, thamani
35
+ end
36
+ end
37
+
38
+ maamuzi = omba_chaguo_siri hazijasetiwa.map { |e| "#{e}: #{MSINGI[e]}" }
39
+
40
+ hazijasetiwa.each_with_index do |chaguo, sehemu|
41
+ amekubali_msingi = maamuzi[sehemu]
42
+ if amekubali_msingi
43
+ setti_chaguo chaguo, MSINGI[chaguo]
44
+ else
45
+ setti_chaguo chaguo, leta_chaguo(chaguo_asili, chaguo)
46
+ end
47
+ end
48
+ end
49
+
50
+ def leta_chaguo chaguo_asili, chaguo, env = nil
20
51
  jibu = leta_chaguo_asili chaguo_asili, chaguo
21
52
 
22
53
  if jibu.nil?
23
- if not jina_env.nil?
24
- jibu = ENV[jina_env]
54
+ if not env.nil?
55
+ jibu = ENV[env]
25
56
  else
26
57
  muhakikisha = tengeneza_muhakikisha chaguo
27
58
  jibu = omba chaguo
@@ -34,7 +65,20 @@ class Muombi
34
65
  end
35
66
  end
36
67
 
37
- jibu
68
+ chaguo == :urefu ? jibu.to_i : jibu
69
+ end
70
+
71
+ def setti_chaguo chaguo, thamani
72
+ setta = leta_setta chaguo
73
+ self.method(setta).call(thamani)
74
+ end
75
+
76
+ def leta_setta chaguo
77
+ (chaguo.to_s + "=").to_sym
78
+ end
79
+
80
+ def chaguo_haijasetiwa? chaguo_asili, chaguo
81
+ leta_chaguo_asili(chaguo_asili, chaguo).nil?
38
82
  end
39
83
 
40
84
  def leta_chaguo_asili chaguo_asili, chaguo
@@ -94,23 +138,23 @@ class Muombi
94
138
 
95
139
  case chaguo
96
140
  when :urefu
97
- opts[:default] = UREFU_MSINGI.to_s
141
+ opts[:default] = MSINGI[:urefu].to_s
98
142
  when :toleo
99
- opts[:default] = TOLEO_MSINGI.to_s
143
+ opts[:default] = MSINGI[:toleo].to_s
100
144
  end
145
+
101
146
  opts
102
147
  end
103
148
 
104
149
  def omba_siri swala
105
- # swala = "Ingiza siri ku: "
106
- # swala = "#{MAELEZO[:jaribu_tena]} " + swala if kosa
107
- print swala
108
- ingizo = STDIN.noecho(&:gets).strip
109
- clear_line
110
- ingizo
150
+ print swala
151
+ IT.letas(ondoa=true).strip
111
152
  end
112
153
 
113
- def clear_line
114
- print "\r\e[0K"
154
+ def omba_chaguo_siri msingi
155
+ Ask.checkbox(MAELEZO[:chaguo_siri],
156
+ msingi,
157
+ default: msingi.map { |e| true },
158
+ response: false)
115
159
  end
116
160
  end
data/lib/usiri/mwisho.rb CHANGED
@@ -1,25 +1,41 @@
1
1
  require "colorize"
2
2
 
3
+ MSINGI = {
4
+ alama: :yoyote,
5
+ urefu: 23,
6
+ toleo: 1.0
7
+ }
8
+
9
+ ENVI = {
10
+ jina: "JINA_USIRI"
11
+ }
12
+
13
+ AINA_MAALAMA = [MSINGI[:alama], :safi, :bila]
3
14
  UREFU_WASTAN_CHINI = 16
4
15
  UREFU_WASTAN_JU = 88
5
- UREFU_MSINGI = 23
6
- UREFU_REGEX = /^[1-7][6-9]$|^[2-7][0-9]$|^8[0-8]$/
7
- TOLEO_MSINGI = 1.0
8
- TOLEO_REGEX = /^-?[\d]+\.?[\d]*$/
9
- ALAMA_MSINGI = :yoyote
10
- ALAMA_REGEX = /[\W_]/
11
- AINA_MAALAMA = [ALAMA_MSINGI, :safi, :bila]
12
- CHAGUO_CLI_REGEX = /^-[jsautTm]$|^--jina$|^--siti$|^--alama$|^--urefu$|^--toleo$/
16
+
17
+ REGEX = {
18
+ urefu: /^[1-7][6-9]$|^[2-7][0-9]$|^8[0-8]$/,
19
+ toleo: /^-?[\d]+\.?[\d]*$/,
20
+ alama: /[\W_]/,
21
+ chaguo_cli: /^-[jsautTm]$|^--jina$|^--siti$|^--alama$|^--urefu$|^--toleo$/
22
+ }
23
+
13
24
  MAELEZO = {
25
+ karibu: ("👐🏾 "+" Karibu!").black.on_yellow +
26
+ " Ingiza au chagua chaguozako alafu bonyeza 'enter' kuendelea".green,
14
27
  jina: "jina itayotumwika kutengeneza siri",
15
28
  siti: "siti itayotumwika kutengeneza siri",
16
29
  siri: "siri ku: ",
17
- alama: "aina ya alama | moja katita [#{AINA_MAALAMA.join(" ,")}]",
18
- urefu: "urefu wa siri. msingi: #{UREFU_MSINGI},\
30
+ chaguo_siri: "tumiya chaguo haya kutengeneza siri."+
31
+ " Bonyeza 'spacebar' kukubali aw kukataa chaguo.",
32
+ alama: "aina ya alama | moja katita [#{AINA_MAALAMA.join(' ,')}]",
33
+ urefu: "urefu wa siri. msingi: #{MSINGI[:urefu]},\
19
34
  wastan wa chini: #{UREFU_WASTAN_CHINI}, wastan wa ju: #{UREFU_WASTAN_JU}",
20
- toleo: "toleo itayotumwika kutengeneza siri. msingi: #{TOLEO_MSINGI}",
35
+ toleo: "toleo itayotumwika kutengeneza siri. msingi: #{MSINGI[:toleo]}",
21
36
  msaada: "Oneysha mesegi hii",
22
37
  toleo_usiri: "Oneysha toleo ya programu hii",
23
38
  jaribu_tena: "**JARIBU TENA**".black.on_red,
24
- siri_copiwa: "Siri ime copiwa kwenye ubao".green
39
+ siri_copiwa: "🙌🏾 "+ " Siri ime copiwa kwenye ubao. Karibu tena! ".green,
40
+ kwaheri: "Kwaheri".green + " ✌🏾"
25
41
  }
data/lib/usiri/toleo.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Usiri
2
- TOLEO = "1.0.0"
2
+ TOLEO = "2.0.0"
3
3
  end
data/usiri.gemspec CHANGED
@@ -4,16 +4,17 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require "usiri/toleo"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = 'usiri'
8
- spec.version = Usiri::TOLEO
9
- spec.executables << 'usiri'
10
- spec.date = '2017-10-24'
11
- spec.summary = "Manega ya maneno ya siri"
12
- spec.description = "Hii ni programu raisi ya ku hifadhi maneno ya siri"
13
- spec.authors = ["Itenga"]
14
- spec.email = 'itenga@protonmail.com'
15
- spec.files = `git ls-files`.split("\n")
16
- spec.require_paths = ["lib"]
17
- spec.homepage = 'https://github.com/msukuma/usiri'
18
- spec.license = 'MIT'
7
+ spec.name = 'usiri'
8
+ spec.version = Usiri::TOLEO
9
+ spec.executables << 'usiri'
10
+ spec.date = '2017-10-24'
11
+ spec.summary = "Manega ya maneno ya siri"
12
+ spec.description = "Hii ni programu raisi ya ku hifadhi maneno ya siri"
13
+ spec.authors = ["Itenga"]
14
+ spec.email = 'itenga@protonmail.com'
15
+ spec.files = `git ls-files`.split("\n")
16
+ spec.require_paths = ["lib"]
17
+ spec.required_ruby_version = '>=2.4.0'
18
+ spec.homepage = 'https://github.com/msukuma/usiri'
19
+ spec.license = 'MIT'
19
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usiri
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Itenga
@@ -25,6 +25,7 @@ files:
25
25
  - Rakefile
26
26
  - bin/usiri
27
27
  - lib/usiri.rb
28
+ - lib/usiri/IT.rb
28
29
  - lib/usiri/chaguo_cli.rb
29
30
  - lib/usiri/msaidizi.rb
30
31
  - lib/usiri/muhakikisha.rb
@@ -44,7 +45,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
44
45
  requirements:
45
46
  - - ">="
46
47
  - !ruby/object:Gem::Version
47
- version: '0'
48
+ version: 2.4.0
48
49
  required_rubygems_version: !ruby/object:Gem::Requirement
49
50
  requirements:
50
51
  - - ">="