Class: Milkode::Updater

Inherits:
Object
  • Object
show all
Defined in:
lib/milkode/database/updater.rb

Defined Under Namespace

Classes: Result, ResultAccumulator

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(grndb, package_name) ⇒ Updater

Returns a new instance of Updater.



12
13
14
15
16
17
18
19
20
# File 'lib/milkode/database/updater.rb', line 12

def initialize(grndb, package_name)
  @grndb          = grndb
  @package_name   = package_name
  @package        = @grndb.packages[@package_name]
  @result         = Result.new
  @current_ignore = IgnoreChecker.new
  @options        = {}
  @out            = $stdout
end

Instance Attribute Details

#resultObject (readonly)

Returns the value of attribute result.



10
11
12
# File 'lib/milkode/database/updater.rb', line 10

def result
  @result
end

Instance Method Details

#enable_display_infoObject



72
73
74
# File 'lib/milkode/database/updater.rb', line 72

def enable_display_info
  @options[:display_info] = true
end

#enable_no_auto_ignoreObject



64
65
66
# File 'lib/milkode/database/updater.rb', line 64

def enable_no_auto_ignore
  @options[:no_auto_ignore] = true
end

#enable_no_cleanObject



92
93
94
# File 'lib/milkode/database/updater.rb', line 92

def enable_no_clean
  @options[:no_clean] = true      
end

#enable_silent_modeObject



68
69
70
# File 'lib/milkode/database/updater.rb', line 68

def enable_silent_mode
  @options[:silent_mode] = true
end

#enable_update_with_ctagsObject



84
85
86
# File 'lib/milkode/database/updater.rb', line 84

def enable_update_with_ctags
  @options[:update_with_ctags] = true      
end

#enable_update_with_ctags_eObject



88
89
90
# File 'lib/milkode/database/updater.rb', line 88

def enable_update_with_ctags_e
  @options[:update_with_ctags_e] = true      
end

#enable_update_with_git_pullObject



76
77
78
# File 'lib/milkode/database/updater.rb', line 76

def enable_update_with_git_pull
  @options[:update_with_git_pull] = true      
end

#enable_update_with_svn_updateObject



80
81
82
# File 'lib/milkode/database/updater.rb', line 80

def enable_update_with_svn_update
  @options[:update_with_svn_update] = true
end

#execObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/milkode/database/updater.rb', line 22

def exec
  # git pull
  if @options[:update_with_git_pull]
    Dir.chdir(@package.directory) { system("git pull") } if File.exist?(@package.directory)
  end
  
  # svn update
  if @options[:update_with_svn_update]
    Dir.chdir(@package.directory) { system("svn update") } if File.exist?(@package.directory)
  end

  # Add global .gitignore
  if @options[:global_gitignore]
    add_global_gitignore(@options[:global_gitignore])
  end

  # update
  update_dir(@package.directory)

  # cleanup
  unless @options[:no_clean]
    @grndb.documents.cleanup_package_name(@package_name, @current_ignore)
  end
  
  # ctags
  if @options[:update_with_ctags]
    Dir.chdir(@package.directory) { system("ctags -R") } if File.exist?(@package.directory)
  end

  # ctags -e
  if @options[:update_with_ctags_e]
    Dir.chdir(@package.directory) { system("ctags -R -e") } if File.exist?(@package.directory)
  end

  # Update time
  @grndb.packages.touch(@package_name, :updatetime) if @result.exist_update?
end

#set_global_gitignore(filename) ⇒ Object



96
97
98
# File 'lib/milkode/database/updater.rb', line 96

def set_global_gitignore(filename)
  @options[:global_gitignore] = filename 
end

#set_package_ignore(ignore_setting) ⇒ Object



60
61
62
# File 'lib/milkode/database/updater.rb', line 60

def set_package_ignore(ignore_setting)
  @current_ignore.add ignore_setting
end