qiita_org 0.1.21 → 0.1.35

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/.yardopts +4 -0
  4. data/Gemfile +7 -0
  5. data/Gemfile.lock +40 -1
  6. data/lib/qiita_org.rb +41 -52
  7. data/lib/qiita_org/.qiita.conf +7 -6
  8. data/lib/qiita_org/access_qiita.rb +29 -0
  9. data/lib/qiita_org/all.rb +50 -0
  10. data/lib/qiita_org/base.rb +98 -0
  11. data/lib/qiita_org/config.json +1 -0
  12. data/lib/qiita_org/config.rb +1 -2
  13. data/lib/qiita_org/error_message.rb +99 -0
  14. data/lib/qiita_org/get.rb +15 -53
  15. data/lib/qiita_org/get_multiple_files.rb +36 -0
  16. data/lib/qiita_org/get_template.rb +24 -48
  17. data/lib/qiita_org/list.rb +9 -39
  18. data/lib/qiita_org/md_converter_for_image.rb +7 -7
  19. data/lib/qiita_org/{check_pc_os.rb → old_programs/check_pc_os.rb} +0 -0
  20. data/lib/qiita_org/{decide_option.rb → old_programs/decide_option.rb} +6 -2
  21. data/lib/qiita_org/old_programs/file_open.rb +15 -0
  22. data/lib/qiita_org/{get_file_path.rb → old_programs/get_file_path.rb} +0 -0
  23. data/lib/qiita_org/{get_file_url.rb → old_programs/get_file_url.rb} +12 -14
  24. data/lib/qiita_org/{search_conf_path.rb → old_programs/search_conf_path.rb} +1 -1
  25. data/lib/qiita_org/old_programs/select_path.rb +16 -0
  26. data/lib/qiita_org/old_programs/set_config.rb +30 -0
  27. data/lib/qiita_org/{show_file_and_url.rb → old_programs/show_file_and_url.rb} +45 -36
  28. data/lib/qiita_org/post.rb +68 -50
  29. data/lib/qiita_org/template.org +1 -0
  30. data/lib/qiita_org/upload.rb +110 -0
  31. data/lib/qiita_org/version.rb +1 -1
  32. data/tests/test.org +10 -3
  33. data/tests/test2.org +3 -1
  34. data/tests/test3.org +2 -1
  35. data/tests/test4.org +16 -0
  36. data/tests/twitter_test.org +14 -0
  37. metadata +1614 -10
  38. data/lib/qiita_org/hoge.txt +0 -3
  39. data/tests/test2.md +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08e12d5c8b442eedf009fa8f48b4e2f0b1af5379600ccf15a1c1d1d035481a05'
4
- data.tar.gz: 3841ad75ffacd131b9f6dd55fa7dfd098e3ea78af2c1cf539158c193efaae356
3
+ metadata.gz: 6c72fb0ca25fa98881ffa0e4f000a6d18c0ad742f7771b501d5b8cc8a7d1877f
4
+ data.tar.gz: 6e131d7a573369378f002f155900851f1b11f7fe522778c9ee637b3098596a1c
5
5
  SHA512:
