chid 0.1.5 → 0.1.6

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
- SHA1:
3
- metadata.gz: 594d77b67587ed2a523c044bf7920d28d563e243
4
- data.tar.gz: b1e05442eeee7ef9969e0905d8c49db6eabfb7ce
2
+ SHA256:
3
+ metadata.gz: 51d240fb1dd06def3848504ae94b5b34c9966da3e808f5edb3977d84024c82b3
4
+ data.tar.gz: 0c7216dbadcdd864ce6925af4c98f5f1dae0be145444a7e953c52c03b418bba2
5
5
  SHA512:
6
- metadata.gz: 1c2e20c9a2d81a8ec6846665682010f7bbc89fea199034370e2947882905638d740acd4906ec334472b1f42967a7eeeb6e6bf3e87744d6563a241d7edbeb2ac3
7
- data.tar.gz: 91a5214c483d2ea03b538564af5b055fa7725251461f78db90cbfde78a055973a74e32d0b7a5335f283c801f3d71c7cd83a2ceb86a6c08f0b0365d9d87ea2dc4
6
+ metadata.gz: 2ffb3e40667b8f5de2e2b2a2bb1bd57c24e82000154c1f7f6e21ed82992c8ae42f8f8eb91031e6fcd5489c71434b8e29db919fe5c6410031728ee82e6969fff9
7
+ data.tar.gz: 8bbe3027b673200f8a697040ee0978b183970e27052d659e71b4be213a977ca58146777a63e9fe6bafed101a24073ade3e4bce9415d82fe7d2aad608cd4bf181
@@ -1,3 +1,8 @@
1
+ ### 0.1.6
2
+
3
+ * Update:
4
+ - Chid tmux Command
5
+
1
6
  ### 0.1.5
2
7
 
3
8
  * Update:
data/bin/chid CHANGED
@@ -5,7 +5,7 @@ require 'rake'
5
5
 
6
6
  task = ARGV.join(" ")
7
7
 
8
- puts "TASK: #{ARGV}"
8
+ #puts "TASK: #{ARGV}"
9
9
 
10
10
  if task.empty?
11
11
  #Rake.application.run
@@ -56,6 +56,11 @@ class ChidConfig
56
56
  data[:chid][:workstations]
57
57
  end
58
58
 
59
+ def all_tmux_templates
60
+ data = YAML.load_file chid_config_path
61
+ data[:chid][:tmux_templates]
62
+ end
63
+
59
64
  def destroy_workstations(workstations = [])
60
65
  data = YAML.load_file chid_config_path
61
66
 
@@ -56,7 +56,6 @@ Options:
56
56
  def first_option_kind
