Class: Flow::Build::Service::Parser

Inherits:
Object
  • Object
show all
Includes:
Android, Nodejs, ObjectiveC, Ruby
Defined in:
lib/flow/build/service/parser.rb,
lib/flow/build/service/parser/ruby.rb,
lib/flow/build/service/parser/nodejs.rb,
lib/flow/build/service/parser/android.rb,
lib/flow/build/service/parser/objective_c.rb

Defined Under Namespace

Modules: Android, Nodejs, ObjectiveC, Ruby

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Nodejs

#nodejs_apply

Methods included from Ruby

#ruby_apply

Constructor Details

#initialize(object) ⇒ Parser

flow-api Project object



23
24
25
26
27
28
# File 'lib/flow/build/service/parser.rb', line 23

def initialize(object)
  @object  = object
  @scripts = {}

  apply
end

Instance Attribute Details

#objectObject (readonly)

Returns the value of attribute object.



19
20
21
# File 'lib/flow/build/service/parser.rb', line 19

def object
  @object
end

#scriptsObject

Returns the value of attribute scripts.



20
21
22
# File 'lib/flow/build/service/parser.rb', line 20

def scripts
  @scripts
end

Instance Method Details

#applyObject



37
38
39
40
41
42
43
44
45
46
47
# File 'lib/flow/build/service/parser.rb', line 37

def apply
  object.versions.each_with_index do |version, index|
    scripts[index] = [
      header,
      set_env,
      generate_git_script,
      generate_language_script(version),
      footer
    ].join("\n")
  end
end

#flow_cmd(sh, options) ⇒ Object

options = { echo: false, time: false, retry: false, time: false }



31
32
33
34
35
# File 'lib/flow/build/service/parser.rb', line 31

def flow_cmd(sh, options)
  sh = "flow_cmd " + sh.shellescape
  options.each { |k, v| sh += " --#{k}" if v }
  sh
end


53
54
55
# File 'lib/flow/build/service/parser.rb', line 53

def footer
  File.read(File.expand_path('../parser/templates/footer.sh', __FILE__))
end

#generate_git_scriptObject



61
62
63
64
65
66
67
68
69
# File 'lib/flow/build/service/parser.rb', line 61

def generate_git_script
  Git.new(
    git_url:   object.git_url,
    ssh_key:   object.private_key,
    repo_dir:  object.repo_dir,
    repo_name: object.repo_name,
    branch:    object.branch
  ).apply
end

#generate_language_script(version) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/flow/build/service/parser.rb', line 71

def generate_language_script(version)
  case object.language
  when 'ruby'
    ruby_apply(version)
  when 'android'
    # Android
  when 'objective_c'
    # Ios
  when 'nodejs'
    nodejs_apply(version)
    # Nodejs
  end
end

#headerObject



49
50
51
# File 'lib/flow/build/service/parser.rb', line 49

def header
  File.read(File.expand_path('../parser/templates/header.sh', __FILE__))
end

#set_envObject



57
58
59
# File 'lib/flow/build/service/parser.rb', line 57

def set_env
  Env.new(object.envs).apply
end