idcfcloud 0.2.2 → 1.1.1

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 (47) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +12 -0
  3. data/.rubocop.yml +12 -2
  4. data/README.md +30 -12
  5. data/idcfcloud.gemspec +12 -12
  6. data/lib/idcf/cli/command/morio.rb +4 -4
  7. data/lib/idcf/cli/conf/conf.yml +0 -6
  8. data/lib/idcf/cli/conf/const.rb +32 -29
  9. data/lib/idcf/cli/controller/base.rb +50 -23
  10. data/lib/idcf/cli/controller/compute.rb +15 -2
  11. data/lib/idcf/cli/controller/extend/command.rb +25 -2
  12. data/lib/idcf/cli/controller/extend/search_module.rb +0 -10
  13. data/lib/idcf/cli/controller/extend/util.rb +12 -0
  14. data/lib/idcf/cli/controller/include/client.rb +1 -1
  15. data/lib/idcf/cli/controller/include/command.rb +1 -1
  16. data/lib/idcf/cli/controller/include/util.rb +3 -5
  17. data/lib/idcf/cli/controller/include/validate.rb +1 -1
  18. data/lib/idcf/cli/extend/configure.rb +2 -4
  19. data/lib/idcf/cli/extend/update.rb +21 -21
  20. data/lib/idcf/cli/extend/update_file.rb +21 -10
  21. data/lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb +25 -9
  22. data/lib/idcf/cli/gem_ext/thor/init_util.rb +6 -3
  23. data/lib/idcf/cli/index.rb +17 -5
  24. data/lib/idcf/cli/lib/api.rb +5 -4
  25. data/lib/idcf/cli/lib/configure.rb +2 -2
  26. data/lib/idcf/cli/lib/convert/filter/field_filter.rb +9 -12
  27. data/lib/idcf/cli/lib/convert/filter/json_path_filter.rb +1 -1
  28. data/lib/idcf/cli/lib/convert/formatter/base.rb +1 -2
  29. data/lib/idcf/cli/lib/convert/formatter/csv_format.rb +15 -32
  30. data/lib/idcf/cli/lib/convert/formatter/json_format.rb +1 -1
  31. data/lib/idcf/cli/lib/convert/formatter/table_format.rb +2 -2
  32. data/lib/idcf/cli/lib/convert/formatter/xml_format.rb +1 -1
  33. data/lib/idcf/cli/lib/convert/helper.rb +16 -5
  34. data/lib/idcf/cli/lib/document.rb +45 -0
  35. data/lib/idcf/cli/lib/util/cli_file.rb +1 -1
  36. data/lib/idcf/cli/lib/util/cli_logger.rb +3 -3
  37. data/lib/idcf/cli/lib/util/ini_conf.rb +2 -2
  38. data/lib/idcf/cli/lib/util/input.rb +40 -5
  39. data/lib/idcf/cli/lib/util/yml_conf.rb +1 -1
  40. data/lib/idcf/cli/service/base.rb +6 -6
  41. data/lib/idcf/cli/service/ilb/base_server_for_protocol.rb +22 -18
  42. data/lib/idcf/cli/validate/custom/month_check_validator.rb +1 -1
  43. data/lib/idcf/cli/validate/custom/require_relation_validator.rb +2 -2
  44. data/lib/idcf/cli/validate/define/base.rb +3 -2
  45. data/lib/idcf/cli/version.rb +1 -1
  46. metadata +55 -68
  47. data/lib/idcf/cli/controller/cdn.rb +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 09cbeede1098617cb40e566cd20f240d6b2d0404
4
- data.tar.gz: d7a1709c7246eb5a56d83cb2b310830d40f4383a
2
+ SHA256:
3
+ metadata.gz: 2e85df53cf877b508edb0741ace4be89179fcd6b7186df2323a7d992dc91e53e
4
+ data.tar.gz: 9fb184070e033ad9fb6472a80eff05ff1d44a2cadde499afd8b53ad5868139a4
5
5
  SHA512:
6
- metadata.gz: e9f9c7a579f7772f72b190fce4e712e1b63dcb2144952b5e42d69faa31a7572e97aad5009b7ff933b9dd14ddc49f04f429dab5ba509c5bfc47a110cda1fcc8c1
7
- data.tar.gz: 8374e4292620361ca1e6e2eb798316dcaeb852cf810549062493ab2643049c4d03e995b9534aff6dbce7d4af7c5df63d264527b8aa3e6c0a3e613c2d640a102e
6
+ metadata.gz: 1b1f4a11375d35f81b6abc8dcbeb477bec8c5a3325fa92d334b233adf9e2cb2910d68d6f797084ce6788164df08386185cb118035be2e0609a4e5454efb8bba3
7
+ data.tar.gz: 7581a8ff47eef3af7a155c0faf9187580d3b3bb46f855a7bb7e26b8b13b6b379013e6510fb69f8527487926eb74542ce190e18bc2521884cfb9af0495353cbd5
@@ -12,11 +12,23 @@ engines:
12
12
  enabled: true
13
13
  rubocop:
14
14
  enabled: true
15
+ structure:
16
+ exclude_paths:
17
+ - 'test/**/*'
15
18
  ratings:
16
19
  paths:
17
20
  - "**.rb"
21
+ checks:
22
+ argument-count:
23
+ config:
24
+ threshold: 6
25
+ method-complexity:
26
+ config:
27
+ threshold: 9
28
+
18
29
  exclude_paths:
19
30
  - vendor/bundle
20
31
  - .idea
21
32
  - bin
22
33
  - doc
34
+ - output
@@ -28,7 +28,7 @@ LineLength:
28
28
  Exclude:
29
29
  - 'test/**/*'
30
30
  Style/ClassLength:
31
- Max: 150
31
+ Max: 160
32
32
  Exclude:
33
33
  - 'test/**/*'
34
34
  Style/ModuleLength:
@@ -38,4 +38,14 @@ Style/ModuleLength:
38
38
  ParameterLists:
39
39
  Max: 6
40
40
  Style/DoubleNegation:
41
- Enabled: false
41
+ Enabled: false
42
+ Style/SymbolArray:
43
+ Exclude:
44
+ - 'test/**/*'
45
+ Style/IndentHeredoc:
46
+ EnforcedStyle: active_support
47
+ Style/PercentLiteralDelimiters:
48
+ Exclude:
49
+ - 'test/**/*'
50
+ Lint/InterpolationCheck:
51
+ Enabled: false
data/README.md CHANGED
@@ -55,8 +55,9 @@ cat [attributes file path] | echo -e "'"$(cat)"'" | xargs -L1 idcfcloud
55
55
  | secret-key | | [Configuration file description] | Secret Key |
56
56
  | no-ssl | | | Not using SSL |
57
57
  | no-vssl | | | Not using Verify SSL |
58
- | json-path | | | Narrowing the data part of a return value using json-path<br/>https://github.com/joshbuddy/jsonpath |
59
- | fields | | | Limiting the return value to be displayed (applied only to the latest hash)<br/>Punctuation: comma (",") |
58
+ | json-path | j | | Narrowing the data part of a return value using json-path<br/>https://github.com/joshbuddy/jsonpath |
59
+ | fields | f | | Limiting the return value to be displayed (applied only to the latest hash)<br/>Punctuation: comma (",") |
60
+ | version | | [latest] | The API version to be used |
60
61
 
61
62
 
62
63
  #### How to Narrow Down (Examples)
@@ -69,14 +70,22 @@ idcfcloud your list_billing_history --json-path '$.data[?(@.month=="2017-10")]'
69
70
 
