sublime_ps 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0135fda29da058d45b47b8c153ec8fc9b188bf53
4
+ data.tar.gz: c3538821a4400784c48e2c20337cfe9c84824426
5
+ SHA512:
6
+ metadata.gz: b06c4abc8309053d0111c374239499b9d65b4e91afcab64bf921106456442bdc6a75597c8897b51e62b2c8b4d927c0bb7a55d86452bac764da0125daf7631a62
7
+ data.tar.gz: 17ddcdb9c276ab766f605646ebd58887e3c6a7bb86b2815ed74466adfc61544afe7ef3dac1f58123228a1fdf70a7af2ce0abd9ff1ae7c03b63155dcd0fbbc45b
data/bin/sublime_ps ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
3
+ require 'sublime_ps'
4
+
5
+ SublimePS::CommandLineInterface.start(ARGV)
data/lib/sublime_ps.rb ADDED
@@ -0,0 +1,30 @@
1
+ require 'thor'
2
+
3
+ module SublimePS
4
+ module FilesManipulation
5
+ autoload :SublimePSPreferences, 'sublime_ps/files_manipulation/sublime_ps_preferences'
6
+ autoload :SublimePreferences, 'sublime_ps/files_manipulation/sublime_preferences'
7
+ autoload :Preset, 'sublime_ps/files_manipulation/preset'
8
+ end
9
+
10
+ class CommandLineInterface < Thor
11
+
12
+ desc 'apply_preset <present name>',
13
+ 'Add settings of PRESET_NAME on sublime preferences file'
14
+ long_desc <<-LONGDESC
15
+ Use this command to apply the preferences of '~/.sublime_ps/[PRESET_NAME].json'
16
+ on your SublimeText preferences file.
17
+ If sublime_ps don't found the SublimeText preferences, you can chenge the file
18
+ path on '~/.sublime_ps/sublime_ps.yml'.
19
+ LONGDESC
20
+ options :aliases => ['ap', 'a']
21
+ def apply_preset(preset_name)
22
+ preset_content = FilesManipulation::Preset.file_content(preset_name)
23
+ sublime_preferences = FilesManipulation::SublimePreferences.new
24
+ preferences_content = sublime_preferences.file_content
25
+ preferences_content.merge!(preset_content)
26
+ sublime_preferences.set_content(preferences_content)
27
+ puts "Preferences changed to preset '#{preset_name}' \e[32m[OK]\e[0m"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ require 'json'
2
+
3
+ module SublimePS::FilesManipulation
4
+ class Preset
5
+ @@path_dir = "#{File.expand_path('~')}/.sublime_ps"
6
+
7
+ def initialize(preset_name)
8
+ @preset_name = preset_name
9
+ end
10
+
11
+ def self.file_content(preset_name)
12
+ self.new(preset_name).load_file_content
13
+ end
14
+
15
+ def load_file_content
16
+ if File.exists?(preset_path(@preset_name))
17
+ JSON.parse(File.open(preset_path(@preset_name)).read)
18
+ else
19
+ puts "Preset '#{@preset_name}' not find on #{@@path_dir} dir \e[31m[FAIL]\e[0m"
20
+ exit
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def preset_path(preset_name)
27
+ "#{@@path_dir}/#{preset_name}.json"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,32 @@
1
+ require 'json'
2
+
3
+ module SublimePS::FilesManipulation
4
+ class SublimePreferences
5
+ def initialize
6
+ @sublime_ps_preferences = SublimePSPreferences.new
7
+ end
8
+
9
+ def file_content
10
+ JSON.parse(File.open(@sublime_ps_preferences.sublime_preferences_file_path).read)
11
+ end
12
+
13
+ def set_content(content)
14
+ remove_preference_file_content
15
+ add_set_preference_file_content(content)
16
+ end
17
+
18
+ private
19
+
20
+ def remove_preference_file_content
21
+ File.open(@sublime_ps_preferences.sublime_preferences_file_path, 'w') do |file|
22
+ file.truncate(0)
23
+ end
24
+ end
25
+
26
+ def add_set_preference_file_content(content_to_file)
27
+ output_file = File.open(@sublime_ps_preferences.sublime_preferences_file_path, 'w')
28
+ output_file.puts(JSON.pretty_generate(content_to_file))
29
+ output_file.close
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,45 @@
1
+ require 'yaml'
2
+ require 'fileutils'
3
+
4
+ module SublimePS::FilesManipulation
5
+ class SublimePSPreferences
6
+ @@home_path = File.expand_path('~')
7
+ @@path = "#{@@home_path}/.sublime_ps/sublime_ps.yml"
8
+
9
+ def initialize
10
+ create_conf_file if conf_file_exist? == false
11
+ @conf_file = load_conf_file
12
+ end
13
+
14
+ def sublime_preferences_file_path
15
+ if File.exists?(@conf_file[:sublime_preferences_path])
16
+ @conf_file[:sublime_preferences_path]
17
+ else
18
+ puts "Sublime preferences file not find (see on #{@@path}) \e[31m[FAIL]\e[0m"
19
+ exit
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def conf_file_exist?
26
+ File.exists?(@@path)
27
+ end
28
+
29
+ def create_conf_file
30
+ FileUtils::mkdir_p("#{@@home_path}/.sublime_ps")
31
+ output = File.new(@@path, 'w')
32
+ output.puts(YAML.dump({ sublime_preferences_path: initial_sublime_preferences_path }))
33
+ output.close
34
+ puts "Create configuration file to sublime_ps (#{@@path}) \e[32m[OK]\e[0m"
35
+ end
36
+
37
+ def load_conf_file
38
+ YAML::load_file(@@path)
39
+ end
40
+
41
+ def initial_sublime_preferences_path
42
+ "#{@@home_path}/Library/Application\ Support/Sublime\ Text\ 3/Packages/User/Preferences.sublime-settings"
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "sublime_ps"
3
+ s.version = "0.1.0"
4
+ s.description = "SublimeText preferences switch"
5
+ s.summary = "A simple way to change preferences of SublimeText"
6
+ s.author = "Vinícius Almeida"
7
+ s.email = "vinialm88@gmail.com"
8
+ s.homepage = "https://github.com/viniciusalmeida/sublime_ps"
9
+ s.files = Dir["{lib/**/*.rb,bin/sublime_ps,*.gemspec}"]
10
+ s.metadata = {
11
+ "issue_tracker" => "https://github.com/viniciusalmeida/sublime_ps/issues"
12
+ }
13
+ s.executables = ['sublime_ps']
14
+ s.license = "MIT"
15
+ s.add_runtime_dependency(%q<thor>, ["~> 0.19.1"])
16
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sublime_ps
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Vinícius Almeida
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.19.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.19.1
27
+ description: SublimeText preferences switch
28
+ email: vinialm88@gmail.com
29
+ executables:
30
+ - sublime_ps
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/sublime_ps/files_manipulation/preset.rb
35
+ - lib/sublime_ps/files_manipulation/sublime_preferences.rb
36
+ - lib/sublime_ps/files_manipulation/sublime_ps_preferences.rb
37
+ - lib/sublime_ps.rb
38
+ - bin/sublime_ps
39
+ - sublime_ps.gemspec
40
+ homepage: https://github.com/viniciusalmeida/sublime_ps
41
+ licenses:
42
+ - MIT
43
+ metadata:
44
+ issue_tracker: https://github.com/viniciusalmeida/sublime_ps/issues
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project:
61
+ rubygems_version: 2.0.14
62
+ signing_key:
63
+ specification_version: 4
64
+ summary: A simple way to change preferences of SublimeText
65
+ test_files: []