furikake 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1dc24060cb48d20f318e9708bdca79670973133a24bf84d12469d06bf6fb3da4
4
- data.tar.gz: d3fca279477b44a2c9fc7d01433233e7835604dca80c06febde9400a30c85ce8
3
+ metadata.gz: ce60a7c44eb3ad74187dcba6f5f774088b871d7322754e228783adcf18e987ad
4
+ data.tar.gz: beae7b1859b739092d464d876c05fd180e160d0727bf348a758bf9174a9fd6b9
5
5
  SHA512:
6
- metadata.gz: 63487ae727c37dc63f5536e1e55ab85ef5cb575a584d9d50eb8e0d87cb6ae2300532198ed3da9a1a81ab98c3bdc4e431e87545e4ad1c39f8c87b6bf6c0e8e723
7
- data.tar.gz: cc0d57546d963fc12cb4d751832f41291abb08123c0833f5deb38b6552490546fe1b6534e3c312a07694082dd3e913202d9e10b500d6e4ddccf03851134e6452
6
+ metadata.gz: 5a7dcc762d3dee0acd881c952c70c0453fc1fef651a94ccd5300141dc441125fd768593a75b8b0942782563dfd1813ae3bc993f2f96bd9bb3ecee7a68a546355
7
+ data.tar.gz: 8bd4226cdb20aeb9dcef8525565f2553bc3919d72973909932e7855230ee3d10e2a38fa8d58342ffe9d89100e5b2f6ee3a53e1073c17698251841d0c1eeac0ac
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- furikake (0.0.3)
4
+ furikake (0.0.4)
5
5
  aws-sdk
6
6
  backlog_kit
7
7
  markdown-tables
data/README.md CHANGED
@@ -99,9 +99,38 @@ bundle exec furikake publish
99
99
 
100
100
  ## Tips
101
101
 
102
- ### リソース追加
102
+ ### 検索対象リソース追加 (addons ディレクトリ)
103
103
 
104
- `lib/furikake/resources/` 以下に任意のファイル名でコードを追加することで, ドキュメント化する対象のリソースを追加することが出来ます.
104
+ furikake コマンドを実行するカレントディレクトリに `addons` ディレクトリを作成し, 以下のようなコードを指定されたファイル名で作成することで, 検索対象リソースに追加することが可能です. (`setup` コマンドで自動的に生成することも可能です.)
105
+
106
+ ```ruby
107
+ module Furikake::Resources
108
+ module Addons
109
+ class Example
110
+ def self.report(format = nil)
111
+ values = [['value1', 'value2'], ['value3', 'value4']]
112
+ contents = {
113
+ title: 'Example',
114
+ resources: [
115
+ {
116
+ subtitle: '',
117
+ header: ['Title1', 'Title2'],
118
+ resource: values
119
+ }
120
+ ]
121
+ }
122
+ Furikake::Formatter.shaping(format, contents)
123
+ end
124
+ end
125
+ end
126
+ end
127
+ ```
128
+
129
+ このスクリプトを `addons/furikake-resource-addon-${downcase_class_name}.rb` というファイル名で保存する必要があります.
130
+
131
+ ### 検索対象リソース追加
132
+
133
+ `lib/furikake/resources/` 以下に任意のファイル名でコードを追加することで, ドキュメント化する対象のリソースを追加することが可能です.
105
134
 
