encrypted_form_fields 0.2.1 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7b8c00fd7cdbb45af9950eb296c07bae97ae0086
4
- data.tar.gz: d877ed67bc524cd4ba545463aae0c6fc5eb1a669
3
+ metadata.gz: c32468212438ab6a7bae8e7b3e8603428eddcc79
4
+ data.tar.gz: d87272e1d881dcfcd7e4871810a37bcd2adb2f12
5
5
  SHA512:
6
- metadata.gz: b672199a0310c5e9f53cbe739674dac6085fe8febd0df628cda53a5ead6759414fecff905a73be146400f205ec95249adb93b3021421c108c1a8ffa377292823
7
- data.tar.gz: 5399529118553401d8f58b45a3b8b3aa15dfc6ed80c89a8bf79f45331ab8f630030b2ee170323d0f9ac8f104498b920f4e2aa6525cf58bd126a42a0faf73fbe7
6
+ metadata.gz: 5d557ffba1f1f081e014cde4fe7254aa895b9df3981a349687460f9ac05f6fcf468b4fe43d4b229e9da69324fa7ea2443e84ae6e17ba4b2951eb7683063d46c3
7
+ data.tar.gz: ba9eeaee15c3cc05a653f0103d095f86d4536849fc2a9635a113bb4457cb5080658704d7b4a2a644587cc1689cb40e61fd4b8640f61934089706b19a9d5afa86
@@ -0,0 +1,22 @@
1
+ AllCops:
2
+ Exclude:
3
+ - "encrypted_form_fields.gemspec"
4
+
5
+ Metrics/AbcSize:
6
+ Exclude:
7
+ - "test/**/*_test.rb"
8
+
9
+ Metrics/LineLength:
10
+ Max: 164
11
+
12
+ Style/Documentation:
13
+ Enabled: false
14
+
15
+ Style/ModuleFunction:
16
+ Enabled: false
17
+
18
+ Style/SpaceInsideHashLiteralBraces:
19
+ Enabled: true
20
+
21
+ Style/StringLiterals:
22
+ EnforcedStyle: double_quotes
@@ -2,19 +2,22 @@ language: ruby
2
2
  sudo: false
3
3
  cache: bundler
4
4
  gemfile:
5
- - gemfiles/rails_4.0.gemfile
6
- - gemfiles/rails_4.1.gemfile
7
5
  - gemfiles/rails_4.2.gemfile
6
+ - gemfiles/rails_5.0.gemfile
7
+ - gemfiles/rails_5.1.gemfile
8
+ - Gemfile
8
9
  rvm:
9
- - 2.0.0
10
- - 2.1.7
11
- - 2.2.3
12
- - jruby
13
- - jruby-9.0.1.0
14
- - rbx-2.5
10
+ - '2.2.6'
11
+ - '2.3.3'
12
+ - '2.4.1'
13
+ - jruby-9.1.8.0
15
14
  matrix:
16
15
  include:
17
- - rvm: 2.2.3
16
+ - rvm: '2.3.3'
17
+ gemfile: 'gemfiles/rails_4.0.gemfile'
18
+ - rvm: '2.3.3'
19
+ gemfile: 'gemfiles/rails_4.1.gemfile'
20
+ - rvm: '2.4.1'
18
21
  gemfile: gemfiles/rails_head.gemfile
19
22
  allow_failures:
20
23
  - gemfile: gemfiles/rails_head.gemfile
data/Appraisals CHANGED
@@ -10,6 +10,14 @@ appraise "rails-4.2" do
10
10
  gem 'rails', '~> 4.2.0'
11
11
  end
12
12
 
13
+ appraise "rails-5.0" do
14
+ gem 'rails', '~> 5.0.0'
15
+ end
16
+
17
+ appraise "rails-5.1" do
18
+ gem 'rails', '~> 5.1.0.beta1'
19
+ end
20
+
13
21
  appraise "rails-head" do
14
22
  gem 'rails', github: 'rails'
