furikake 0.0.3 → 0.0.4

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
  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