106
135
  ```ruby
107
136
  module Furikake
@@ -1,7 +1,16 @@
1
1
  module Furikake
2
2
  module Config
3
3
  def read_furikake_yaml
4
- open('.furikake.yml', 'r') { |f| YAML.load(f) }
4
+ # open('.furikake.yml', 'r') { |f| YAML.load(f) }
5
+ begin
6
+ YAML.load_file('.furikake.yml')
7
+ rescue Errno::ENOENT
8
+ puts '.furikake.yml が存在していません.'
9
+ exit 1
10
+ rescue => ex
11
+ puts '.furikake.yml の読み込みに失敗しました. ' + ex.message
12
+ exit 1
13
+ end
5
14
  end
6
15
  end
7
16
  end
@@ -10,9 +10,15 @@ module Furikake
10
10
  eval "documents.concat(Furikake::Resources::Addons::#{type_name.camelize}.report)"
11
11
  documents.concat("\n\n")
12
12
  else
13
- require "furikake/resources/#{type}"
14
- eval "documents.concat(Furikake::Resources::#{type.camelize}.report)"
15
- documents.concat("\n\n")
13
+ begin
14
+ require "furikake/resources/#{type}"
15
+ eval "documents.concat(Furikake::Resources::#{type.camelize}.report)"
16
+ documents.concat("\n\n")
17
+ rescue LoadError
18
+ puts "リソースタイプ: #{type} を読み込めませんでした."
19
+ rescue
20
+ puts "リソースタイプ: #{type} の情報を取得出来ませんでした."
21
+ end
16
22
  end
17
23
  end
18
24
  documents
@@ -20,14 +26,44 @@ module Furikake
20
26
 
21
27
  def self.load_resource_type
22
28
  type = []
29
+ config_defined_resources = load_config_resource_type
30
+ default_resources = load_default_resource_type
31
+ if default_resources == config_defined_resources
32
+ type.push(default_resources)
33
+ else
34
+ type.push(config_defined_resources)
35
+ end
36
+ type.push(load_addons_resource_type)
37
+ type.flatten
38
+ end
39
+
40
+ def self.load_default_resource_type
41
+ default_resource_type = []
23
42
  Dir.glob(File.dirname(__FILE__) + '/resources/*').each do |r|
24
- type << File.basename(r, '.rb') unless r.include?('stub')
43
+ default_resource_type << File.basename(r, '.rb') unless r.include?('stub')
25
44
  end
45
+ default_resource_type.sort
46
+ end
26
47
 
48
+ def self.load_addons_resource_type
49
+ addons_resource_type = []
27
50
  Dir.glob(Dir.pwd + '/addons/furikake-resource-addon-*').each do |r|
28
- type << File.basename(r, '.rb')
51
+ addons_resource_type << File.basename(r, '.rb')
52
+ end
53
+ addons_resource_type.sort
54
+ end
55
+
56
+ def self.load_config_resource_type(path = nil)
57
+ path = '.furikake.yml' if path.nil?
58
+ begin
59
+ config = YAML.load_file(path)
60
+ config['resources']['aws'].sort
61
+ rescue Errno::ENOENT
62
+ puts '.furikake.yml が存在していません.'
63
+ rescue => ex
64
+ puts '.furikake.yml の読み込みに失敗しました. ' + ex.message
65
+ exit 1
29
66
  end
30
- type
31
67
  end
32
68
  end
33
69
  end
@@ -4,11 +4,12 @@ module Furikake
4
4
  puts '[setup] creating .furikake.yml...'
5
5
  create_furikake_yaml unless File.exist?('.furikake.yml')
6
6
  puts '[setup] .furikake.yml already exists.'
7
+ setup_addons
7
8
  exit
8
9
  end
9
10
 
10
11
  def self.create_furikake_yaml
11
- resource_type = Furikake::Resource.load_type
12
+ resource_type = Furikake::Resource.load_default_resource_type
12
13
  yaml_contents = <<"EOS"
13
14
  resources:
14
15
  aws:
@@ -40,5 +41,56 @@ EOS
40
41
  puts '[setup] .furikake.yml created.'
41
42
  exit
42
43
  end
44
+
45
+ def self.setup_addons
46
+ puts '[setup] create `addons` directory? [y/n]'
47
+ response = STDIN.gets.chomp
48
+ case response
49
+ when /^[yY]/
50
+ self.create_addons_directory unless FileTest.exist?('addons')
51
+ puts '[setup] `addons` directory already exists.'
52
+ exit
53
+ when /^[nN]/, /^$/
54
+ puts '[setup] `addons` directory not created.'
55
+ exit 0
56
+ else
57
+ puts 'Please input y(Y) or n(N)'
58
+ setup_addons
59
+ end
60
+ end
61
+
62
+ def self.create_addons_directory
63
+ puts '[setup] creating `addons` directory.'
64
+ FileUtils.mkdir_p('addons')
65
+ f = File.open('addons/furikake-resource-addon-example.rb', 'w')
66
+ f.print <<EOS
67
+ module Furikake::Resources
68
+ module Addons
69
+ class Example
70
+ def self.report(format = nil)
71
+ values = [['value1', 'value2'], ['value3', 'value4']]
72
+ contents = {
73
+ title: 'Example',
74
+ resources: [
75
+ {
76
+ subtitle: '',
77
+ header: ['Title1', 'Title2'],
78
+ resource: values
79
+ }
80
+ ]
81
+ }
82
+ Furikake::Formatter.shaping(format, contents)
83
+ end
84
+
85
+ def self.get_resources
86
+ ... Please implement ...
87
+ end
88
+ end
89
+ end
90
+ end
91
+ EOS
92
+ puts '[setup] `addons` directory created.'
93
+ exit
94
+ end
43
95
  end
44
96
  end
@@ -1,3 +1,3 @@
1
1
  module Furikake
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furikake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - inokappa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-19 00:00:00.000000000 Z
11
+ date: 2018-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler