Class: BigKeeper::PodfileOperator

Inherits:
Object
  • Object
show all
Defined in:
lib/big_keeper/util/podfile_operator.rb

Overview

Operator for podfile

Instance Method Summary collapse

Instance Method Details

#find_and_lock(podfile, dictionary) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/big_keeper/util/podfile_operator.rb', line 96

def find_and_lock(podfile,dictionary)
  temp_file = Tempfile.new('.Podfile.tmp')
  begin
    File.open(podfile, 'r') do |file|
      file.each_line do |line|
        pod_model = PodfileDetector.get_pod_model(line)
        if pod_model != nil && pod_model.name != nil && dictionary[pod_model.name] != nil
            # p "#{pod_name},#{dictionary[pod_name]}"
            temp_file.puts generate_pod_config(pod_model.name,dictionary[pod_model.name],pod_model.comment)
        else
            temp_file.puts line
        end
      end
    end
    temp_file.close
    FileUtils.mv(temp_file.path, podfile)
  ensure
    temp_file.close
    temp_file.unlink
  end
end

#find_and_replace(podfile, module_name, module_type, source) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/big_keeper/util/podfile_operator.rb', line 35

def find_and_replace(podfile, module_name, module_type, source)
  temp_file = Tempfile.new('.Podfile.tmp')

  begin
    File.open(podfile, 'r') do |file|
      file.each_line do |line|
        if line.include?module_name
          temp_file.puts generate_module_config(module_name, module_type, source)
        else
          temp_file.puts line
        end
      end
    end
    temp_file.close
    FileUtils.mv(temp_file.path, podfile)
  ensure
    temp_file.close
    temp_file.unlink
  end
end

#has(podfile, module_name) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/big_keeper/util/podfile_operator.rb', line 9

def has(podfile, module_name)
  File.open(podfile, 'r') do |file|
    file.each_line do |line|
      if line.include?module_name
        return true
      end
    end
  end
  false
end

#modules_with_type(podfile, modules, type) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/big_keeper/util/podfile_operator.rb', line 20

def modules_with_type(podfile, modules, type)
  matched_modules = []
  File.open(podfile, 'r') do |file|
    file.each_line do |line|
      modules.each do |module_name|
        if line =~ /pod\s*'#{module_name}',#{ModuleType.regex(type)}/
          matched_modules << module_name
          break
        end
      end
    end
  end
  matched_modules
end

#podspec_change(podspec_file, version, module_name) ⇒ Object



118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/big_keeper/util/podfile_operator.rb', line 118

def podspec_change(podspec_file, version, module_name)
  temp_file = Tempfile.new(".#{module_name}.podspec")
  begin
    File.open(podspec_file, 'r') do |file|
      file.each_line do |line|
        if line.include?("s.version")
          temp_line = line
          if temp_line.split("=")[0].delete(" ") == "s.version"
            temp_file.puts "s.version = '#{version}'"
          else
            temp_file.puts line
          end
        else
            temp_file.puts line
        end
      end
    end
    temp_file.close
    FileUtils.mv(temp_file.path, podspec_file)
  ensure
    temp_file.close
    temp_file.unlink
  end
end

#replace_all_module_release(podfile, module_names, version) ⇒ Object



87
88
89
90
91
92
93
94
# File 'lib/big_keeper/util/podfile_operator.rb', line 87

def replace_all_module_release(podfile, module_names, version)
  module_names.each do |module_name|
    PodfileOperator.new.find_and_replace(podfile,
                                         module_name,
                                         ModuleType::GIT,
                                         GitInfo.new(BigkeeperParser.module_git(module_name), GitType::TAG, version))
  end
end