tsundere 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.idea/.name +1 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/encodings.xml +5 -0
- data/.idea/misc.xml +22 -0
- data/.idea/modules.xml +9 -0
- data/.idea/scopes/scope_settings.xml +5 -0
- data/.idea/tsundere.iml +15 -0
- data/.idea/vcs.xml +7 -0
- data/.idea/workspace.xml +268 -0
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/lib/tsundere/array.rb +11 -3
- data/lib/tsundere/class_methods.rb +0 -5
- data/spec/array_spec.rb +31 -19
- data/tsundere.gemspec +13 -4
- metadata +14 -4
data/.idea/.name
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
tsundere
|
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" /></Settings>
|
data/.idea/encodings.xml
ADDED
data/.idea/misc.xml
ADDED
@@ -0,0 +1,22 @@
|
|
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.2-p180 [global]" project-jdk-type="RUBY_SDK" />
|
4
|
+
<component name="SvnConfiguration" maxAnnotateRevisions="500">
|
5
|
+
<option name="USER" value="" />
|
6
|
+
<option name="PASSWORD" value="" />
|
7
|
+
<option name="mySSHConnectionTimeout" value="30000" />
|
8
|
+
<option name="mySSHReadTimeout" value="30000" />
|
9
|
+
<option name="LAST_MERGED_REVISION" />
|
10
|
+
<option name="MERGE_DRY_RUN" value="false" />
|
11
|
+
<option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
|
12
|
+
<option name="UPDATE_LOCK_ON_DEMAND" value="false" />
|
13
|
+
<option name="IGNORE_SPACES_IN_MERGE" value="false" />
|
14
|
+
<option name="DETECT_NESTED_COPIES" value="true" />
|
15
|
+
<option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
|
16
|
+
<option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
|
17
|
+
<option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
|
18
|
+
<option name="FORCE_UPDATE" value="false" />
|
19
|
+
<myIsUseDefaultProxy>false</myIsUseDefaultProxy>
|
20
|
+
</component>
|
21
|
+
</project>
|
22
|
+
|
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/tsundere.iml" filepath="$PROJECT_DIR$/.idea/tsundere.iml" />
|
6
|
+
</modules>
|
7
|
+
</component>
|
8
|
+
</project>
|
9
|
+
|
data/.idea/tsundere.iml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<module type="RUBY_MODULE" version="4">
|
3
|
+
<component name="NewModuleRootManager">
|
4
|
+
<content url="file://$MODULE_DIR$" />
|
5
|
+
<orderEntry type="inheritedJdk" />
|
6
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
7
|
+
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.1.4, RVM: ruby-1.9.2-p180 [global]) [gem]" level="application" />
|
8
|
+
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.1.3, RVM: ruby-1.9.2-p180 [global]) [gem]" level="application" />
|
9
|
+
<orderEntry type="library" scope="PROVIDED" name="i18n (v0.6.1, RVM: ruby-1.9.2-p180 [global]) [gem]" level="application" />
|
10
|
+
<orderEntry type="library" scope="PROVIDED" name="json (v1.7.5, RVM: ruby-1.9.2-p180 [global]) [gem]" level="application" />
|
11
|
+
<orderEntry type="library" scope="PROVIDED" name="metaclass (v0.0.1, RVM: ruby-1.9.2-p180 [global]) [gem]" level="application" />
|
12
|
+
<orderEntry type="library" scope="PROVIDED" name="rdoc (v3.12, RVM: ruby-1.9.2-p180 [global]) [gem]" level="application" />
|
13
|
+
</component>
|
14
|
+
</module>
|
15
|
+
|
data/.idea/vcs.xml
ADDED
data/.idea/workspace.xml
ADDED
@@ -0,0 +1,268 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="ChangeListManager">
|
4
|
+
<list default="true" id="876e5741-713c-410f-86c2-71f50d2d32cf" name="Default" comment="">
|
5
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/tsundere/array.rb" afterPath="$PROJECT_DIR$/lib/tsundere/array.rb" />
|
6
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/spec/array_spec.rb" afterPath="$PROJECT_DIR$/spec/array_spec.rb" />
|
7
|
+
</list>
|
8
|
+
<ignored path="tsundere.iws" />
|
9
|
+
<ignored path=".idea/workspace.xml" />
|
10
|
+
<option name="TRACKING_ENABLED" value="true" />
|
11
|
+
<option name="SHOW_DIALOG" value="false" />
|
12
|
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
13
|
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
14
|
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
15
|
+
</component>
|
16
|
+
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
17
|
+
<component name="CreatePatchCommitExecutor">
|
18
|
+
<option name="PATCH_PATH" value="" />
|
19
|
+
</component>
|
20
|
+
<component name="DaemonCodeAnalyzer">
|
21
|
+
<disable_hints />
|
22
|
+
</component>
|
23
|
+
<component name="FavoritesManager">
|
24
|
+
<favorites_list name="tsundere" />
|
25
|
+
</component>
|
26
|
+
<component name="FileEditorManager">
|
27
|
+
<leaf>
|
28
|
+
<file leaf-file-name="array_spec.rb" pinned="false" current="false" current-in-tab="false">
|
29
|
+
<entry file="file://$PROJECT_DIR$/spec/array_spec.rb">
|
30
|
+
<provider selected="true" editor-type-id="text-editor">
|
31
|
+
<state line="58" column="35" selection-start="1661" selection-end="1661" vertical-scroll-proportion="0.0">
|
32
|
+
<folding />
|
33
|
+
</state>
|
34
|
+
</provider>
|
35
|
+
</entry>
|
36
|
+
</file>
|
37
|
+
<file leaf-file-name="array.rb" pinned="false" current="true" current-in-tab="true">
|
38
|
+
<entry file="file://$PROJECT_DIR$/lib/tsundere/array.rb">
|
39
|
+
<provider selected="true" editor-type-id="text-editor">
|
40
|
+
<state line="50" column="36" selection-start="1318" selection-end="1318" vertical-scroll-proportion="0.10764872">
|
41
|
+
<folding />
|
42
|
+
</state>
|
43
|
+
</provider>
|
44
|
+
</entry>
|
45
|
+
</file>
|
46
|
+
</leaf>
|
47
|
+
</component>
|
48
|
+
<component name="Git.Settings">
|
49
|
+
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
50
|
+
</component>
|
51
|
+
<component name="IdeDocumentHistory">
|
52
|
+
<option name="changedFiles">
|
53
|
+
<list>
|
54
|
+
<option value="$PROJECT_DIR$/spec/array_spec.rb" />
|
55
|
+
<option value="$PROJECT_DIR$/lib/tsundere/array.rb" />
|
56
|
+
</list>
|
57
|
+
</option>
|
58
|
+
</component>
|
59
|
+
<component name="ProjectFrameBounds">
|
60
|
+
<option name="y" value="58" />
|
61
|
+
<option name="width" value="1271" />
|
62
|
+
<option name="height" value="664" />
|
63
|
+
</component>
|
64
|
+
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
65
|
+
<OptionsSetting value="true" id="Add" />
|
66
|
+
<OptionsSetting value="true" id="Remove" />
|
67
|
+
<OptionsSetting value="true" id="Checkout" />
|
68
|
+
<OptionsSetting value="true" id="Update" />
|
69
|
+
<OptionsSetting value="true" id="Status" />
|
70
|
+
<OptionsSetting value="true" id="Edit" />
|
71
|
+
<ConfirmationsSetting value="0" id="Add" />
|
72
|
+
<ConfirmationsSetting value="0" id="Remove" />
|
73
|
+
</component>
|
74
|
+
<component name="ProjectReloadState">
|
75
|
+
<option name="STATE" value="0" />
|
76
|
+
</component>
|
77
|
+
<component name="ProjectView">
|
78
|
+
<navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
|
79
|
+
<flattenPackages />
|
80
|
+
<showMembers />
|
81
|
+
<showModules />
|
82
|
+
<showLibraryContents />
|
83
|
+
<hideEmptyPackages />
|
84
|
+
<abbreviatePackageNames />
|
85
|
+
<autoscrollToSource />
|
86
|
+
<autoscrollFromSource />
|
87
|
+
<sortByType />
|
88
|
+
</navigator>
|
89
|
+
<panes>
|
90
|
+
<pane id="ProjectPane">
|
91
|
+
<subPane>
|
92
|
+
<PATH>
|
93
|
+
<PATH_ELEMENT>
|
94
|
+
<option name="myItemId" value="tsundere" />
|
95
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
96
|
+
</PATH_ELEMENT>
|
97
|
+
</PATH>
|
98
|
+
<PATH>
|
99
|
+
<PATH_ELEMENT>
|
100
|
+
<option name="myItemId" value="tsundere" />
|
101
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
102
|
+
</PATH_ELEMENT>
|
103
|
+
<PATH_ELEMENT>
|
104
|
+
<option name="myItemId" value="tsundere" />
|
105
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
106
|
+
</PATH_ELEMENT>
|
107
|
+
</PATH>
|
108
|
+
<PATH>
|
109
|
+
<PATH_ELEMENT>
|
110
|
+
<option name="myItemId" value="tsundere" />
|
111
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
112
|
+
</PATH_ELEMENT>
|
113
|
+
<PATH_ELEMENT>
|
114
|
+
<option name="myItemId" value="tsundere" />
|
115
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
116
|
+
</PATH_ELEMENT>
|
117
|
+
<PATH_ELEMENT>
|
118
|
+
<option name="myItemId" value="spec" />
|
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="tsundere" />
|
125
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
126
|
+
</PATH_ELEMENT>
|
127
|
+
<PATH_ELEMENT>
|
128
|
+
<option name="myItemId" value="tsundere" />
|
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
|
+
<PATH>
|
137
|
+
<PATH_ELEMENT>
|
138
|
+
<option name="myItemId" value="tsundere" />
|
139
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
140
|
+
</PATH_ELEMENT>
|
141
|
+
<PATH_ELEMENT>
|
142
|
+
<option name="myItemId" value="tsundere" />
|
143
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
144
|
+
</PATH_ELEMENT>
|
145
|
+
<PATH_ELEMENT>
|
146
|
+
<option name="myItemId" value="lib" />
|
147
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
148
|
+
</PATH_ELEMENT>
|
149
|
+
<PATH_ELEMENT>
|
150
|
+
<option name="myItemId" value="tsundere" />
|
151
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
152
|
+
</PATH_ELEMENT>
|
153
|
+
</PATH>
|
154
|
+
</subPane>
|
155
|
+
</pane>
|
156
|
+
<pane id="Scope" />
|
157
|
+
</panes>
|
158
|
+
</component>
|
159
|
+
<component name="PropertiesComponent">
|
160
|
+
<property name="WebServerToolWindowFactoryState" value="false" />
|
161
|
+
</component>
|
162
|
+
<component name="RunManager">
|
163
|
+
<list size="0" />
|
164
|
+
</component>
|
165
|
+
<component name="ShelveChangesManager" show_recycled="false" />
|
166
|
+
<component name="TaskManager">
|
167
|
+
<task active="true" id="Default" summary="Default task">
|
168
|
+
<created>1355268031085</created>
|
169
|
+
<updated>1355268031085</updated>
|
170
|
+
</task>
|
171
|
+
<servers />
|
172
|
+
</component>
|
173
|
+
<component name="ToolWindowManager">
|
174
|
+
<frame x="0" y="58" width="1271" height="664" extended-state="0" />
|
175
|
+
<editor active="true" />
|
176
|
+
<layout>
|
177
|
+
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.329806" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
178
|
+
<window_info id="Data Sources" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
179
|
+
<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="-1" side_tool="false" content_ui="tabs" />
|
180
|
+
<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" />
|
181
|
+
<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="true" content_ui="tabs" />
|
182
|
+
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24938676" sideWeight="0.67019403" order="0" side_tool="false" content_ui="combo" />
|
183
|
+
<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" />
|
184
|
+
<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="-1" side_tool="true" content_ui="tabs" />
|
185
|
+
<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="-1" side_tool="true" content_ui="tabs" />
|
186
|
+
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
187
|
+
<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="-1" side_tool="false" content_ui="tabs" />
|
188
|
+
<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" />
|
189
|
+
<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" />
|
190
|
+
<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" />
|
191
|
+
<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" />
|
192
|
+
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
193
|
+
<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" />
|
194
|
+
<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" />
|
195
|
+
</layout>
|
196
|
+
</component>
|
197
|
+
<component name="VcsContentAnnotationSettings">
|
198
|
+
<option name="myLimit" value="2678400000" />
|
199
|
+
</component>
|
200
|
+
<component name="VcsManagerConfiguration">
|
201
|
+
<option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
|
202
|
+
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
|
203
|
+
<option name="CHECK_NEW_TODO" value="true" />
|
204
|
+
<option name="myTodoPanelSettings">
|
205
|
+
<value>
|
206
|
+
<are-packages-shown value="false" />
|
207
|
+
<are-modules-shown value="false" />
|
208
|
+
<flatten-packages value="false" />
|
209
|
+
<is-autoscroll-to-source value="false" />
|
210
|
+
</value>
|
211
|
+
</option>
|
212
|
+
<option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
|
213
|
+
<option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
|
214
|
+
<option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
|
215
|
+
<option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
|
216
|
+
<option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
|
217
|
+
<option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
|
218
|
+
<option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
|
219
|
+
<option name="ENABLE_BACKGROUND_PROCESSES" value="false" />
|
220
|
+
<option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
|
221
|
+
<option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
|
222
|
+
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
|
223
|
+
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
|
224
|
+
<option name="SHORT_DIFF_HORISONTALLY" value="true" />
|
225
|
+
<option name="SHORT_DIFF_EXTRA_LINES" value="2" />
|
226
|
+
<option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
|
227
|
+
<option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
|
228
|
+
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
|
229
|
+
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
|
230
|
+
<option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
|
231
|
+
<option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="true" />
|
232
|
+
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
233
|
+
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />
|
234
|
+
<option name="LAST_COMMIT_MESSAGE" />
|
235
|
+
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
|
236
|
+
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
|
237
|
+
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
|
238
|
+
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
|
239
|
+
<option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
|
240
|
+
<option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
|
241
|
+
<option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
|
242
|
+
<option name="ACTIVE_VCS_NAME" />
|
243
|
+
<option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
|
244
|
+
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
|
245
|
+
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
|
246
|
+
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
|
247
|
+
</component>
|
248
|
+
<component name="XDebuggerManager">
|
249
|
+
<breakpoint-manager />
|
250
|
+
</component>
|
251
|
+
<component name="editorHistoryManager">
|
252
|
+
<entry file="file://$PROJECT_DIR$/spec/array_spec.rb">
|
253
|
+
<provider selected="true" editor-type-id="text-editor">
|
254
|
+
<state line="58" column="35" selection-start="1661" selection-end="1661" vertical-scroll-proportion="0.0">
|
255
|
+
<folding />
|
256
|
+
</state>
|
257
|
+
</provider>
|
258
|
+
</entry>
|
259
|
+
<entry file="file://$PROJECT_DIR$/lib/tsundere/array.rb">
|
260
|
+
<provider selected="true" editor-type-id="text-editor">
|
261
|
+
<state line="50" column="36" selection-start="1318" selection-end="1318" vertical-scroll-proportion="0.10764872">
|
262
|
+
<folding />
|
263
|
+
</state>
|
264
|
+
</provider>
|
265
|
+
</entry>
|
266
|
+
</component>
|
267
|
+
</project>
|
268
|
+
|
data/Rakefile
CHANGED
@@ -17,10 +17,10 @@ Jeweler::Tasks.new do |gem|
|
|
17
17
|
gem.name = "tsundere"
|
18
18
|
gem.homepage = "http://github.com/foxnewsnetwork/tsundere"
|
19
19
|
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{object buffer for graceful
|
20
|
+
gem.summary = %Q{object buffer for graceful management of permission}
|
21
21
|
gem.description = %Q{Any given object can implement the tsundere interface. Once implemented, a tsundere object will behave differently based upon who is calling it.}
|
22
22
|
gem.email = "foxnewsnetwork@gmail.com"
|
23
|
-
gem.authors = ["Thomas Chen"]
|
23
|
+
gem.authors = ["Thomas Chen", "Trevor Umeda"]
|
24
24
|
# dependencies defined in Gemfile
|
25
25
|
end
|
26
26
|
Jeweler::RubygemsDotOrgTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/tsundere/array.rb
CHANGED
@@ -39,14 +39,22 @@ class Array
|
|
39
39
|
def p_bisearch_internal s, f, target, right_flag, &eq
|
40
40
|
|
41
41
|
mid = (f + s)/ 2
|
42
|
-
|
42
|
+
#small base case
|
43
|
+
if f == s
|
44
|
+
if yield( target , self[f]) > 0
|
45
|
+
return f+1
|
46
|
+
else
|
47
|
+
return f
|
48
|
+
end
|
49
|
+
end
|
43
50
|
return s if count < 2
|
44
51
|
result = yield target, self[mid]
|
45
52
|
return mid if 0 == result
|
46
53
|
if s + 1 == f
|
47
54
|
if right_flag
|
48
|
-
return s if yield(target, self[s]) <= 0 # target == self[s] or target < self[s]
|
49
|
-
return f
|
55
|
+
return s if yield(target, self[s]) <= 0 # target == self[s] or target < self[s]
|
56
|
+
return f if yield(target,self[f]) <= 0
|
57
|
+
return f+1
|
50
58
|
else
|
51
59
|
return f if yield(target, self[f]) >= 0 # target == self[f] or target > self[f]
|
52
60
|
return s
|
@@ -36,11 +36,6 @@ module Tsundere
|
|
36
36
|
perm.each do |key, lvl|
|
37
37
|
@rank_table[key] = lvl
|
38
38
|
|
39
|
-
# FIXME: We really should not have to call sort here,
|
40
|
-
# but for some reason the tree isn't being constructed
|
41
|
-
# properly (i.e. the test won't pass), so I decided to
|
42
|
-
# just say "fuck it" and put in a sort sort
|
43
|
-
warn "FixMe: Take out this godawful sort from this insert by fixing the array extension and passing the array_spec"
|
44
39
|
ind = permission_table[type][:array].binary_search_raw([lvl, attributes]) { |a1, a2| a1.first <=> a2.first }
|
45
40
|
permission_table[type][:array].insert(ind, [lvl, attributes]).sort! { |a1, a2| a1.first <=> a2.first }
|
46
41
|
end # each perm
|
data/spec/array_spec.rb
CHANGED
@@ -1,59 +1,71 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'debugger'
|
2
|
+
#require 'debugger'
|
3
3
|
describe Array do
|
4
|
-
describe "binary search raw" do
|
5
|
-
before :each do
|
4
|
+
describe "binary search raw" do
|
5
|
+
before :each do
|
6
6
|
@array = [0,1,2,3,4,5,6,7,8,9]
|
7
7
|
end # each
|
8
8
|
10.times do |n|
|
9
|
-
it "should have decent coverage #{n}" do
|
9
|
+
it "should have decent coverage #{n}" do
|
10
10
|
@array.binary_search_raw(n).should eq n
|
11
11
|
end # it
|
12
|
-
it "should have decent coverage #{n} lean left" do
|
12
|
+
it "should have decent coverage #{n} lean left" do
|
13
13
|
@array.binary_search_raw(n, :left => true).should eq n
|
14
14
|
end # it
|
15
|
-
it "should given #{n-0.5}
|
15
|
+
it "should, given #{n-0.5}, get index #{n}" do
|
16
16
|
# debugger
|
17
17
|
@array.binary_search_raw(n - 0.5).should eq n
|
18
18
|
end # it
|
19
|
-
it "should given #{n+0.5}
|
19
|
+
it "should, given #{n+0.5}, get index #{n}, with left preference" do
|
20
20
|
# debugger
|
21
21
|
@array.binary_search_raw(n + 0.5, :left => true).should eq n
|
22
22
|
end # it
|
23
23
|
end # each n
|
24
|
-
|
25
|
-
it "should handle the empty array" do
|
24
|
+
|
25
|
+
it "should handle the empty array" do
|
26
26
|
[].binary_search_raw(4).should eq 0
|
27
27
|
end # it
|
28
|
-
it "should handle odd input" do
|
28
|
+
it "should handle odd input" do
|
29
29
|
@array.binary_search_raw(-1).should eq 0
|
30
30
|
end # it
|
31
|
-
it "should handle odd input on the big end " do
|
32
|
-
@array.binary_search_raw(11).should eq
|
31
|
+
it "should handle odd input on the big end " do
|
32
|
+
@array.binary_search_raw(11).should eq 10
|
33
33
|
end # it
|
34
34
|
|
35
|
-
it "should handle the empty array left" do
|
35
|
+
it "should handle the empty array left" do
|
36
36
|
[].binary_search_raw(4, :left => true).should eq 0
|
37
37
|
end # it
|
38
|
-
it "should handle odd input left" do
|
38
|
+
it "should handle odd input left" do
|
39
39
|
@array.binary_search_raw(-1, :left => true).should eq 0
|
40
40
|
end # it
|
41
|
-
it "should handle odd input on the big end left" do
|
41
|
+
it "should handle odd input on the big end left" do
|
42
42
|
@array.binary_search_raw(11, :left => true).should eq 9
|
43
43
|
end # it
|
44
44
|
end # bsr
|
45
45
|
|
46
|
-
describe "construction" do
|
47
|
-
|
46
|
+
describe "construction" do
|
47
|
+
it "should construct an ordered array" do
|
48
48
|
@array = []
|
49
49
|
10.times do
|
50
50
|
val = rand(100)
|
51
51
|
ind = @array.binary_search_raw(val)
|
52
52
|
@array.insert(ind, val)
|
53
53
|
end # 10 times
|
54
|
-
|
54
|
+
|
55
55
|
@array.count.should eq 10
|
56
56
|
@array.should eq @array.sort
|
57
|
-
|
57
|
+
end # it
|
58
|
+
it "should pass this random test" do
|
59
|
+
@array = []
|
60
|
+
val = 26
|
61
|
+
val2 = 9
|
62
|
+
ind = @array.binary_search_raw(val)
|
63
|
+
@array.insert(ind,val)
|
64
|
+
ind2 = @array.binary_search_raw(val2)
|
65
|
+
|
66
|
+
@array.insert(ind2,val2)
|
67
|
+
@array.should eq @array.sort
|
68
|
+
|
69
|
+
end
|
58
70
|
end # construction
|
59
71
|
end # Array
|
data/tsundere.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "tsundere"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Thomas Chen"]
|
12
|
-
s.date = "2012-12-
|
11
|
+
s.authors = ["Thomas Chen", "Trevor Umeda"]
|
12
|
+
s.date = "2012-12-12"
|
13
13
|
s.description = "Any given object can implement the tsundere interface. Once implemented, a tsundere object will behave differently based upon who is calling it."
|
14
14
|
s.email = "foxnewsnetwork@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -18,6 +18,15 @@ Gem::Specification.new do |s|
|
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
+
".idea/.name",
|
22
|
+
".idea/.rakeTasks",
|
23
|
+
".idea/encodings.xml",
|
24
|
+
".idea/misc.xml",
|
25
|
+
".idea/modules.xml",
|
26
|
+
".idea/scopes/scope_settings.xml",
|
27
|
+
".idea/tsundere.iml",
|
28
|
+
".idea/vcs.xml",
|
29
|
+
".idea/workspace.xml",
|
21
30
|
".rspec",
|
22
31
|
"Gemfile",
|
23
32
|
"Gemfile.lock",
|
@@ -43,7 +52,7 @@ Gem::Specification.new do |s|
|
|
43
52
|
s.licenses = ["MIT"]
|
44
53
|
s.require_paths = ["lib"]
|
45
54
|
s.rubygems_version = "1.8.24"
|
46
|
-
s.summary = "object buffer for graceful
|
55
|
+
s.summary = "object buffer for graceful management of permission"
|
47
56
|
|
48
57
|
if s.respond_to? :specification_version then
|
49
58
|
s.specification_version = 3
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tsundere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Thomas Chen
|
9
|
+
- Trevor Umeda
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
13
|
+
date: 2012-12-12 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: debugger
|
@@ -117,6 +118,15 @@ extra_rdoc_files:
|
|
117
118
|
- README.markdown
|
118
119
|
files:
|
119
120
|
- .document
|
121
|
+
- .idea/.name
|
122
|
+
- .idea/.rakeTasks
|
123
|
+
- .idea/encodings.xml
|
124
|
+
- .idea/misc.xml
|
125
|
+
- .idea/modules.xml
|
126
|
+
- .idea/scopes/scope_settings.xml
|
127
|
+
- .idea/tsundere.iml
|
128
|
+
- .idea/vcs.xml
|
129
|
+
- .idea/workspace.xml
|
120
130
|
- .rspec
|
121
131
|
- Gemfile
|
122
132
|
- Gemfile.lock
|
@@ -152,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
162
|
version: '0'
|
153
163
|
segments:
|
154
164
|
- 0
|
155
|
-
hash:
|
165
|
+
hash: -1940936912137567815
|
156
166
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
167
|
none: false
|
158
168
|
requirements:
|
@@ -164,5 +174,5 @@ rubyforge_project:
|
|
164
174
|
rubygems_version: 1.8.24
|
165
175
|
signing_key:
|
166
176
|
specification_version: 3
|
167
|
-
summary: object buffer for graceful
|
177
|
+
summary: object buffer for graceful management of permission
|
168
178
|
test_files: []
|