Sha256: 39331948e8b5a614884b9d1891112d9cffcc532f18806a3f3b0f9a7f9d98fe4e

Contents?: true

Size: 913 Bytes

Versions: 9

Compression:

Stored size: 913 Bytes

Contents

module Tagger
  class CLI < Thor
    desc "generate", "an AnlayticsEvent file"
    option :platform, required: true
    option :out, required: true
    def generate(url)
      puts "Generate AnalyticsEvent.#{options[:platform] == 'ios' ? 'swift' : 'kotlin'}"

      # Download as CSV
      downloader = Tagger::Downloader.new(url)
      csv = downloader.download()

      # Parse CSV
      raw_file = CSV.parse(csv, headers: true)
      events = raw_file.map do |row|
        event_name = row[1]
        if event_name.nil?
          nil
        else
          param_names = row.headers[(3)..-1]
          param_values = row[(3)..-1]

          Tagger::Event.new(event_name, param_values.compact.size == 0 ? nil : Hash[param_names.zip param_values])
        end
      end.compact

      generator = Tagger::Generator.new(events, options[:platform].to_sym)
      generator.generate(options[:out])
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ai_tagger-0.2.0 lib/tagger/cli.rb
ai_tagger-0.1.10 lib/tagger/cli.rb
ai_tagger-0.1.9 lib/tagger/cli.rb
ai_tagger-0.1.8 lib/tagger/cli.rb
ai_tagger-0.1.7 lib/tagger/cli.rb
ai_tagger-0.1.6 lib/tagger/cli.rb
ai_tagger-0.1.5 lib/tagger/cli.rb
ai_tagger-0.1.4 lib/tagger/cli.rb
ai_tagger-0.1.3 lib/tagger/cli.rb