15
23
  gem 'arel', github: 'rails/arel'
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in encrypted_form_fields.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -1,7 +1,10 @@
1
- # EncryptedFormFields [![Build Status](https://travis-ci.org/lautis/encrypted_form_fields.png)](https://travis-ci.org/lautis/encrypted_form_fields)
1
+ # EncryptedFormFields
2
2
 
3
3
  Encrypted form fields for Rails apps.
4
4
 
5
+ [![Build Status](https://travis-ci.org/lautis/encrypted_form_fields.svg)](https://travis-ci.org/lautis/encrypted_form_fields)
6
+ [![Gem Version](https://badge.fury.io/rb/encrypted_form_fields.svg)](http://badge.fury.io/rb/encrypted_form_fields)
7
+
5
8
  ## Installation
6
9
 
7
10
  Add this line to your application's Gemfile:
@@ -12,16 +12,18 @@ Gem::Specification.new do |spec|
12
12
  spec.description = %q{Encrypted form fields for Rails}
13
13
  spec.homepage = "https://github.com/lautis/encrypted_form_fields"
14
14
  spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 1.9.3"
15
16
 
16
17
  spec.files = `git ls-files`.split($/)
17
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
20
  spec.require_paths = ["lib"]
20
21
 
21
- spec.add_runtime_dependency "actionpack", ">= 4.0", "< 6"
22
- spec.add_runtime_dependency "activesupport", ">= 4.0", "< 6"
22
+ spec.add_runtime_dependency "actionpack", ">= 4.0"
23
+ spec.add_runtime_dependency "activesupport", ">= 4.0"
23
24
  spec.add_development_dependency "rake"
24
25
  spec.add_development_dependency "bundler", "~> 1.3"
25
26
  spec.add_development_dependency "minitest"
26
27
  spec.add_development_dependency "appraisal", "~> 2.0"
28
+ spec.add_development_dependency "nokogiri", "~> 1.6"
27
29
  end
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 5.0.0"
6
+
7
+ gemspec :path => "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 5.1.0.beta1"
6
+
7
+ gemspec :path => "../"
@@ -1,3 +1,4 @@
1
+ # frozen-string-literal: true
1
2
  require "action_controller"
2
3
  require "action_view"
3
4
  require "active_support/message_encryptor"
@@ -6,7 +7,7 @@ require "encrypted_form_fields/version"
6
7
  require "encrypted_form_fields/dfs"
7
8
  require "encrypted_form_fields/encrypted_parameters"
8
9
  require "encrypted_form_fields/helpers/form_builder"
9
- require 'encrypted_form_fields/railtie' if defined?(Rails)
10
+ require "encrypted_form_fields/railtie" if defined?(Rails)
10
11
 
11
12
  module EncryptedFormFields
12
13
  class << self
@@ -15,18 +16,14 @@ module EncryptedFormFields
15
16
  @secret_key_base = key
16
17
  end
17
18
 
18
- def secret_key_base
19
- @secret_key_base
20
- end
19
+ attr_reader :secret_key_base
21
20
 
22
21
  def secret_token=(key)
23
22
  @encryptor = nil
24
23
  @secret_token = key
25
24
  end
26
25
 
27
- def secret_token
28
- @secret_token
29
- end
26
+ attr_reader :secret_token
30
27
 
31
28
  def prefix_name(name)
32
29
  first, rest = name.split("[", 2)
@@ -52,7 +49,7 @@ module EncryptedFormFields
52
49
 
53
50
  def encryptor
54
51
  @encryptor ||= begin
55
- key = ActiveSupport::KeyGenerator.new(secret_token).generate_key(secret_key_base)
52
+ key = ActiveSupport::KeyGenerator.new(secret_token).generate_key(secret_key_base, 32)
56
53
  ActiveSupport::MessageEncryptor.new(key)
57
54
  end
58
55
  end
@@ -1,3 +1,4 @@
1
+ # frozen-string-literal: true
1
2
  module EncryptedFormFields
2
3
  module Dfs
3
4
  extend self
@@ -1,3 +1,5 @@
1
+ # frozen-string-literal: true
2
+
1
3
  module EncryptedFormFields
2
4
  module EncryptedParameters
3
5
  # Decrypt encrypted parameters
@@ -1,4 +1,5 @@
1
- require 'action_view/helpers/tags/hidden_field'
1
+ # frozen-string-literal: true
2
+ require "action_view/helpers/tags/hidden_field"
2
3
 
3
4
  module EncryptedFormFields
4
5
  module Helpers
@@ -1,3 +1,4 @@
1
+ # frozen-string-literal: true
1
2
  module EncryptedFormFields
2
3
  module Helpers
3
4
  module FormBuilder
@@ -1,4 +1,5 @@
1
- require 'encrypted_form_fields/helpers/encrypted_field'
1
+ # frozen-string-literal: true
2
+ require "encrypted_form_fields/helpers/encrypted_field"
2
3
 
3
4
  module EncryptedFormFields
4
5
  module Helpers
@@ -1,3 +1,5 @@
1
+ # frozen-string-literal: true
2
+
1
3
  module EncryptedFormFields
2
4
  module Helpers
3
5
  module FormTagHelper
@@ -1,4 +1,4 @@
1
- # lib/my_gem/railtie.rb
1
+ # frozen-string-literal: true
2
2
  require "encrypted_form_fields/helpers/form_tag_helper"
3
3
  require "encrypted_form_fields/helpers/form_helper"
4
4
 
@@ -1,3 +1,3 @@
1
1
  module EncryptedFormFields
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.3".freeze
3
3
  end
@@ -1,15 +1,16 @@
1
- require 'test_helper'
1
+ # frozen-string-literal: true
2
+ require "test_helper"
2
3
 
3
4
  class EncryptedFormFieldsTest < MiniTest::Unit::TestCase
4
5
  def test_encrypting_parameters
5
- hash = EncryptedFormFields.encrypt_parameters({"foo" => "bar"})
6
+ hash = EncryptedFormFields.encrypt_parameters("foo" => "bar")
6
7
  decrypted = EncryptedFormFields.decrypt_and_verify(hash["foo"])
7
8
  assert_equal("bar", decrypted)
8
9
  end
9
10
 
10
11
  def test_decrypting_parameters
11
12
  value = EncryptedFormFields.encrypt_and_sign("bar")
12
- hash = EncryptedFormFields.decrypt_parameters({"foo" => {"0" => value}})
13
+ hash = EncryptedFormFields.decrypt_parameters("foo" => { "0" => value })
13
14
  assert_equal("bar", hash["foo"]["0"])
14
15
  end
15
16
  end
@@ -1,4 +1,5 @@
1
- require 'test_helper'
1
+ # frozen-string-literal: true
2
+ require "test_helper"
2
3
 
3
4
  class EncryptedParametersTest < MiniTest::Unit::TestCase
4
5
  def test_missing_encrypted_params
@@ -7,7 +8,7 @@ class EncryptedParametersTest < MiniTest::Unit::TestCase
7
8
  end
8
9
 
9
10
  def test_invalid_encrypted_params
10
- controller = MockController.new({"_encrypted" => {"key" => "value"}})
11
+ controller = MockController.new("_encrypted" => { "key" => "value" })
11
12
  assert_raises ActiveSupport::MessageVerifier::InvalidSignature do
12
13
  controller.encrypted_params
13
14
  end
@@ -15,13 +16,13 @@ class EncryptedParametersTest < MiniTest::Unit::TestCase
15
16
 
16
17
  def test_properly_encrypted_params
17
18
  value = EncryptedFormFields.encrypt_and_sign("value")
18
- controller = MockController.new({"_encrypted" => {"key" => value}})
19
- assert_equal({"key" => "value"}, controller.encrypted_params)
19
+ controller = MockController.new("_encrypted" => { "key" => value })
20
+ assert_equal({ "key" => "value" }, controller.encrypted_params)
20
21
 
21
- controller = MockController.new({"_encrypted" => {"key" => [value]}})
22
- assert_equal({"key" => ["value"]}, controller.encrypted_params)
22
+ controller = MockController.new("_encrypted" => { "key" => [value] })
23
+ assert_equal({ "key" => ["value"] }, controller.encrypted_params)
23
24
 
24
- controller = MockController.new({"_encrypted" => {"key" => {"nested" => value}}})
25
- assert_equal({"key" => {"nested" => "value"}}, controller.encrypted_params)
25
+ controller = MockController.new("_encrypted" => { "key" => { "nested" => value } })
26
+ assert_equal({ "key" => { "nested" => "value" } }, controller.encrypted_params)
26
27
  end
27
28
  end
@@ -1,5 +1,7 @@
1
- require 'test_helper'
2
- require 'encrypted_form_fields/helpers/form_helper'
1
+ # frozen-string-literal: true
2
+ require "test_helper"
3
+ require "nokogiri"
4
+ require "encrypted_form_fields/helpers/form_helper"
3
5
 
4
6
  class FormBuilderTest < MiniTest::Unit::TestCase
5
7
  def setup
@@ -13,11 +15,12 @@ class FormBuilderTest < MiniTest::Unit::TestCase
13
15
 
14
16
  def test_encrypted_form_tag
15
17
  form_builder = ActionView::Helpers::FormBuilder.new(:foo, @object, @template, {})
16
- tag = HTML::Document.new(form_builder.encrypted_field(:bar)).find(tag: "input")
17
- decrypted_value = EncryptedFormFields.decrypt_and_verify(tag.attributes["value"])
18
+ document = Nokogiri::HTML.fragment(form_builder.encrypted_field(:bar))
19
+ tag = document.css("input").first
20
+ decrypted_value = EncryptedFormFields.decrypt_and_verify(tag.attributes["value"].value)
18
21
  assert_equal @object.bar, decrypted_value
19
- assert_equal "_encrypted[foo][bar]", tag.attributes["name"]
20
- assert_equal "hidden", tag.attributes["type"]
21
- assert_equal "_encrypted_foo_bar", tag.attributes["id"]
22
+ assert_equal "_encrypted[foo][bar]", tag.attributes["name"].value
23
+ assert_equal "hidden", tag.attributes["type"].value
24
+ assert_equal "_encrypted_foo_bar", tag.attributes["id"].value
22
25
  end
23
26
  end
@@ -1,21 +1,25 @@
1
- require 'test_helper'
2
- require 'encrypted_form_fields/helpers/form_tag_helper'
1
+ # frozen-string-literal: true
2
+ require "test_helper"
3
+ require "nokogiri"
4
+ require "encrypted_form_fields/helpers/form_tag_helper"
3
5
 
4
6
  class FormTagHelperTest < ActionView::TestCase
5
7
  tests EncryptedFormFields::Helpers::FormTagHelper
6
8
 
7
9
  def test_encrypted_form_tag
8
- tag = HTML::Document.new(encrypted_field_tag "field", "value").find(tag: "input")
9
- decrypted_value = EncryptedFormFields.decrypt_and_verify(tag.attributes["value"])
10
+ document = Nokogiri::HTML.fragment(encrypted_field_tag("field", "value"))
11
+ tag = document.css("input").first
12
+ decrypted_value = EncryptedFormFields.decrypt_and_verify(tag.attributes["value"].value)
10
13
  assert_equal "value", decrypted_value
11
- assert_equal "_encrypted[field]", tag.attributes["name"]
12
- assert_equal "hidden", tag.attributes["type"]
13
- assert_equal "field", tag.attributes["id"]
14
+ assert_equal "_encrypted[field]", tag.attributes["name"].value
15
+ assert_equal "hidden", tag.attributes["type"].value
16
+ assert_equal "field", tag.attributes["id"].value
14
17
  end
15
18
 
16
19
  def test_symbol_form_field_name
17
- tag = HTML::Document.new(encrypted_field_tag :field, "value").find(tag: "input")
18
- decrypted_value = EncryptedFormFields.decrypt_and_verify(tag.attributes["value"])
19
- assert_equal "_encrypted[field]", tag.attributes["name"]
20
+ document = Nokogiri::HTML.fragment(encrypted_field_tag(:field, "value"))
21
+ tag = document.css("input").first
22
+ EncryptedFormFields.decrypt_and_verify(tag.attributes["value"].value)
23
+ assert_equal "_encrypted[field]", tag.attributes["name"].value
20
24
  end
21
25
  end
@@ -1,8 +1,9 @@
1
- ENV['RAILS_ENV'] = 'test'
2
- require 'minitest/autorun'
3
- require 'minitest/pride'
4
- require 'securerandom'
5
- require 'encrypted_form_fields'
1
+ # frozen-string-literal: true
2
+ ENV["RAILS_ENV"] = "test"
3
+ require "minitest/autorun"
4
+ require "minitest/pride"
5
+ require "securerandom"
6
+ require "encrypted_form_fields"
6
7
 
7
8
  EncryptedFormFields.secret_key_base = SecureRandom.hex
8
9
  EncryptedFormFields.secret_token = SecureRandom.hex
@@ -19,4 +20,8 @@ class MockController
19
20
  end
20
21
  end
21
22
 
23
+ if ActiveSupport::TestCase.respond_to?(:test_order=)
24
+ ActiveSupport::TestCase.test_order = :random
25
+ end
26
+
22
27
  MockController.send(:include, EncryptedFormFields::EncryptedParameters)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: encrypted_form_fields
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ville Lautanala
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-03 00:00:00.000000000 Z
11
+ date: 2017-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -17,9 +17,6 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '6'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +24,6 @@ dependencies:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '4.0'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '6'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: activesupport
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -37,9 +31,6 @@ dependencies:
37
31
  - - ">="
38
32
  - !ruby/object:Gem::Version
39
33
  version: '4.0'
40
- - - "<"
41
- - !ruby/object:Gem::Version
42
- version: '6'
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
@@ -47,9 +38,6 @@ dependencies:
47
38
  - - ">="
48
39
  - !ruby/object:Gem::Version
49
40
  version: '4.0'
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: '6'
53
41
  - !ruby/object:Gem::Dependency
54
42
  name: rake
55
43
  requirement: !ruby/object:Gem::Requirement
@@ -106,6 +94,20 @@ dependencies:
106
94
  - - "~>"
107
95
  - !ruby/object:Gem::Version
108
96
  version: '2.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: nokogiri
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.6'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.6'
109
111
  description: Encrypted form fields for Rails
110
112
  email:
111
113
  - lautis@gmail.com
@@ -114,6 +116,7 @@ extensions: []
114
116
  extra_rdoc_files: []
115
117
  files:
116
118
  - ".gitignore"
119
+ - ".rubocop.yml"
117
120
  - ".travis.yml"
118
121
  - Appraisals
119
122
  - Gemfile
@@ -124,6 +127,8 @@ files:
124
127
  - gemfiles/rails_4.0.gemfile
125
128
  - gemfiles/rails_4.1.gemfile
126
129
  - gemfiles/rails_4.2.gemfile
130
+ - gemfiles/rails_5.0.gemfile
131
+ - gemfiles/rails_5.1.gemfile
127
132
  - gemfiles/rails_head.gemfile
128
133
  - lib/encrypted_form_fields.rb
129
134
  - lib/encrypted_form_fields/dfs.rb
@@ -151,7 +156,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
156
  requirements:
152
157
  - - ">="
153
158
  - !ruby/object:Gem::Version
154
- version: '0'
159
+ version: 1.9.3
155
160
  required_rubygems_version: !ruby/object:Gem::Requirement
156
161
  requirements:
157
162
  - - ">="
@@ -159,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
164
  version: '0'
160
165
  requirements: []
161
166
  rubyforge_project:
162
- rubygems_version: 2.4.5.1
167
+ rubygems_version: 2.6.11
163
168
  signing_key:
164
169
  specification_version: 4
165
170
  summary: Encrypted form fields for Rails