paperclip-watermark 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.idea/.name ADDED
@@ -0,0 +1 @@
1
+ paperclip-watermark
data/.idea/.rakeTasks ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Settings><!--This file was automatically generated by Ruby plugin.
3
+ You are allowed to:
4
+ 1. Remove rake task
5
+ 2. Add existing rake tasks
6
+ To add existing rake tasks automatically delete this file and reload the project.
7
+ --><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Build paperclip-watermark-0.0.1.gem into the pkg directory" fullCmd="build" taksId="build" /><RakeTask description="Build and install paperclip-watermark-0.0.1.gem into system gems" fullCmd="install" taksId="install" /><RakeTask description="Create tag v0.0.1 and build and push paperclip-watermark-0.0.1.gem to Rubygems" fullCmd="release" taksId="release" /></RakeGroup></Settings>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
4
+ </project>
5
+
data/.idea/misc.xml ADDED
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-1.9.3-p385" project-jdk-type="RUBY_SDK" />
4
+ </project>
5
+
data/.idea/modules.xml ADDED
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/paperclip-watermark.iml" filepath="$PROJECT_DIR$/.idea/paperclip-watermark.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
9
+
@@ -0,0 +1,33 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="FacetManager">
4
+ <facet type="gem" name="Gem">
5
+ <configuration>
6
+ <option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
7
+ <option name="GEM_APP_TEST_PATH" value="$MODULE_DIR$/test" />
8
+ <option name="GEM_APP_LIB_PATH" value="" />
9
+ </configuration>
10
+ </facet>
11
+ </component>
12
+ <component name="NewModuleRootManager">
13
+ <content url="file://$MODULE_DIR$">
14
+ <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
15
+ </content>
16
+ <orderEntry type="inheritedJdk" />
17
+ <orderEntry type="sourceFolder" forTests="false" />
18
+ <orderEntry type="library" scope="PROVIDED" name="activemodel (v3.2.11, RVM: ruby-1.9.3-p385) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="activerecord (v3.2.11, RVM: ruby-1.9.3-p385) [gem]" level="application" />
20
+ <orderEntry type="library" scope="PROVIDED" name="activesupport (v3.2.11, RVM: ruby-1.9.3-p385) [gem]" level="application" />
21
+ <orderEntry type="library" scope="PROVIDED" name="arel (v3.0.2, RVM: ruby-1.9.3-p385) [gem]" level="application" />
22
+ <orderEntry type="library" scope="PROVIDED" name="builder (v3.0.4, RVM: ruby-1.9.3-p385) [gem]" level="application" />
23
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.2.4, RVM: ruby-1.9.3-p385) [gem]" level="application" />
24
+ <orderEntry type="library" scope="PROVIDED" name="climate_control (v0.0.3, RVM: ruby-1.9.3-p385) [gem]" level="application" />
25
+ <orderEntry type="library" scope="PROVIDED" name="cocaine (v0.5.1, RVM: ruby-1.9.3-p385) [gem]" level="application" />
26
+ <orderEntry type="library" scope="PROVIDED" name="i18n (v0.6.4, RVM: ruby-1.9.3-p385) [gem]" level="application" />
27
+ <orderEntry type="library" scope="PROVIDED" name="mime-types (v1.21, RVM: ruby-1.9.3-p385) [gem]" level="application" />
28
+ <orderEntry type="library" scope="PROVIDED" name="multi_json (v1.6.1, RVM: ruby-1.9.3-p385) [gem]" level="application" />
29
+ <orderEntry type="library" scope="PROVIDED" name="paperclip (v3.4.1, RVM: ruby-1.9.3-p385) [gem]" level="application" />
30
+ <orderEntry type="library" scope="PROVIDED" name="tzinfo (v0.3.36, RVM: ruby-1.9.3-p385) [gem]" level="application" />
31
+ </component>
32
+ </module>
33
+
@@ -0,0 +1,5 @@
1
+ <component name="DependencyValidationManager">
2
+ <state>
3
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
4
+ </state>
5
+ </component>
data/.idea/vcs.xml ADDED
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="" />
5
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
6
+ </component>
7
+ </project>
8
+
@@ -0,0 +1,349 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="57ed4f13-c205-462c-ba9d-805a5630e22a" name="Default" comment="" />
5
+ <ignored path="paperclip-watermark.iws" />
6
+ <ignored path=".idea/workspace.xml" />
7
+ <file path="/Dummy.txt" changelist="57ed4f13-c205-462c-ba9d-805a5630e22a" time="1363772326593" ignored="false" />
8
+ <file path="/paperclip-watermark.rb" changelist="57ed4f13-c205-462c-ba9d-805a5630e22a" time="1363778932450" ignored="false" />
9
+ <file path="/paperclip-watermark.gemspec" changelist="57ed4f13-c205-462c-ba9d-805a5630e22a" time="1363778703663" ignored="false" />
10
+ <file path="/engine.rb" changelist="57ed4f13-c205-462c-ba9d-805a5630e22a" time="1363779037779" ignored="false" />
11
+ <option name="TRACKING_ENABLED" value="true" />
12
+ <option name="SHOW_DIALOG" value="false" />
13
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
14
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
15
+ <option name="LAST_RESOLUTION" value="IGNORE" />
16
+ </component>
17
+ <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
18
+ <component name="CreatePatchCommitExecutor">
19
+ <option name="PATCH_PATH" value="" />
20
+ </component>
21
+ <component name="DaemonCodeAnalyzer">
22
+ <disable_hints />
23
+ </component>
24
+ <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
25
+ <component name="FileEditorManager">
26
+ <leaf>
27
+ <file leaf-file-name="paperclip-watermark.gemspec" pinned="false" current="false" current-in-tab="false">
28
+ <entry file="file://$PROJECT_DIR$/paperclip-watermark.gemspec">
29
+ <provider selected="true" editor-type-id="text-editor">
30
+ <state line="18" column="43" selection-start="823" selection-end="823" vertical-scroll-proportion="-207.0">
31
+ <folding />
32
+ </state>
33
+ </provider>
34
+ </entry>
35
+ </file>
36
+ <file leaf-file-name="watermark.rb" pinned="false" current="true" current-in-tab="true">
37
+ <entry file="file://$PROJECT_DIR$/lib/paperclip-watermark/watermark.rb">
38
+ <provider selected="true" editor-type-id="text-editor">
39
+ <state line="2" column="62" selection-start="217" selection-end="217" vertical-scroll-proportion="0.047817048">
40
+ <folding />
41
+ </state>
42
+ </provider>
43
+ </entry>
44
+ </file>
45
+ </leaf>
46
+ </component>
47
+ <component name="FindManager">
48
+ <FindUsagesManager>
49
+ <setting name="OPEN_NEW_TAB" value="false" />
50
+ </FindUsagesManager>
51
+ </component>
52
+ <component name="Git.Settings">
53
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
54
+ </component>
55
+ <component name="GitLogSettings">
56
+ <option name="myDateState">
57
+ <MyDateState />
58
+ </option>
59
+ </component>
60
+ <component name="IdeDocumentHistory">
61
+ <option name="changedFiles">
62
+ <list>
63
+ <option value="$PROJECT_DIR$/lib/paperclip-watermark/version.rb" />
64
+ <option value="$PROJECT_DIR$/lib/paperclip-watermark.rb" />
65
+ <option value="$PROJECT_DIR$/lib/paperclip-watermark/engine.rb" />
66
+ <option value="$PROJECT_DIR$/lib/paperclip-watermark/watermark.rb" />
67
+ <option value="$PROJECT_DIR$/paperclip-watermark.gemspec" />
68
+ </list>
69
+ </option>
70
+ </component>
71
+ <component name="ProjectFrameBounds">
72
+ <option name="x" value="-1" />
73
+ <option name="y" value="24" />
74
+ <option name="width" value="2050" />
75
+ <option name="height" value="1105" />
76
+ </component>
77
+ <component name="ProjectLevelVcsManager" settingsEditedManually="true">
78
+ <OptionsSetting value="true" id="Add" />
79
+ <OptionsSetting value="true" id="Remove" />
80
+ <OptionsSetting value="true" id="Checkout" />
81
+ <OptionsSetting value="true" id="Update" />
82
+ <OptionsSetting value="true" id="Status" />
83
+ <OptionsSetting value="true" id="Edit" />
84
+ <ConfirmationsSetting value="0" id="Add" />
85
+ <ConfirmationsSetting value="0" id="Remove" />
86
+ </component>
87
+ <component name="ProjectReloadState">
88
+ <option name="STATE" value="0" />
89
+ </component>
90
+ <component name="ProjectView">
91
+ <navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
92
+ <flattenPackages />
93
+ <showMembers />
94
+ <showModules />
95
+ <showLibraryContents />
96
+ <hideEmptyPackages />
97
+ <abbreviatePackageNames />
98
+ <autoscrollToSource />
99
+ <autoscrollFromSource />
100
+ <sortByType />
101
+ </navigator>
102
+ <panes>
103
+ <pane id="Scope" />
104
+ <pane id="ProjectPane">
105
+ <subPane>
106
+ <PATH>
107
+ <PATH_ELEMENT>
108
+ <option name="myItemId" value="paperclip-watermark" />
109
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
110
+ </PATH_ELEMENT>
111
+ </PATH>
112
+ <PATH>
113
+ <PATH_ELEMENT>
114
+ <option name="myItemId" value="paperclip-watermark" />
115
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
116
+ </PATH_ELEMENT>
117
+ <PATH_ELEMENT>
118
+ <option name="myItemId" value="paperclip-watermark" />
119
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
120
+ </PATH_ELEMENT>
121
+ </PATH>
122
+ <PATH>
123
+ <PATH_ELEMENT>
124
+ <option name="myItemId" value="paperclip-watermark" />
125
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
126
+ </PATH_ELEMENT>
127
+ <PATH_ELEMENT>
128
+ <option name="myItemId" value="paperclip-watermark" />
129
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
130
+ </PATH_ELEMENT>
131
+ <PATH_ELEMENT>
132
+ <option name="myItemId" value="lib" />
133
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
134
+ </PATH_ELEMENT>
135
+ </PATH>
136
+ </subPane>
137
+ </pane>
138
+ </panes>
139
+ </component>
140
+ <component name="PropertiesComponent">
141
+ <property name="options.splitter.main.proportions" value="0.3" />
142
+ <property name="WebServerToolWindowFactoryState" value="false" />
143
+ <property name="options.lastSelected" value="reference.settingsdialog.IDE.editor.colors.Font" />
144
+ <property name="options.searchVisible" value="true" />
145
+ <property name="options.splitter.details.proportions" value="0.2" />
146
+ </component>
147
+ <component name="RunManager">
148
+ <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
149
+ <predefined_log_file id="RUBY_RSPEC" enabled="true" />
150
+ <module name="" />
151
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
152
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
153
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
154
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
155
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
156
+ <envs />
157
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
158
+ <EXTENSION ID="JRubyRunConfigurationExtension" />
159
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
160
+ <COVERAGE_PATTERN ENABLED="true">
161
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
162
+ </COVERAGE_PATTERN>
163
+ </EXTENSION>
164
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
165
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
166
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
167
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
168
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
169
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
170
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
171
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
172
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
173
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
174
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
175
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
176
+ <method />
177
+ </configuration>
178
+ <configuration default="true" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest">
179
+ <predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
180
+ <module name="" />
181
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
182
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
183
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
184
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
185
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
186
+ <envs />
187
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
188
+ <EXTENSION ID="JRubyRunConfigurationExtension" />
189
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
190
+ <COVERAGE_PATTERN ENABLED="true">
191
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
192
+ </COVERAGE_PATTERN>
193
+ </EXTENSION>
194
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
195
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
196
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
197
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
198
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
199
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
200
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
201
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
202
+ <method />
203
+ </configuration>
204
+ <list size="0" />
205
+ </component>
206
+ <component name="ShelveChangesManager" show_recycled="false" />
207
+ <component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false">
208
+ <option name="USER" value="" />
209
+ <option name="PASSWORD" value="" />
210
+ <option name="mySSHConnectionTimeout" value="30000" />
211
+ <option name="mySSHReadTimeout" value="30000" />
212
+ <option name="LAST_MERGED_REVISION" />
213
+ <option name="MERGE_DRY_RUN" value="false" />
214
+ <option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
215
+ <option name="UPDATE_LOCK_ON_DEMAND" value="false" />
216
+ <option name="IGNORE_SPACES_IN_MERGE" value="false" />
217
+ <option name="DETECT_NESTED_COPIES" value="true" />
218
+ <option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
219
+ <option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
220
+ <option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
221
+ <option name="FORCE_UPDATE" value="false" />
222
+ <option name="IGNORE_EXTERNALS" value="false" />
223
+ <myIsUseDefaultProxy>false</myIsUseDefaultProxy>
224
+ </component>
225
+ <component name="TaskManager">
226
+ <task active="true" id="Default" summary="Default task">
227
+ <changelist id="57ed4f13-c205-462c-ba9d-805a5630e22a" name="Default" comment="" />
228
+ <created>1363772074456</created>
229
+ <updated>1363772074456</updated>
230
+ </task>
231
+ <servers />
232
+ </component>
233
+ <component name="ToolWindowManager">
234
+ <frame x="-1" y="24" width="2050" height="1105" extended-state="6" />
235
+ <editor active="false" />
236
+ <layout>
237
+ <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
238
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
239
+ <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
240
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
241
+ <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25074926" sideWeight="0.67611337" order="0" side_tool="false" content_ui="combo" />
242
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
243
+ <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
244
+ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
245
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32454363" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
246
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
247
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
248
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
249
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
250
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
251
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
252
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
253
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
254
+ </layout>
255
+ </component>
256
+ <component name="VcsContentAnnotationSettings">
257
+ <option name="myLimit" value="2678400000" />
258
+ </component>
259
+ <component name="VcsManagerConfiguration">
260
+ <option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
261
+ <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
262
+ <option name="CHECK_NEW_TODO" value="true" />
263
+ <option name="myTodoPanelSettings">
264
+ <value>
265
+ <are-packages-shown value="false" />
266
+ <are-modules-shown value="false" />
267
+ <flatten-packages value="false" />
268
+ <is-autoscroll-to-source value="false" />
269
+ </value>
270
+ </option>
271
+ <option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
272
+ <option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
273
+ <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
274
+ <option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
275
+ <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
276
+ <option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
277
+ <option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
278
+ <option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
279
+ <option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
280
+ <option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
281
+ <option name="DEFAULT_PATCH_EXTENSION" value="patch" />
282
+ <option name="SHORT_DIFF_HORISONTALLY" value="true" />
283
+ <option name="SHORT_DIFF_EXTRA_LINES" value="2" />
284
+ <option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
285
+ <option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
286
+ <option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
287
+ <option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
288
+ <option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="true" />
289
+ <option name="SHOW_DIRTY_RECURSIVELY" value="false" />
290
+ <option name="LIMIT_HISTORY" value="true" />
291
+ <option name="MAXIMUM_HISTORY_ROWS" value="1000" />
292
+ <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
293
+ <option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />
294
+ <option name="LAST_COMMIT_MESSAGE" />
295
+ <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
296
+ <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
297
+ <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
298
+ <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
299
+ <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
300
+ <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
301
+ <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
302
+ <option name="ACTIVE_VCS_NAME" />
303
+ <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
304
+ <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
305
+ <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
306
+ <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
307
+ </component>
308
+ <component name="XDebuggerManager">
309
+ <breakpoint-manager />
310
+ </component>
311
+ <component name="editorHistoryManager">
312
+ <entry file="file://$PROJECT_DIR$/lib/paperclip-watermark/version.rb">
313
+ <provider selected="true" editor-type-id="text-editor">
314
+ <state line="1" column="18" selection-start="44" selection-end="44" vertical-scroll-proportion="0.023908524">
315
+ <folding />
316
+ </state>
317
+ </provider>
318
+ </entry>
319
+ <entry file="file://$PROJECT_DIR$/lib/paperclip-watermark/engine.rb">
320
+ <provider selected="true" editor-type-id="text-editor">
321
+ <state line="2" column="34" selection-start="75" selection-end="75" vertical-scroll-proportion="0.047817048">
322
+ <folding />
323
+ </state>
324
+ </provider>
325
+ </entry>
326
+ <entry file="file://$PROJECT_DIR$/lib/paperclip-watermark.rb">
327
+ <provider selected="true" editor-type-id="text-editor">
328
+ <state line="3" column="0" selection-start="118" selection-end="118" vertical-scroll-proportion="0.07172557">
329
+ <folding />
330
+ </state>
331
+ </provider>
332
+ </entry>
333
+ <entry file="file://$PROJECT_DIR$/paperclip-watermark.gemspec">
334
+ <provider selected="true" editor-type-id="text-editor">
335
+ <state line="18" column="43" selection-start="823" selection-end="823" vertical-scroll-proportion="-207.0">
336
+ <folding />
337
+ </state>
338
+ </provider>
339
+ </entry>
340
+ <entry file="file://$PROJECT_DIR$/lib/paperclip-watermark/watermark.rb">
341
+ <provider selected="true" editor-type-id="text-editor">
342
+ <state line="2" column="62" selection-start="217" selection-end="217" vertical-scroll-proportion="0.047817048">
343
+ <folding />
344
+ </state>
345
+ </provider>
346
+ </entry>
347
+ </component>
348
+ </project>
349
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in paperclip-watermark.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Vik Ewoods
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Paperclip::Watermark
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'paperclip-watermark'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install paperclip-watermark
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,5 @@
1
+ require 'paperclip-watermark/version'
2
+ require 'paperclip-watermark/watermark'
3
+ require 'paperclip-watermark/watermark'
4
+
5
+ module PaperclipWatermark end
@@ -0,0 +1,6 @@
1
+ module PaperclipWatermark
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module PaperclipWatermark
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,100 @@
1
+ # from http://github.com/ng/paperclip-watermarking-app
2
+ # with modifications from http://exviva.posterous.com/watermarking-images-with-rails-3-and-papercli
3
+ # and even more modifications to ensure works with paperclip >= 2.3.8 and rails >= 3
4
+ #
5
+ # Note: In rails 3 paperclip processors are not automatically loaded.
6
+ # You must add the following above your model class definition:
7
+ #
8
+ # require 'paperclip_processors/watermark'
9
+
10
+ module Paperclip
11
+ class Watermark < Processor
12
+ # Handles watermarking of images that are uploaded.
13
+ attr_accessor :current_geometry, :target_geometry, :format, :whiny, :convert_options, :watermark_path, :overlay, :position
14
+
15
+ def initialize file, options = {}, attachment = nil
16
+ super
17
+ geometry = options[:geometry]
18
+ @file = file
19
+ if geometry.present?
20
+ @crop = geometry[-1,1] == '#'
21
+ end
22
+ @target_geometry = Geometry.parse geometry
23
+ @current_geometry = Geometry.from_file @file
24
+ @convert_options = options[:convert_options]
25
+ @whiny = options[:whiny].nil? ? true : options[:whiny]
26
+ @format = options[:format]
27
+ @watermark_path = options[:watermark_path]
28
+ @position = options[:position].nil? ? "SouthEast" : options[:position]
29
+ @overlay = options[:overlay].nil? ? true : false
30
+ @current_format = File.extname(@file.path)
31
+ @basename = File.basename(@file.path, @current_format)
32
+ end
33
+
34
+ # TODO: extend watermark
35
+
36
+ # Returns true if the +target_geometry+ is meant to crop.
37
+ def crop?
38
+ @crop
39
+ end
40
+
41
+ # Returns true if the image is meant to make use of additional convert options.
42
+ def convert_options?
43
+ not @convert_options.blank?
44
+ end
45
+
46
+ # Performs the conversion of the +file+ into a watermark. Returns the Tempfile
47
+ # that contains the new image.
48
+ def make
49
+ dst = Tempfile.new([@basename, @format].compact.join("."))
50
+ dst.binmode
51
+
52
+ command = "convert"
53
+ params = [fromfile]
54
+ params += transformation_command
55
+ params << tofile(dst)
56
+ begin
57
+ success = Paperclip.run(command, params.flatten.compact.collect{|e| "'#{e}'"}.join(" "))
58
+ rescue Paperclip::Errors::CommandNotFoundError
59
+ raise Paperclip::Errors::CommandNotFoundError, "There was an error resizing and cropping #{@basename}" if @whiny
60
+ end
61
+
62
+ if watermark_path
63
+ command = "composite"
64
+ params = %W[-gravity #{@position} #{watermark_path} #{tofile(dst)}]
65
+ params << tofile(dst)
66
+ begin
67
+ success = Paperclip.run(command, params.flatten.compact.collect{|e| "'#{e}'"}.join(" "))
68
+ rescue Paperclip::Errors::CommandNotFoundError
69
+ raise Paperclip::Errors::CommandNotFoundError, "There was an error processing the watermark for #{@basename}" if @whiny
70
+ end
71
+ end
72
+
73
+ dst
74
+ end
75
+
76
+ def fromfile
77
+ File.expand_path(@file.path)
78
+ end
79
+
80
+ def tofile(destination)
81
+ File.expand_path(destination.path)
82
+ end
83
+
84
+ def transformation_command
85
+ if @target_geometry.present?
86
+ scale, crop = @current_geometry.transformation_to(@target_geometry, crop?)
87
+ trans = %W[-resize #{scale}]
88
+ trans += %W[-crop #{crop} +repage] if crop
89
+ trans << convert_options if convert_options?
90
+ trans
91
+ else
92
+ scale, crop = @current_geometry.transformation_to(@current_geometry, crop?)
93
+ trans = %W[-resize #{scale}]
94
+ trans += %W[-crop #{crop} +repage] if crop
95
+ trans << convert_options if convert_options?
96
+ trans
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'paperclip-watermark/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "paperclip-watermark"
8
+ gem.version = PaperclipWatermark::VERSION
9
+ gem.authors = ["Vik Ewoods"]
10
+ gem.email = ["support@voroninstudio.eu"]
11
+ gem.description = %q{Paperclip Watermark processor}
12
+ gem.summary = %q{Paperclip Watermark processor}
13
+ gem.homepage = "http://vikewoods.com/rails/paperclip-watermark"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+ gem.add_dependency "paperclip", ">= 2.3.8"
20
+ end
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: paperclip-watermark
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Vik Ewoods
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: paperclip
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.3.8
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.3.8
30
+ description: Paperclip Watermark processor
31
+ email:
32
+ - support@voroninstudio.eu
33
+ executables: []
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - .gitignore
38
+ - .idea/.name
39
+ - .idea/.rakeTasks
40
+ - .idea/encodings.xml
41
+ - .idea/misc.xml
42
+ - .idea/modules.xml
43
+ - .idea/paperclip-watermark.iml
44
+ - .idea/scopes/scope_settings.xml
45
+ - .idea/vcs.xml
46
+ - .idea/workspace.xml
47
+ - Gemfile
48
+ - LICENSE.txt
49
+ - README.md
50
+ - Rakefile
51
+ - lib/paperclip-watermark.rb
52
+ - lib/paperclip-watermark/engine.rb
53
+ - lib/paperclip-watermark/version.rb
54
+ - lib/paperclip-watermark/watermark.rb
55
+ - paperclip-watermark.gemspec
56
+ homepage: http://vikewoods.com/rails/paperclip-watermark
57
+ licenses: []
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ requirements: []
75
+ rubyforge_project:
76
+ rubygems_version: 1.8.25
77
+ signing_key:
78
+ specification_version: 3
79
+ summary: Paperclip Watermark processor
80
+ test_files: []