70
71
  [ILB](#ilb)
71
72
 
72
- [CDN](#cdn)
73
-
74
73
  [DNS](#dns)
75
74
 
76
75
  [Your](#your)
77
76
 
78
- ### Compute(Bata)<a name="compute"></a>
79
- \* If you encounter any problem, please contact us or file a pull request.
77
+ ### Common Features
78
+
79
+ versions
80
+
81
+ Get a supported API version.
82
+
83
+ ```code
84
+ $ idcfcloud your versions
85
+ ```
86
+
87
+
88
+ ### Compute<a name="compute"></a>
80
89
 
81
90
  http://docs.idcf.jp/cloud/api/
82
91
 
@@ -115,10 +124,6 @@ sslalgorithms_ids
115
124
  $ idcfcloud ilb sslalgorithms_ids
116
125
  ```
117
126
 
118
- ### CDN<a name="cdn"></a>
119
-
120
- https://www.idcf.jp/help/cache/docs/pdf/cache_api.pdf?cl=rd_0046
121
-
122
127
  ### DNS<a name="dns"></a>
123
128
 
124
129
  http://docs.idcf.jp/cloud/dns/#s_fid=4FEB16B56007BA5C-0BFB42ABA668ADA8
@@ -127,16 +132,29 @@ http://docs.idcf.jp/cloud/dns/#s_fid=4FEB16B56007BA5C-0BFB42ABA668ADA8
127
132
 
128
133
  http://docs.idcf.jp/cloud/billing/
129
134
 
130
- ## Development
135
+ ## Development && Test
131
136
 
132
137
  Running the following test code is possible, but not recommended nor supported. Run only a code of a target.
133
138
 
139
+ 🚨NOTE 🚨
140
+
141
+ - Be sure to specify `test/run_test.rb` before the test target.
142
+ - The test environment is not standalone. You need to apply for services and prepare your own environment.
143
+ At least an [ILB](https://www.idcf.jp/cloud/ilb/) is required to pass all tests.
144
+ - If you do not specify the region properly with the environment variable `TEST_REGION (default: jp-east)`, the test will not pass.
145
+
134
146
  ```code
135
- $ bundle exec ruby test/run_test.rb idcf/cli/controller/test_your.rb
147
+ $ TEST_REGION=your_region bundle exec ruby test/run_test.rb idcf/cli/controller/test_your.rb
136
148
  ```
137
149
 
138
150
  In order to avoid collapsed setting in ILB, make sure you understand how things work before running a code.
139
151
 
152
+ #### environments
153
+
154
+ |name|description|
155
+ |----|-----------|
156
+ |`TEST_REGION`|Region used in the test. (jp-east・jp-east-2・jp-west)|
157
+
140
158
  ## Contributing
141
159
 
142
160
  1. Fork it ( https://github.com/idcf/idcfcloud-cli/fork )
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'idcf/cli/version'
@@ -23,23 +22,24 @@ Gem::Specification.new do |spec|
23
22
  spec.bindir = 'exe'
24
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
24
  spec.require_paths = ['lib']
25
+ spec.required_ruby_version = '>= 2.5.0'
26
26
 
27
- spec.add_development_dependency 'bundler', '~> 1.14'
28
- spec.add_development_dependency 'rake', '~> 10.0'
27
+ spec.add_development_dependency 'bundler', '>= 1.14'
28
+ spec.add_development_dependency 'rake', '>= 10.0'
29
29
  spec.add_development_dependency 'test-unit', '~> 3.2', '>= 3.2.5'
30
30
  spec.add_development_dependency 'test-unit-notify', '~> 1.0', '>= 1.0.4'
31
31
 
32
- spec.add_dependency 'activemodel', '~> 4.2', '>= 4.2.3'
33
- spec.add_dependency 'activesupport', '~> 4.2', '>= 4.2.3'
34
- spec.add_dependency 'inifile', '~> 3.0', '>= 3.0.0'
35
- spec.add_dependency 'thor', '~> 0.19.4'
32
+ spec.add_dependency 'activemodel', '>= 5.2.4.1'
33
+ spec.add_dependency 'activesupport', '>= 5.2.4.1'
36
34
  spec.add_dependency 'builder', '~> 3.1'
35
+ spec.add_dependency 'CFPropertyList', '~> 2.3.5'
36
+ spec.add_dependency 'facter', '~> 2.5.1'
37
+ spec.add_dependency 'idcf-faraday_middleware', '~> 0.0.2'
38
+ spec.add_dependency 'idcf-json_hyper_schema', '~> 0.3.1'
39
+ spec.add_dependency 'inifile', '~> 3.0', '>= 3.0.0'
40
+ spec.add_dependency 'jsonpath', '~> 0.8.10'
37
41
  spec.add_dependency 'kosi', '~> 1.0', '>= 1.0.0'
38
42
 
39
43
  spec.add_dependency 'open_uri_redirections', '~> 0.2.1'
40
- spec.add_dependency 'idcf-json_hyper_schema', '~> 0.1.0'
41
- spec.add_dependency 'idcf-faraday_middleware', '~> 0.0.2'
42
- spec.add_dependency 'jsonpath', '~> 0.8.10'
43
- spec.add_dependency 'facter', '~> 2.5.1'
44
- spec.add_dependency 'CFPropertyList', '~> 2.3.5'
44
+ spec.add_dependency 'thor', '~> 0.19.4'
45
45
  end
@@ -11,7 +11,7 @@ module Idcf
11
11
  module Command
12
12
  # morio command
13
13
  class Morio
14
- MORIO_TXT = <<-'EOS'.freeze
14
+ MORIO_TXT = <<-TEXT.freeze
15
15
  -+sso+-
16
16
  .... -ssssssso`
17
17
  `-/ossssss+/. `ssssssso`
@@ -25,7 +25,7 @@ module Idcf
25
25
  ./osssssssssssssssssssssss+.
26
26
  `-:+oosssssssssssso+:.
27
27
  ``````````
28
- EOS
28
+ TEXT
29
29
  ATTRIBUTES_OFF = "\e[0m".freeze
30
30
  MORIO_COLOR = "\e[38;5;45m".freeze
31
31
  TITLE_COLOR = "\e[38;5;45m".freeze
@@ -81,7 +81,7 @@ module Idcf
81
81
  result << [k.to_s, data.body] if data.success?
82
82
  end
83
83
  end
84
- rescue
84
+ rescue StandardError => _e
85
85
  []
86
86
  end
87
87
 
@@ -108,7 +108,7 @@ module Idcf
108
108
  if content && content.class == Array && content.size == 2
109
109
  title = content[1].present? ? "#{content[0]} : " : content[0]
110
110
  txt = content[1].present? ? content[1] : ''
111
- add_str = format(" #{TITLE_COLOR}%s#{TEXT_COLOR}%s", title, txt)
111
+ add_str = format(" #{TITLE_COLOR}%<title>s#{TEXT_COLOR}%<txt>s", title: title, txt: txt)
112
112
  end
113
113
  "#{base_str}#{add_str}"
114
114
  end
@@ -18,12 +18,6 @@ your:
18
18
  default:
19
19
  schema: https://your.idcfcloud.com/api/v1/schema
20
20
  host: your.idcfcloud.com
21
- cdn:
22
- v0:
23
- region:
24
- default:
25
- schema: https://cdn.idcfcloud.com/api/v1/schema
26
- host: cdn.idcfcloud.com
27
21
  dns:
28
22
  v1:
29
23
  region:
@@ -1,4 +1,3 @@
1
- require 'date'
2
1
  require 'logger'
3
2
  require 'idcf/cli/version'
4
3
  module Idcf
@@ -6,32 +5,36 @@ module Idcf
6
5
  module Conf
7
6
  # const
8
7
  class Const
9
- VERSION_STR = "idcfcloud version #{Idcf::Cli::VERSION}".freeze
10
- now = DateTime.now.strftime('%Y%m%d%H%M%S%6N')
11
- dir_path = File.dirname(__FILE__)
12
- BASE_PATH = File.expand_path("#{dir_path}/../../../")
13
- LOCAL_ERROR_PREFIX = '[idcfcli]'.freeze
14
- HEADERS =
8
+ DOCUMENT_URL = 'https://www.idcf.jp/api-docs/apis/'.freeze
9
+ DOCUMENT_ID_SEP = '_'.freeze
10
+ DOCUMENT_SPACE_CONVERSION = '-'.freeze
11
+ DOCUMENT_ID_PREFIX_FORMAT = 'docs_%<service>s_reference%<version>s'.freeze
12
+ VERSION_STR = "idcfcloud version #{Idcf::Cli::VERSION}".freeze
13
+ now = Time.now.strftime('%Y%m%d%H%M%S%6N')
14
+ dir_path = File.dirname(__FILE__)
15
+ BASE_PATH = File.expand_path("#{dir_path}/../../../")
16
+ LOCAL_ERROR_PREFIX = '[idcfcli]'.freeze
17
+ HEADERS =
15
18
  {
16
19
  'User-Agent': "IDCF CLI v#{Idcf::Cli::VERSION}"
17
20
  }.freeze
18
- USER_DIR_PATH = '~/.idcfcloud'.freeze
19
- VALIDATOR_DIR_PATH = 'idcf/cli/validate/define'.freeze
20
- CODE_CONF_PATH = "#{BASE_PATH}/idcf/cli/conf/conf.yml".freeze
21
- USER_CONF_PATH = "#{USER_DIR_PATH}/config.ini".freeze
22
- USER_CONF_GLOBAL = "#{BASE_PATH}/../config/config.ini".freeze
23
- REGIONS = %w(jp-east jp-east-2 jp-west).freeze
24
- GLOBAL_CONF_ITEMS =
21
+ USER_DIR_PATH = '~/.idcfcloud'.freeze
22
+ VALIDATOR_DIR_PATH = 'idcf/cli/validate/define'.freeze
23
+ CODE_CONF_PATH = "#{BASE_PATH}/idcf/cli/conf/conf.yml".freeze
24
+ USER_CONF_PATH = "#{USER_DIR_PATH}/config.ini".freeze
25
+ USER_CONF_GLOBAL = "#{BASE_PATH}/../config/config.ini".freeze
26
+ REGIONS = %w[jp-east jp-east-2 jp-west].freeze
27
+ GLOBAL_CONF_ITEMS =
25
28
  {
26
29
  output_log: {
27
30
  default: 'Y',
28
- list: %w(Y n)
31
+ list: %w[Y n]
29
32
  },
30
33
  log_path: {
31
34
  default: '~/.idcfcloud/log'
32
35
  }
33
36
  }.freeze
34
- USER_CONF_ITEMS =
37
+ USER_CONF_ITEMS =
35
38
  {
36
39
  api_key: nil,
37
40
  secret_key: nil,
@@ -39,22 +42,22 @@ module Idcf
39
42
  list: REGIONS
40
43
  }
41
44
  }.freeze
42
- FULL_HREF_REGEXP = Regexp.new('\A[a-zA-Z]*:?//').freeze
43
- CMD_FILE_DIR = "#{BASE_PATH}/idcf/cli/conf/service".freeze
44
- CMD_FILE_EXT = 'json'.freeze
45
- SERVICE_PATH = 'idcf/cli/service'.freeze
46
- TEMPLATE_DIR = "#{BASE_PATH}/idcf/cli/templates".freeze
47
- OUT_DIR = "#{BASE_PATH}/../output".freeze
48
- COMP_PATHS = {
45
+ FULL_HREF_REGEXP = Regexp.new('\A[a-zA-Z]*:?//').freeze
46
+ CMD_FILE_DIR = "#{BASE_PATH}/idcf/cli/conf/service".freeze
47
+ CMD_FILE_EXT = 'json'.freeze
48
+ SERVICE_PATH = 'idcf/cli/service'.freeze
49
+ TEMPLATE_DIR = "#{BASE_PATH}/idcf/cli/templates".freeze
50
+ OUT_DIR = "#{BASE_PATH}/../output".freeze
51
+ COMP_PATHS = {
49
52
  bash: '~/.bash_profile',
50
53
  zsh: '~/.zprofile'
51
54
  }.freeze
52
- LOG_FILE_PREFIX = 'cli_log_'.freeze
53
- LOG_FILE_NAME = "#{LOG_FILE_PREFIX}#{now}.log".freeze
54
- LOG_LEVEL = Logger::INFO.freeze
55
- CLASSIFY_RULE = [
56
- %w(sslalgorithms_ids SslalgorithmsIds),
57
- %w(dns Dns)
55
+ LOG_FILE_PREFIX = 'cli_log_'.freeze
56
+ LOG_FILE_NAME = "#{LOG_FILE_PREFIX}#{now}.log".freeze
57
+ LOG_LEVEL = Logger::INFO.freeze
58
+ CLASSIFY_RULE = [
59
+ %w[sslalgorithms_ids SslalgorithmsIds],
60
+ %w[dns Dns]
58
61
  ].freeze
59
62
  end
60
63
  end
@@ -11,6 +11,7 @@ require_relative './extend/init'
11
11
  require_relative './include/init'
12
12
  require 'jsonpath'
13
13
  require 'idcf/cli/lib/include/recurring_calling'
14
+ require 'idcf/cli/lib/document'
14
15
 
15
16
  module Idcf
16
17
  module Cli
@@ -35,9 +36,13 @@ module Idcf
35
36
  class_option :no_vssl,
36
37
  desc: 'not use verify ssl'
37
38
  class_option :json_path,
38
- desc: 'data filter json_path'
39
+ aliases: '-j',
40
+ desc: 'data filter json_path'
39
41
  class_option :fields,
40
- desc: 'field filter'
42
+ aliases: '-f',
43
+ desc: 'field filter'
44
+ class_option :version,
45
+ desc: 'api version'
41
46
 
42
47
  attr_reader :config, :code_conf, :cmd, :m_classes
43
48
 
@@ -49,7 +54,11 @@ module Idcf
49
54
  attr_accessor :links
50
55
 
51
56
  def init(argv)
52
- o = Thor::Options.new(class_options).parse(argv)
57
+ o = Thor::Options.new(class_options).parse(argv)
58
+ region = get_region(o)
59
+ version = service_version(o)
60
+ Idcf::Cli::Lib::Document.init(region: region, version: version)
61
+
53
62
  register_schema_method(o)
54
63
 
55
64
  make_module_classes.each do |cn, c|
@@ -83,28 +92,38 @@ module Idcf
83
92
  name.underscore.split('/').last
84
93
  end
85
94
 
86
- # service version
95
+ # service version list
87
96
  #
88
- # @param o [Hash]
89
- # @return String
90
- def service_version(o)
91
- sn = service_name
92
- list = Idcf::Cli::Lib::Configure.get_code_conf(sn, o)
93
- result = o[:version].nil? ? list.keys.last : o[:version]
94
- msg = "not found input version[#{o[:version]}]"
95
- raise Idcf::Cli::Error::CliError, msg unless list.keys.include?(result)
96
- result
97
+ # @return [Array]
98
+ def service_versions(region)
99
+ [].tap do |result|
100
+ sn = service_name
101
+ Idcf::Cli::Lib::Configure.get_code_conf(sn).each do |k, v|
102
+ v['region'].each_key do |reg|
103
+ next unless region == reg
104
+ result << k
105
+ break
106
+ end
107
+ end
108
+ end
97
109
  end
98
110
  end
99
111
 
112
+ desc 'versions', 'versions'
113
+
114
+ def versions
115
+ list = self.class.service_versions(self.class.get_region(options))
116
+ puts make_result_str(make_result_data(list, options), options)
117
+ end
118
+
100
119
  protected
101
120
 
102
121
  def execute(cmd, *args)
103
122
  data = run(cmd, args, options)
104
- puts make_result_str(data, false, options)
123
+ puts make_result_str(data, options)
105
124
  Idcf::Cli::Lib::Util::CliLogger.delete
106
125
  Idcf::Cli::Lib::Util::CliLogger.cleaning(options)
107
- rescue => e
126
+ rescue StandardError => e
108
127
  self.class.error_exit(e)
109
128
  end
110
129
 
@@ -202,26 +221,34 @@ module Idcf
202
221
 
203
222
  def make_result_data(data, o)
204
223
  format = output_format(o, '')
205
- table_flag = %w(csv table).include?(format)
224
+ table_flag = %w[csv table].include?(format)
206
225
  helper = Idcf::Cli::Lib::Convert::Helper.new
207
226
 
208
- if helper.filter_target?(o)
209
- result = helper.filter(data, o, table_flag)
210
- elsif table_flag
211
- result = make_table_data(data)
212
- else
213
- result = make_base_response
214
- result[:data] = data
227
+ return data_filter(data, o, table_flag) if helper.filter_target?(o)
228
+ if table_flag
229
+ return data.class == Hash ? make_table_data(data) : data
215
230
  end
231
+ result = make_base_response
232
+ result[:data] = data
216
233
  result
217
234
  end
218
235
 
236
+ def data_filter(data, o, table_flag)
237
+ helper = Idcf::Cli::Lib::Convert::Helper.new
238
+ data = make_field_data(data) if helper.only_filter_fields?(o)
239
+ [Hash, Array].include?(data.class) ? helper.filter(data, o, table_flag) : data
240
+ end
241
+
219
242
  # table data
220
243
  # @param data [Hash]
221
244
  # @return Hash
222
245
  def make_table_data(data)
223
246
  data
224
247
  end
248
+
249
+ def make_field_data(data)
250
+ data
251
+ end
225
252
  end
226
253
  end
227
254
  end