expd 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3ac3eff3c26f1d7c2905e9d65098ded810145a72
4
+ data.tar.gz: 140b6f6dfc1d51fc56382b246b1bacb299575ebe
5
+ SHA512:
6
+ metadata.gz: 7ea115e8a27f68694e3accffed7f8ee2dab5563ef8d8b5bf4d80727b176f51085ab62faa775071d6da6a02760182d8f789907ae2135f5a6813fb49fa4ba9b925
7
+ data.tar.gz: cdd41894311b7f65738fff9103e9769023b10952414cf8dc5bf7e3a43239545db503ac719045ce6fb7150800254205c9558fba5d71c9567d2380d4aeebd997e2
checksums.yaml.gz.sig ADDED
@@ -0,0 +1 @@
1
+ �SM�����ggU�������E��+JD-�g�YK�;/K�����=����ߕ���/~o#T�K;�ۻ޲�u ��ͪ���P�p��hQ_⹆FhZ|_����%@>��p���J���ĸP9�}��� bͽ{�����V@�5�{�8��o�s3�]�t�.ї̃|E����!.5���W����k� ��
data/bin/expd ADDED
@@ -0,0 +1,38 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require "expd"
4
+ require "trollop"
5
+
6
+ opts = Trollop.options do
7
+ version "expd #{Expd.version}"
8
+ banner <<-EOS
9
+ Expd is a command-line text snippet expander.
10
+
11
+ Usage:
12
+ expd [options] <snippet shortcut>
13
+
14
+ Where [options] are:
15
+ EOS
16
+
17
+ opt :add, "Add a text snippet from STDIN"
18
+ opt :remove, "Remove a text snippet"
19
+ opt :copy, "Copy the expanded text in the clipboard", :default => true
20
+ end
21
+
22
+ Trollop.die "Please provide a snippet shortcut" if ARGV.empty?
23
+
24
+ conf = Expd::Config.defaults
25
+ word = ARGV.first
26
+
27
+ unless opts[:remove] || opts[:add]
28
+ exp = Expd::Expander.new conf.snippets
29
+ s = exp.expand word, :copy => opts[:copy]
30
+ puts s unless s.empty?
31
+ else
32
+ if opts[:remove]
33
+ conf.delete word
34
+ elsif opts[:add]
35
+ conf[:snippets][word] = STDIN.read
36
+ end
37
+ conf.save!
38
+ end
@@ -0,0 +1,33 @@
1
+ require "forwardable"
2
+ require "yaml"
3
+
4
+ module Expd
5
+ class Config
6
+ extend Forwardable
7
+
8
+ def_delegators :@conf, :[], :[]=, :delete, :fetch
9
+
10
+ def initialize(filename)
11
+ @filename = filename
12
+ @conf = {}
13
+ load_from_file!
14
+ end
15
+
16
+ def load_from_file!
17
+ @conf = YAML.load_file @filename if File.exist?(@filename)
18
+ @conf[:snippets] ||= {}
19
+ end
20
+
21
+ def save!
22
+ File.open(@filename, "w") { |f| f.write YAML.dump(@conf) }
23
+ end
24
+
25
+ def snippets
26
+ self[:snippets]
27
+ end
28
+
29
+ def self.defaults
30
+ new File.expand_path("~/.expd_snippets")
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ module Expd
2
+ class Expander
3
+ def initialize(snippets)
4
+ @snippets = snippets
5
+ end
6
+
7
+ def expand(name, opts = {})
8
+ exp = @snippets.fetch(name, "").chomp
9
+ copy_to_clipboard exp if opts[:copy] && !exp.empty?
10
+ exp
11
+ end
12
+
13
+ private
14
+
15
+ def copy_to_clipboard(text)
16
+ IO.popen(clipboard_cmd, "w") { |p| p.write text } unless text.empty?
17
+ end
18
+
19
+ def clipboard_cmd
20
+ @expand_cmd ||=
21
+ case RUBY_PLATFORM
22
+ when /darwin/
23
+ "pbcopy"
24
+ # I dunno what to use on Windows
25
+ else
26
+ "xclip -i"
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,5 @@
1
+ module Expd
2
+ def self.version
3
+ "0.1.0"
4
+ end
5
+ end
data/lib/expd.rb ADDED
@@ -0,0 +1,3 @@
1
+ require "expd/config"
2
+ require "expd/expander"
3
+ require "expd/version"
data/tests/tests.rb ADDED
@@ -0,0 +1,27 @@
1
+ ci = ENV["CI"] || ENV["CONTINUOUS_INTEGRATION"]
2
+ if ci
3
+ require "coveralls"
4
+ Coveralls.wear!
5
+ end
6
+
7
+ require "test/unit"
8
+ require "simplecov"
9
+
10
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter if ci
11
+ SimpleCov.start { add_filter "/tests/" }
12
+
13
+ require "expd"
14
+
15
+ class ExpdTests < Test::Unit::TestCase
16
+ def test_version
17
+ assert_match(/^\d+\.\d+\.\d+/, Expd.version)
18
+ end
19
+
20
+ def test_expand
21
+ exp = Expd::Expander.new({"foo" => "foobar"})
22
+ assert_equal "foobar", exp.expand("foo")
23
+ assert_equal "", exp.expand("bar")
24
+ end
25
+ end
26
+
27
+ exit Test::Unit::AutoRunner.run
data.tar.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ l��'���O�T��\绺���8K��V�z��-��H�g�|2�?;���A��Ǎ�S�7�� 5�"��q�d��~�X��R��C�)��?��Ӷ���V�K��KpV?kX�3&6 2�A-�Q�WҾ,R^�}iB[#�$:ZBAR���mw���n{G)A�������#�
2
+ �P$�-�G�-�Yb/7��S™&�`
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: expd
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Baptiste Fontaine
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDaDCCAlCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA9MRAwDgYDVQQDDAdiYXRp
14
+ Zm9uMRUwEwYKCZImiZPyLGQBGRYFeWFob28xEjAQBgoJkiaJk/IsZAEZFgJmcjAe
15
+ Fw0xNTEyMjMwMTExMTZaFw0xNjEyMjIwMTExMTZaMD0xEDAOBgNVBAMMB2JhdGlm
16
+ b24xFTATBgoJkiaJk/IsZAEZFgV5YWhvbzESMBAGCgmSJomT8ixkARkWAmZyMIIB
17
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0en8u9i10EQtkp3SUnXnXo0W
18
+ UISZyvp2kS22c2/FXYg566dtfkp3pwBOZi3gvRYAKpmXAwbynOANdm2bfzQiG+Br
19
+ 0966dfY0SIbFuhaueJ8JUm5o/nxxCiKxuvCFs5899SJxyzmD3NNVzjTdrSU6UTgx
20
+ Q7K/r2MRYxBmPBbi8wdxyP1Ko36o9BJdLNrUiAVec1VXOlqA9Iw8CyrlG3V1snNl
21
+ efNVzZ+sMCkR73IyxRRwRgPws2jo2/8LfKcL+J3mz4ekBs4PoyOCWCnPlpBjAwkx
22
+ OzzDCjpxYbn/SYNHC8MxVdgap7jEX75ogkfpGOrAEdiPASnc2nFKqbJNxX7hCQID
23
+ AQABo3MwcTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU2BKQg2pq
24
+ izVT9CkLdQo+nHNlvpQwGwYDVR0RBBQwEoEQYmF0aWZvbkB5YWhvby5mcjAbBgNV
25
+ HRIEFDASgRBiYXRpZm9uQHlhaG9vLmZyMA0GCSqGSIb3DQEBBQUAA4IBAQBkPKEW
26
+ urPeZb+IHuqWMqpzL/42fU4QuVUYDswLq+V0tXwnHo+okAq00Xh0yr0OaDBvm0mW
27
+ al9ZGC0RzaSQa+9mPd0t39oaWdtY7TOxQX3OC3vxdZ794gqyQgNxOmajFl22NY01
28
+ vxMAeZOu+IC5s2pQyUG0Gsq2sRbquW1mj8OC8KI3WWcECqGFOIOdXYTsqVqhwcN1
29
+ OpgZkC/pnOJanbP2ex2OHjlwFlpQ2PPAhoIG3mU1HEYXBZuP7+DUgNNgpopX83A5
30
+ 0df+9hsqme8UngbwGqM1XgU4dUlXNaoHejAm/d9IrRPvqE2oFsS9ytHShth2bC43
31
+ LPBfw/xSG5R4RjMC
32
+ -----END CERTIFICATE-----
33
+ date: 2016-02-07 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: trollop
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '2.1'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '2.1'
49
+ - !ruby/object:Gem::Dependency
50
+ name: simplecov
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '0.11'
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.11'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '10.5'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '10.5'
77
+ - !ruby/object:Gem::Dependency
78
+ name: coveralls
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.8'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '0.8'
91
+ description: Expand text snippet from simple shortcuts on the command-line
92
+ email: batifon@yahoo.fr
93
+ executables:
94
+ - expd
95
+ extensions: []
96
+ extra_rdoc_files: []
97
+ files:
98
+ - bin/expd
99
+ - lib/expd.rb
100
+ - lib/expd/config.rb
101
+ - lib/expd/expander.rb
102
+ - lib/expd/version.rb
103
+ - tests/tests.rb
104
+ homepage: https://github.com/bfontaine/expd
105
+ licenses:
106
+ - MIT
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubyforge_project:
124
+ rubygems_version: 2.4.8
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: Text snippets command-line tool
128
+ test_files:
129
+ - tests/tests.rb
130
+ has_rdoc:
metadata.gz.sig ADDED
Binary file