57
57
  options_titles = {
58
58
  '-A' => 'Add',
59
- '-U' => 'Update',
60
59
  '-R' => 'Remove',
61
60
  '-U' => 'Update',
62
61
  '-Ref' => 'Refactor',
@@ -50,14 +50,16 @@ Usage:
50
50
  return base_configurations unless chid_config_file_exist?
51
51
 
52
52
  data = YAML.load_file chid_config_path
53
- data[:chid][:workstations] = data[:chid].fetch(:workstations, {})
53
+ data[:chid][:workstations] = data[:chid].fetch(:workstations, {})
54
+ data[:chid][:tmux_templates] = data[:chid].fetch(:tmux_templates, {})
54
55
  data
55
56
  end
56
57
 
57
58
  def base_configurations
58
59
  {
59
60
  chid: {
60
- workstations: {}
61
+ workstations: {},
62
+ tmux_templates: {}
61
63
  }
62
64
  }
63
65
  end
@@ -0,0 +1,32 @@
1
+ module Chid
2
+ module Commands
3
+ class News < Command
4
+
5
+ command :'news'
6
+
7
+ self.summary = 'Will show all news from some sites'
8
+ self.description = <<-DESC
9
+
10
+ Usage:
11
+
12
+ $ chid news
13
+
14
+ Will show all news from some sites
15
+
16
+ Sites:
17
+ BBC, CNN, Espn, Mashable, Google, Techcrunch, Reddit
18
+
19
+
20
+ Options:
21
+
22
+ DESC
23
+ self.arguments = []
24
+
25
+ def run
26
+ articles = ::NewsApi.articles
27
+ ::Paginator.new(articles).paginate { |article| article.summary }
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,63 @@
1
+ module Chid
2
+ module Commands
3
+ class StackOverflow < Command
4
+
5
+ command :'stack'
6
+
7
+ self.summary = 'Will search on StackOverflow all results'
8
+ self.description = <<-DESC
9
+
10
+ Usage:
11
+
12
+ $ chid stack
13
+ or
14
+ $ chid stack -s some_text_to_be_searched
15
+
16
+ Will search on StackOverflow all results
17
+
18
+ If no pass option Will ask what you want to search on StackOverflow all results for the passed text
19
+
20
+ Options:
21
+
22
+ -search TEXT_TO_SEARCH
23
+ -s TEXT_TO_SEARCH
24
+
25
+ DESC
26
+ self.arguments = ['-search', '-s']
27
+
28
+ def run
29
+ text_to_search = text_to_search_from_options
30
+ text_to_search = get_text_to_search if text_to_search.empty?
31
+
32
+ questions = ::StackOverflowApi.questions(text_to_search)
33
+ ::Paginator.new(questions).paginate { |question| question.summary }
34
+ end
35
+
36
+ private
37
+
38
+ def get_text_to_search
39
+ print "Tell me, what do you want to search?\n".blue
40
+ print "> "
41
+ STDIN.gets.strip
42
+ end
43
+
44
+
45
+
46
+ # Returns the TEXT_TO_SEARCH mapped from the values of the options attribute.
47
+ # Will remove all nil values and join the array of values into String
48
+ #
49
+ # @return [String] Mapped values from options attribute
50
+ # If the options does not exist, will return empty String #=> ""
51
+ #
52
+ # @example Text to Search
53
+ # options = {'-search' => ['base', 'two']}
54
+ #
55
+ # text_to_search #=> 'base two'
56
+ #
57
+ def text_to_search_from_options
58
+ @text_to_search ||= self.class.arguments.map { |a| options[a] }.compact.join(' ')
59
+ end
60
+
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,28 @@
1
+ module Chid
2
+ module Commands
3
+ module Tmux
4
+ class List < Command
5
+
6
+ command :'tmux list'
7
+
8
+ self.summary = 'List all existent tmux template'
9
+ self.description = <<-DESC
10
+
11
+ Usage:
12
+
13
+ $ chid tmux list
14
+
15
+ DESC
16
+ self.arguments = []
17
+
18
+ def run
19
+ chid_config = ChidConfig.new
20
+ puts "Tmux templates availabbe:".blue
21
+ puts chid_config.all_tmux_templates.keys
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
28
+
@@ -0,0 +1,89 @@
1
+ module Chid
2
+ module Commands
3
+ module Tmux
4
+ class Open < Command
5
+
6
+ command :'tmux open'
7
+
8
+ self.summary = 'Open a specific tmux template'
9
+ self.description = <<-DESC
10
+
11
+ Usage:
12
+
13
+ $ chid tmux open
14
+ or
15
+ $ chid tmux open -name some_template_name
16
+
17
+ Open the template.
18
+
19
+ To see all templates you can run
20
+
21
+ $ chid tmux list
22
+
23
+ If no options are specified, chid will show a list of Templates created
24
+ to be selected.
25
+
26
+ Options:
27
+
28
+ -name template_name Open the specifc template called 'template_name'
29
+ -n "base two" Open the specific template called 'base two'
30
+
31
+ DESC
32
+ self.arguments = ['-name', '-n']
33
+
34
+ def run
35
+ template_name = template_name_from_options
36
+ template_name = select_template if template_name.empty?
37
+
38
+ open_template(template_name)
39
+ end
40
+
41
+ private
42
+
43
+ # Returns the template name mapped from the values of the options attribute.
44
+ # Will remove all nil values and join the array of values into String
45
+ #
46
+ # @return [String] Mapped values from options attribute
47
+ # If the options does not exist, will return empty String #=> ""
48
+ #
49
+ # @example Template Name
50
+ # options = {'-name' => ['base', 'two']}
51
+ #
52
+ # template_name #=> 'base two'
53
+ #
54
+ def template_name_from_options
55
+ @template_name ||= self.class.arguments.map { |a| options[a] }.compact.join(' ')
56
+ end
57
+
58
+ def chid_config
59
+ ::Chid.chid_config
60
+ end
61
+
62
+ def templates
63
+ @templates ||= chid_config.all_tmux_templates
64
+ end
65
+
66
+ def select_template
67
+ prompt = TTY::Prompt.new
68
+ choices = templates.keys
69
+ selected_template = prompt.select('Choose a template to open', choices)
70
+ selected_template
71
+ end
72
+
73
+ def open_template(template_name)
74
+ puts "\nOpening Template #{template_name}"
75
+ commands = templates[template_name.to_sym]
76
+
77
+ exist_tmux_session = system("tmux ls | grep -c #{template_name}")
78
+
79
+ if exist_tmux_session
80
+ system("tmux attach -t #{template_name}")
81
+ else
82
+ system(commands.join('').gsub('$$template_name$$', template_name.to_s))
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+
@@ -1,3 +1,3 @@
1
1
  module Chid
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Chid::Commands::Workstation::Open, tt:true do
3
+ describe Chid::Commands::Workstation::Open do
4
4
 
5
5
  subject { Chid::Commands::Workstation::Open.new(options) }
6
6
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rachid Calazans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-17 00:00:00.000000000 Z
11
+ date: 2018-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -122,6 +122,10 @@ files:
122
122
  - lib/chid/commands/installs/node.rb
123
123
  - lib/chid/commands/installs/postgres.rb
124
124
  - lib/chid/commands/installs/rvm.rb
125
+ - lib/chid/commands/news.rb
126
+ - lib/chid/commands/stack_overflow.rb
127
+ - lib/chid/commands/tmux/list.rb
128
+ - lib/chid/commands/tmux/open.rb
125
129
  - lib/chid/commands/workstation/list.rb
126
130
  - lib/chid/commands/workstation/open.rb
127
131
  - lib/chid/currency_api.rb
@@ -183,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
187
  version: '0'
184
188
  requirements: []
185
189
  rubyforge_project:
186
- rubygems_version: 2.6.6
190
+ rubygems_version: 2.7.3
187
191
  signing_key:
188
192
  specification_version: 4
189
193
  summary: Simple assistant for day-to-day life. Developers and common users