6
- metadata.gz: ca8bfb7e6d185931783d261776ae3335478df595b7411afd07a8fbf71f1f4e6d509eece8f661af95d97f4add8559f8b5bbf2d0b8cacee208077d1112c9e4e94e
7
- data.tar.gz: f1a7b942323d6294f38bc4f21ca70ed081ca4bb331dad8d40e171fd3499bb7f6040fd3eef75a133fb00500cd209298d49156f0f0d97956a0d65c021fa34e41f1
6
+ metadata.gz: fab87567e4e52f3f3bb74f3cd32807e7b1ef3bcfd19fbd019891a0218489373d5ec1be694389c5815be11fc5a397287d9203e3bde9e04048a6a2a28f43e3d88a
7
+ data.tar.gz: 0daa3405f652e9c79d91e02f3b88403dc86f3d6f67012cd0f8e73123b6141d8651ae01c66ed85eb6d40d6bcdd27bea10a5c67e9a1ccd33dc3cef59c77a343cb1
data/.gitignore CHANGED
@@ -6,6 +6,10 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /gems/
10
+ /gems/*
11
+ /doc/*
12
+ !/doc/.keep
9
13
 
10
14
  # rspec failure tracking
11
15
  .rspec_status
@@ -0,0 +1,4 @@
1
+ --protected
2
+ --no-private
3
+ --markup markdown
4
+ --plugin activesupport-concern
data/Gemfile CHANGED
@@ -5,3 +5,10 @@ gemspec
5
5
 
6
6
  gem "rake", "~> 12.0"
7
7
  gem "rspec", "~> 3.0"
8
+
9
+ group :development do
10
+ gem 'yard'
11
+ gem 'guard-yard'
12
+ gem 'yard-activesupport-concern'
13
+ gem 'redcarpet'
14
+ end
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qiita_org (0.1.20)
4
+ qiita_org (0.1.34)
5
5
  colorize
6
6
  command_line (> 2.0.0)
7
7
  fileutils
@@ -10,11 +10,42 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
+ coderay (1.1.3)
13
14
  colorize (0.8.1)
14
15
  command_line (2.0.1)
15
16
  diff-lcs (1.4.4)
17
+ ffi (1.13.1)
16
18
  fileutils (1.4.1)
19
+ formatador (0.2.5)
20
+ guard (2.16.2)
21
+ formatador (>= 0.2.4)
22
+ listen (>= 2.7, < 4.0)
23
+ lumberjack (>= 1.0.12, < 2.0)
24
+ nenv (~> 0.1)
25
+ notiffany (~> 0.0)
26
+ pry (>= 0.9.12)
27
+ shellany (~> 0.0)
28
+ thor (>= 0.18.1)
29
+ guard-yard (2.2.1)
30
+ guard (>= 1.1.0)
31
+ yard (>= 0.7.0)
32
+ listen (3.3.1)
33
+ rb-fsevent (~> 0.10, >= 0.10.3)
34
+ rb-inotify (~> 0.9, >= 0.9.10)
35
+ lumberjack (1.2.8)
36
+ method_source (1.0.0)
37
+ nenv (0.3.0)
38
+ notiffany (0.1.3)
39
+ nenv (~> 0.1)
40
+ shellany (~> 0.0)
41
+ pry (0.13.1)
42
+ coderay (~> 1.1)
43
+ method_source (~> 1.0)
17
44
  rake (12.3.3)
45
+ rb-fsevent (0.10.4)
46
+ rb-inotify (0.10.1)
47
+ ffi (~> 1.0)
48
+ redcarpet (3.5.0)
18
49
  rspec (3.9.0)
19
50
  rspec-core (~> 3.9.0)
20
51
  rspec-expectations (~> 3.9.0)
@@ -28,16 +59,24 @@ GEM
28
59
  diff-lcs (>= 1.2.0, < 2.0)
29
60
  rspec-support (~> 3.9.0)
30
61
  rspec-support (3.9.3)
62
+ shellany (0.0.1)
31
63
  thor (1.0.1)
64
+ yard (0.9.25)
65
+ yard-activesupport-concern (0.0.1)
66
+ yard (>= 0.8)
32
67
 
33
68
  PLATFORMS
34
69
  ruby
35
70
 
36
71
  DEPENDENCIES
37
72
  bundler (> 1.16)
73
+ guard-yard
38
74
  qiita_org!
39
75
  rake (~> 12.0)
76
+ redcarpet
40
77
  rspec (~> 3.0)
78
+ yard
79
+ yard-activesupport-concern
41
80
 
42
81
  BUNDLED WITH
43
82
  2.1.4
@@ -7,21 +7,17 @@ require "qiita_org/post"
7
7
  require "qiita_org/config"
8
8
  require "qiita_org/get"
9
9
  require "qiita_org/list"
10
+ require "qiita_org/all"
10
11
  require "qiita_org/get_template"
11
- require "qiita_org/check_pc_os"
12
- require "qiita_org/get_file_path"
13
- require "qiita_org/show_file_and_url"
14
- require "qiita_org/decide_option"
15
- #require "qiita_org/qiita_org_thor"
12
+ require "qiita_org/upload"
13
+ require "qiita_org/get_multiple_files"
14
+ require "qiita_org/base"
16
15
 
17
16
  module QiitaOrg
18
17
  class CLI < Thor
19
- # def initialize(*argv)
20
- # super(*argv)
21
- # end
22
- #
23
18
  def initialize(*argv)
24
19
  super(*argv)
20
+ @base = QiitaBase.new()
25
21
  end
26
22
 
27
23
  desc "say_hello", "say_hello"
@@ -34,43 +30,44 @@ module QiitaOrg
34
30
  desc "post [FILE] [private/public/teams]", "post to qiita from org"
35
31
 
36
32
  def post(*argv)
37
- checkos = CheckPcOs.new
38
- os = checkos.return_os()
39
-
40
- p ["in qiita_org.rb", argv]
41
- p file = argv[0] || "README.org"
42
- p mode = argv[1] || DecideOption.new(file).decide_option()
43
- qiita = QiitaPost.new(file, mode, os)
44
- begin
45
- qiita.select_option(mode)
46
- rescue RuntimeError => e
47
- puts $!
48
- else
49
- qiita.run
33
+ os = @base.check_pc_os()
34
+
35
+ if argv.size > 2
36
+ GetMultipleFiles.new(argv, os, "post").run()
37
+ else #if argv.size > 1
38
+ if argv[-1].match(/(.+).org/)
39
+ GetMultipleFiles.new(argv, os, "post").run()
40
+ else
41
+ p ["in qiita_org.rb", argv]
42
+ p file = argv[0] || "README.org"
43
+ p mode = argv[1] || @base.pick_up_option(file)
44
+ qiita = QiitaPost.new(file, mode, os)
45
+ begin
46
+ qiita.select_option(mode)
47
+ rescue RuntimeError => e
48
+ puts $!
49
+ else
50
+ qiita.run
51
+ end
52
+ end
50
53
  end
51
54
  end
52
55
 
53
56
  desc "upload [FILE] [teams/public/private]", "upload about image to qiita"
54
57
 
55
58
  def upload(*argv)
56
- checkos = CheckPcOs.new
57
- os = checkos.return_os()
58
-
59
- p file = argv[0] || "README.org"
60
- p mode = argv[1] || "private"
61
-
62
- getpath = GetFilePath.new(file)
63
- paths = getpath.get_file_path()
64
- unless paths.empty?
65
- showfile = ShowFile.new(paths, file, mode, os)
66
- showfile.open_file_dir()
67
- showfile.open_qiita()
59
+ os = @base.check_pc_os()
68
60
 
69
- puts "Input file URL's on #{file}? (y/n)".green
70
- ans = STDIN.getch
61
+ if argv.size > 2
62
+ GetMultipleFiles.new(argv, os, "upload").run()
63
+ else #if argv.size > 1
64
+ if argv[-1].match(/(.+).org/)
65
+ GetMultipleFiles.new(argv, os, "upload").run()
66
+ else
67
+ p file = argv[0] || "README.org"
68
+ p mode = argv[1] || @base.pick_up_option(file)
71
69
 
72
- if ans == "y"
73
- showfile.input_url_to_org()
70
+ qiita = QiitaFileUpLoad.new(file, mode, os).upload()
74
71
  end
75
72
  end
76
73
  end
@@ -97,25 +94,17 @@ module QiitaOrg
97
94
  desc "template", "make template.org"
98
95
 
99
96
  def template(*argv)
100
- checkos = CheckPcOs.new
101
- os = checkos.return_os()
97
+ os = @base.check_pc_os()
98
+ filename = argv[0] || "template.org"
99
+ filename = (filename.include?(".org"))? filename : "#{filename}.org"
102
100
 
103
- template = QiitaGetTemplate.new(os)
101
+ template = QiitaGetTemplate.new(os, filename).run()
104
102
  end
105
103
 
106
- desc "all", "post all org file in the directory"
104
+ desc "all [teams/public/private] [options]", "post all org files in the directory"
107
105
 
108
106
  def all(*argv)
109
- Dir.glob("*.org").each do |org|
110
- puts org.blue
111
- if File.read(org).match(/#\+qiita_(.+)/)
112
- system ("qiita post #{org} open") if File.read(org).match(/#\+(.+)_public/)
113
- system ("qiita post #{org} teams") if File.read(org).match(/#\+(.+)_teams/)
114
- system ("qiita post #{org} private") if File.read(org).match(/#\+(.+)_private/)
115
- else
116
- system ("qiita post #{org}")
117
- end
118
- end
107
+ QiitaAll.new(argv).run()
119
108
  end
120
109
 
121
110
  desc "list [qiita/teams]", "view qiita report list"
@@ -1,7 +1,8 @@
1
1
  {
2
- "name": "",
3
- "email": "",
4
- "access_token": "",
5
- "teams_url": "",
6
- "ox_qmd_load_path": "~/.emacs.d/site_lisp/ox-qmd"
7
- }
2
+ "name": "",
3
+ "email": "",
4
+ "access_token": "",
5
+ "teams_url": "",
6
+ "display": "open",
7
+ "ox_qmd_load_path": "~/.emacs.d/site_lisp/ox-qmd"
8
+ }
@@ -0,0 +1,29 @@
1
+ require "colorize"
2
+ require "qiita_org/error_message.rb"
3
+
4
+ class AccessQiita
5
+ def initialize(access_token, qiita, path)
6
+ @access_token = access_token
7
+ @qiita = qiita
8
+ @path = path
9
+ end
10
+
11
+ def access_qiita()
12
+ uri = URI.parse(@qiita + @path)
13
+
14
+ headers = { "Authorization" => "Bearer #{@access_token}",
15
+ "Content-Type" => "application/json" }
16
+
17
+ begin
18
+ response = URI.open(
19
+ "#{uri}",
20
+ "Authorization" => "#{headers["Authorization"]}",
21
+ )
22
+ rescue => e
23
+ ErrorMessage.new().qiita_access_error(e)
24
+ else
25
+ items = JSON.parse(response.read)
26
+ return items
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,50 @@
1
+ require "colorize"
2
+
3
+ class QiitaAll
4
+ def initialize(argv)
5
+ check_options(argv)
6
+ @files = Dir.glob("*.org")
7
+ p @files
8
+ end
9
+
10
+ def run()
11
+ @files.each do |file|
12
+ unless @exclude_files.empty?
13
+ next if @exclude_files.include?(file)
14
+ #if @exclude_files.include?(file)
15
+ # next
16
+ #end
17
+ end
18
+
19
+ unless @mode
20
+ puts file.blue
21
+ if File.read(file).match(/#\+qiita_(.+)/)
22
+ system ("qiita post #{file} open") if File.read(file).match(/#\+(.+)_public/)
23
+ system ("qiita post #{file} teams") if File.read(file).match(/#\+(.+)_teams/)
24
+ system ("qiita post #{file} private") if File.read(file).match(/#\+(.+)_private/)
25
+ else
26
+ system ("qiita post #{file}")
27
+ end
28
+ else
29
+ puts "qiita post #{file} #{@mode}".blue
30
+ system "qiita post #{file} #{@mode}"
31
+ end
32
+ end
33
+ end
34
+
35
+ def check_options(string)
36
+ ["teams", "private", "public"].each do |i|
37
+ if string.include?(i)
38
+ @mode = i
39
+ break
40
+ else
41
+ @mode = false
42
+ end
43
+ end
44
+
45
+ @exclude_files = []
46
+ if string.include?("--exclude")
47
+ @exclude_files = string.grep(/.org/)
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,98 @@
1
+ require "colorize"
2
+ require "qiita_org/error_message.rb"
3
+
4
+ class QiitaBase
5
+ def initialize()
6
+
7
+ end
8
+
9
+ def check_pc_os()
10
+ if system "sw_vers"
11
+ return os = "mac"
12
+ elsif system "wmic.exe os get caption"
13
+ return os = "windows"
14
+ else
15
+ return nil
16
+ end
17
+ end
18
+
19
+ def pick_up_option(src)
20
+ lines = File.readlines(src)
21
+
22
+ lines.each do |line|
23
+ m = []
24
+ if m = line.match(/\#\+qiita_(.+): (.+)/)
25
+ option = m[1]
26
+ unless option == "public" || option == "teams" || option == "private"
27
+ next
28
+ end
29
+ return option
30
+ end
31
+ end
32
+ return option = "private"
33
+ end
34
+
35
+ def search_conf_path(dir, home)
36
+ while dir != home
37
+ if File.exists?(File.join(dir, ".qiita.conf"))
38
+ return dir
39
+ else
40
+ dir = dir.match(/(.+)\//)[1]
41
+ end
42
+ end
43
+ return dir
44
+ end
45
+
46
+ def select_access_path(mode, teams_url)
47
+ case mode
48
+ when "teams"
49
+ qiita = teams_url
50
+ path = "api/v2/items?page=1&per_page=100"
51
+ else
52
+ qiita = "https://qiita.com/"
53
+ path = "api/v2/authenticated_user/items?page=1&per_page=100"
54
+ end
55
+ return qiita, path
56
+ end
57
+
58
+ def set_config()
59
+ conf_dir = search_conf_path(Dir.pwd, Dir.home)
60
+ lib = File.expand_path("../../../lib", __FILE__)
61
+ if conf_dir != Dir.home
62
+ puts "config file path: #{conf_dir.gsub(Dir.home, "~")}".green
63
+ else
64
+ puts "config file path: #{conf_dir}".green
65
+ end
66
+
67
+ conf_path = File.join(conf_dir, ".qiita.conf")
68
+ conf = JSON.load(File.read(conf_path))
69
+ access_token = conf["access_token"]
70
+ teams_url = conf["teams_url"]
71
+ display = conf["display"]
72
+ ox_qmd_load_path = File.join(lib, "qiita_org", "ox-qmd", "ox-qmd")
73
+
74
+ ErrorMessage.new().access_token_error(access_token)
75
+
76
+ return access_token, teams_url, display, ox_qmd_load_path
77
+ end
78
+
79
+ def file_open(os, order)
80
+ if os == "mac"
81
+ system "open #{order}"
82
+ elsif os == "windows"
83
+ system "explorer.exe #{order}"
84
+ else
85
+ system "xdg-open #{order}"
86
+ end
87
+ end
88
+
89
+ def get_report_id(src, option)
90
+ conts = File.read(src)
91
+ if conts.match?(/^\#\+qiita_#{option}:\s(.+)/)
92
+ id = conts.match(/\#\+qiita_#{option}: (.+)/)[1]
93
+ else
94
+ id = nil
95
+ end
96
+ return id
97
+ end
98
+ end
@@ -3,5 +3,6 @@
3
3
  "email": "",
4
4
  "access_token": "",
5
5
  "teams_url": "",
6
+ "display": "open",
6
7
  "ox_qmd_load_path": "~/.emacs.d/site_lisp/ox-qmd"
7
8
  }