Class: Mushy::ReadFile

Inherits:
Flux
  • Object
show all
Defined in:
lib/mushy/fluxs/read_file.rb

Instance Attribute Summary

Attributes inherited from Flux

#config, #flow, #id, #masher, #parent_fluxs, #subscribed_to, #type

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Flux

#convert_this_to_an_array, #convert_to_symbolized_hash, #execute, #execute_single_event, #group_these_results, #guard, #ignore_these_results, inherited, #initialize, #join_these_results, #limit_these_results, #merge_these_results, #model_these_results, #outgoing_split_these_results, #shape_these, #sort_these_results, #standardize_these

Constructor Details

This class inherits a constructor from Mushy::Flux

Class Method Details

.detailsObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/mushy/fluxs/read_file.rb', line 5

def self.details
  {
    name: 'ReadFile',
    title: 'Read File',
    fluxGroup: { name: 'Files' },
    description: 'Read a file.',
    config: {
      file: {
              description: 'The file to read.',
              type:        'text',
              value:       'file.csv',
            },
      directory: {
              description: 'The directory in which to read the file. Leave blank for the current directory.',
              type:        'text',
              shrink:      true,
              value:       '',
            },
      key: {
             description: 'The key in the resulting event to return the contents of the file.',
             type:        'text',
             value:       'content',
           },
    },
    examples: {
      "Example" => {
                     description: 'Using this Flux to read the contents of a text file.',
                     input: {
                              file: "data.csv"
                            },
                     config: {
                               file: '{{file}}',
                               key: 'csvdata'
                             },
                     result: { csvdata: 'a,b,c\nd\n\e\f'}
                   },
    }
  }
end

Instance Method Details

#process(event, config) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/mushy/fluxs/read_file.rb', line 45

def process event, config
  file = config[:file]

  file = File.join(config[:directory], file) if config[:directory].to_s != ''

  content = File.open(file).read

  {
    config[:key] => content
  }
end