skeevy-filters 1.0.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: f77d1aa6a6fa9bacf80fade0e8251f17c73ff5ac
4
+ data.tar.gz: d1cc1aafa04dbbdee3638427a167477499e2a235
5
+ SHA512:
6
+ metadata.gz: 864eef3bf3c41c7387b807d3a6c26745a9d3a7816359547bb03c5d781b17c0c0e74e0e362c41f202ee791302b60f01435b1a3329685c69b180cb2aa60501471a
7
+ data.tar.gz: b86e4cf38ee0b9f3a4afec4bbd0d0a46ca3b9bde563cb59ec1b88662ea2c6a72cce03351f71261a36d9ac6de5c3918a6de2b5b573012157b6b84287400abff79
data/.gitignore ADDED
@@ -0,0 +1,35 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /test/tmp/
9
+ /test/version_tmp/
10
+ /tmp/
11
+ /.idea/
12
+
13
+ ## Specific to RubyMotion:
14
+ .dat*
15
+ .repl_history
16
+ build/
17
+
18
+ ## Documentation cache and generated files:
19
+ /.yardoc/
20
+ /_yardoc/
21
+ /doc/
22
+ /rdoc/
23
+
24
+ ## Environment normalisation:
25
+ /.bundle/
26
+ /lib/bundler/man/
27
+
28
+ # for a library or gem, you might want to ignore these files since the code is
29
+ # intended to run in multiple environments; otherwise, check them in:
30
+ # Gemfile.lock
31
+ # .ruby-version
32
+ # .ruby-gemset
33
+
34
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
35
+ .rvmrc
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source "https://rubygems.org"
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,74 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ skeevy-filters (1.0.0)
5
+ skeevy (~> 1.0)
6
+ snappy
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ celluloid (0.15.2)
12
+ timers (~> 1.1.0)
13
+ coderay (1.1.0)
14
+ diff-lcs (1.2.5)
15
+ ffi (1.9.6)
16
+ formatador (0.2.5)
17
+ guard (2.11.1)
18
+ formatador (>= 0.2.4)
19
+ listen (~> 2.7)
20
+ lumberjack (~> 1.0)
21
+ nenv (~> 0.1)
22
+ notiffany (~> 0.0)
23
+ pry (>= 0.9.12)
24
+ shellany (~> 0.0)
25
+ thor (>= 0.18.1)
26
+ guard-compat (1.2.1)
27
+ guard-rspec (4.5.0)
28
+ guard (~> 2.1)
29
+ guard-compat (~> 1.1)
30
+ rspec (>= 2.99.0, < 4.0)
31
+ listen (2.8.5)
32
+ celluloid (>= 0.15.2)
33
+ rb-fsevent (>= 0.9.3)
34
+ rb-inotify (>= 0.9)
35
+ lumberjack (1.0.9)
36
+ method_source (0.8.2)
37
+ nenv (0.2.0)
38
+ notiffany (0.0.4)
39
+ nenv (~> 0.1)
40
+ shellany (~> 0.0)
41
+ pry (0.10.1)
42
+ coderay (~> 1.1.0)
43
+ method_source (~> 0.8.1)
44
+ slop (~> 3.4)
45
+ rb-fsevent (0.9.4)
46
+ rb-inotify (0.9.5)
47
+ ffi (>= 0.5.0)
48
+ rspec (3.2.0)
49
+ rspec-core (~> 3.2.0)
50
+ rspec-expectations (~> 3.2.0)
51
+ rspec-mocks (~> 3.2.0)
52
+ rspec-core (3.2.0)
53
+ rspec-support (~> 3.2.0)
54
+ rspec-expectations (3.2.0)
55
+ diff-lcs (>= 1.2.0, < 2.0)
56
+ rspec-support (~> 3.2.0)
57
+ rspec-mocks (3.2.0)
58
+ diff-lcs (>= 1.2.0, < 2.0)
59
+ rspec-support (~> 3.2.0)
60
+ rspec-support (3.2.1)
61
+ shellany (0.0.1)
62
+ skeevy (1.0.1)
63
+ slop (3.6.0)
64
+ snappy (0.0.11)
65
+ thor (0.19.1)
66
+ timers (1.1.0)
67
+
68
+ PLATFORMS
69
+ ruby
70
+
71
+ DEPENDENCIES
72
+ guard-rspec (~> 4.4)
73
+ rspec (~> 3.1)
74
+ skeevy-filters!
data/Guardfile ADDED
@@ -0,0 +1,44 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %(app lib config test spec feature)
6
+
7
+ ## Uncomment to clear the screen before every task
8
+ # clearing :on
9
+
10
+ # Note: The cmd option is now required due to the increasing number of ways
11
+ # rspec may be run, below are examples of the most common uses.
12
+ # * bundler: 'bundle exec rspec'
13
+ # * bundler binstubs: 'bin/rspec'
14
+ # * spring: 'bin/rspec' (This will use spring if running and you have
15
+ # installed the spring binstubs per the docs)
16
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
17
+ # * 'just' rspec: 'rspec'
18
+
19
+ guard :rspec, cmd: "bundle exec rspec" do
20
+ require "ostruct"
21
+
22
+ # Generic Ruby apps
23
+ rspec = OpenStruct.new
24
+ rspec.spec = ->(m) { "spec/#{m}_spec.rb" }
25
+ rspec.spec_dir = "spec"
26
+ rspec.spec_helper = "spec/spec_helper.rb"
27
+
28
+ watch(%r{^spec/.+_spec\.rb$})
29
+ watch(%r{^lib/(.+)\.rb$}) { |m|
30
+ rspec.spec.("lib/#{m[1]}")
31
+ }
32
+ watch(%r{^lib/skeevy/(.+)\.rb$}) { |m|
33
+ rspec.spec.("lib/skeevy/#{m[1]}")
34
+ rspec.spec.("lib/skeevy")
35
+ }
36
+
37
+ watch(%r{^lib/skeevy/filters/(.+)\.rb$}) { |m|
38
+ rspec.spec.("lib/skeevy/filters/#{m[1]}")
39
+ rspec.spec.("lib/skeevy")
40
+ }
41
+
42
+ watch(rspec.spec_helper) { rspec.spec_dir }
43
+
44
+ end
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ Skeevy Filters
2
+ ==============
3
+
4
+ A small collection of filters for Skeevy.
5
+
6
+ Requirements
7
+ -----------------
8
+
9
+ * skeevy 1.0+
10
+ * libsnappy
11
+
12
+ Installation
13
+ -----------------
14
+
15
+ Ensure libsnappy is installed on your machine; apt-get install libsnappy-dev on Linux; brew install snappy on OS X.
16
+
17
+ gem install skeevy-filters
18
+
19
+
20
+ Getting Started
21
+ -----------------
22
+
23
+ Start coding.
@@ -0,0 +1,5 @@
1
+ Bundler.require(:default)
2
+ require 'snappy'
3
+ require 'skeevy/filter'
4
+ require 'skeevy/filters/force_utf8_encoding'
5
+ require 'skeevy/filters/snappy_compression'
@@ -0,0 +1,17 @@
1
+ module Skeevy
2
+ module Filters
3
+ class ForceUtf8Encoding
4
+ include Skeevy::Filter
5
+
6
+ def filter_read(content:)
7
+ if content
8
+ content.force_encoding("utf-8")
9
+ end
10
+ end
11
+
12
+ def filter_write(content:)
13
+ content
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ module Skeevy
2
+ module Filters
3
+ class SnappyCompression
4
+ include Skeevy::Filter
5
+
6
+ def filter_write(content:)
7
+ Snappy.compress(content)
8
+ end
9
+
10
+ def filter_read(content:)
11
+ Snappy.uncompress(content)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ module Skeevy
2
+ module Filters
3
+ VERSION = "1.0.0".freeze
4
+ end
5
+ end
@@ -0,0 +1,25 @@
1
+ $LOAD_PATH << File.join(File.dirname(__FILE__), 'lib')
2
+ require 'skeevy/filters/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'skeevy-filters'
6
+ s.version = Skeevy::Filters::VERSION.dup
7
+ s.date = '2015-02-25'
8
+ s.summary = "Skeevy Filter Collection"
9
+ s.description = "A small collection of filters for use with Skeevy"
10
+ s.authors = ["Craig Waterman"]
11
+ s.email = 'craigwaterman@gmail.com'
12
+ s.homepage =
13
+ 'http://rubygems.org/gems/skeevy'
14
+ s.license = 'MIT'
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.require_paths = ['lib']
19
+
20
+ s.add_runtime_dependency 'skeevy', '~> 1.0'
21
+ s.add_runtime_dependency 'snappy'
22
+
23
+ s.add_development_dependency 'rspec', '~> 3.1'
24
+ s.add_development_dependency 'guard-rspec', '~> 4.4'
25
+ end
@@ -0,0 +1,15 @@
1
+ describe :snappy_compression do
2
+
3
+ let(:binary) { "Xxthe quick brown fox jumps over \x01\x1F\x1Clazy dog\x05\r\x9E,\x00".force_encoding('ASCII-8BIT') }
4
+ let(:utf8) { "Xxthe quick brown fox jumps over \u0001\u001F\u001Clazy dog\u0005\r\x9E,\u0000" }
5
+ let(:snappy) { Skeevy::Filters::ForceUtf8Encoding.new }
6
+
7
+ it "#filter_read forces UTF-8 encoding" do
8
+ expect(snappy.filter_read(content: binary)).to eq(utf8)
9
+ end
10
+
11
+ it "#filter_write passes-through values with no change" do
12
+ expect(snappy.filter_write(content: utf8)).to eq(utf8)
13
+ end
14
+
15
+ end
@@ -0,0 +1,15 @@
1
+ describe :snappy_compression do
2
+
3
+ let(:uncompressed) { "the quick brown fox jumps over the lazy dog " * 2 }
4
+ let(:compressed) { "Xxthe quick brown fox jumps over \x01\x1F\x1Clazy dog\x05\r\x9E,\x00".force_encoding('ASCII-8BIT') }
5
+ let(:snappy) { Skeevy::Filters::SnappyCompression.new }
6
+
7
+ it "#filter_read compresses as expected" do
8
+ expect(snappy.filter_read(content: compressed)).to eq(uncompressed)
9
+ end
10
+
11
+ it "#filter_write uncompresses as expected" do
12
+ expect(snappy.filter_write(content: uncompressed)).to eq(compressed)
13
+ end
14
+
15
+ end
@@ -0,0 +1,12 @@
1
+ Bundler.require(:default)
2
+
3
+ RSpec.configure do |config|
4
+ config.expect_with :rspec do |expectations|
5
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
6
+ end
7
+
8
+ config.mock_with :rspec do |mocks|
9
+ mocks.verify_partial_doubles = true
10
+ end
11
+
12
+ end
metadata ADDED
@@ -0,0 +1,116 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: skeevy-filters
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Craig Waterman
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-02-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: skeevy
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: snappy
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard-rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.4'
69
+ description: A small collection of filters for use with Skeevy
70
+ email: craigwaterman@gmail.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - ".gitignore"
76
+ - ".rspec"
77
+ - Gemfile
78
+ - Gemfile.lock
79
+ - Guardfile
80
+ - README.md
81
+ - lib/skeevy-filters.rb
82
+ - lib/skeevy/filters/force_utf8_encoding.rb
83
+ - lib/skeevy/filters/snappy_compression.rb
84
+ - lib/skeevy/filters/version.rb
85
+ - skeevy-filters.gemspec
86
+ - spec/lib/skeevy/filters/force_utf8_encoding_spec.rb
87
+ - spec/lib/skeevy/filters/snappy_compression_spec.rb
88
+ - spec/spec_helper.rb
89
+ homepage: http://rubygems.org/gems/skeevy
90
+ licenses:
91
+ - MIT
92
+ metadata: {}
93
+ post_install_message:
94
+ rdoc_options: []
95
+ require_paths:
96
+ - lib
97
+ required_ruby_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ requirements: []
108
+ rubyforge_project:
109
+ rubygems_version: 2.4.3
110
+ signing_key:
111
+ specification_version: 4
112
+ summary: Skeevy Filter Collection
113
+ test_files:
114
+ - spec/lib/skeevy/filters/force_utf8_encoding_spec.rb
115
+ - spec/lib/skeevy/filters/snappy_compression_spec.rb
116
+ - spec/spec_helper.rb